Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Race condition in Urbi (release build) #126

Open
Werkov opened this issue Nov 16, 2014 · 0 comments
Open

Race condition in Urbi (release build) #126

Werkov opened this issue Nov 16, 2014 · 0 comments

Comments

@Werkov
Copy link
Member

Werkov commented Nov 16, 2014

Release build of Urbi nondeterministically fails due to SIGSEGV (caused by double free).

This behavior can be observed when XCS is running on top of the affected version and @dodo_manual@ graph is created and started.
As Dodo produces data sooner or later the Urbi runtime is killed by SIGSEGV (it can be accelerated by also pressing keyboard keys to send data to onboard).

I traced the bug down to function @call_apply_urbi@ in @src/eval/call.hxx@. I tried using VLA (variable length array) allocation instead of using @malloc/new@,
however that also caused nondeterministic fails (once in a new operator, once in @Uvalue::~Uvalue@).

The main observed difference between Debug and Release version in the context of abovementioned functions is that they are inlined in Release mode.

I also tried enclosing socket operations in a mutex (@urbiscript/onboard/inc/adapter.u@), however, without success.
Reporter: Michal Koutný
Begin: 2014-11-03
Completed: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant