Closed gleber closed 12 years ago
Just a minute before I got one more segfault: http://pastebin.com/d3PKTjGj
Interesting line there is:
WARNING: Unhandled message:
interface=`Dô·`Dô·hDô·hDô·pDô·pDô·°â°âDô·Dô·Dô·Dô·Dô·Dô·Dô·Dô· Dô· Dô·¨Dô·¨Dô·°Dô·°Dô·¸Dô·¸Dô·ÀDô·ÀDô·ÈDô·ÈDô·ÐDô·ÐDô·ØDô·ØDô·àDô·àDô·èDô·èDô·ðDô·ðDô·øDô·øDô·, path=°~X·««¨á¨áXDô·XDô·`Dô·`Dô·hDô·hDô·pDô·pDô·°â°âDô·Dô·Dô·Dô·Dô·Dô·Dô·Dô· Dô· Dô·¨Dô·¨Dô·°Dô·°Dô·¸Dô·¸Dô·ÀDô·ÀDô·ÈDô·ÈDô·ÐDô·ÐDô·ØDô·ØDô·àDô·àDô·èDô·èDô·ðDô·ðDô·øDô·øDô·, member=Dô·Dô·Dô·Dô·Dô·Dô·Dô·Dô· Dô· Dô·¨Dô·¨Dô·°Dô·°Dô·¸Dô·¸Dô·ÀDô·ÀDô·ÈDô·ÈDô·ÐDô·ÐDô·ØDô·ØDô·àDô·àDô·èDô·èDô·ðDô·ðDô·øDô·øDô·
It seems that actually call to resolve_sync/3
is not needed to produce that segmentation fault. Backtrace from previous comment has been generated with call to resolve_sync/3
commented out. But on the same time it seems that call resolve_sync/3
on each dnssd browse add message increases chance - i.e. segfault happens after much less iterations of test shell script.
Few more crashes. It seems that they are pretty random in terms of place where it happens. My wild guess would be some random memory corruption. http://pastebin.com/P2shBRgA http://pastebin.com/nxVa3Nkp http://pastebin.com/KTkN60PQ
Here are two more crashes:
http://pastebin.com/2pYmy1MH http://pastebin.com/BWsxwr5a
and a minimal test case: https://gist.github.com/1383723
Weird thing about it is that it doesn't crash without tracing enabled. But if I'm running a bigger program it does crash even without tracing, but probability of crash decreases with amount of stuff processes are doing in it - i.e. the more messages and IO interactions processes are doing, the bigger the chance of process crashing. It's as close as I was able to get to it today.
Concurrent calls to the Avahi compatibility layer might be the issue. Does changing ERL_DRV_FLAG_USE_PORT_LOCKING
to 0
in the driver entry allow your test case to pass?
It seems that it fixes the problem. After running a test for 5 minutes it didn't crashed.
Thanks a lot! It may be worth adding a note to readme about it, so someone don't waste their time looking for this issue, like I did.
Good to hear. I'll push a new version with this fix in the next few days.
I've just tagged v0.6 which includes a test case for this issue, the driver locking change that fixes it and another fix for the Avahi compatibility layers lack of support for registering services with empty names.
Thanks for reporting the problem and I hope you find the app useful.
Hello. I've started an Erlang VM with a process running, does the following:
After this I start a simple shell script:
When erlang process gets a
{dnssd, _Ref, {browse, Op, {Name, Type, Domain}}}
it does the following:Right after this gdb catches segmentation fault in erl:
This happens very non-deterministically. My system has the following packages installed:
Have anyone seen this problem before?