GNOME Bugzilla – Bug 528242
seg fault in sigc::internal::trackable_callback_list
Last modified: 2008-07-30 07:37:52 UTC
Hi, I don't know what happen; I was sleeping... The ekiga's status bar tells: "Missed calls: 1" ptlib revision 19992 ffmpeg 12838 / 26454 opal 19992 ekiga 6198 bt and d4 below Regards, Yannick
Created attachment 109312 [details] backtrace
sry, the d4 is very very long. I keep it in case of need. Regards, Yannick
*** Bug 528791 has been marked as a duplicate of this bug. ***
*** Bug 529513 has been marked as a duplicate of this bug. ***
I think the following bt is the same bug (please check it). ptlib, svn revision 20239 ffmpeg: 13113 opal: 20239 ekiga: 6252 Regards, Yannick
Created attachment 110735 [details] bt
Were you doing anything special when the sigsev happened?
Doing other stuff with the computer. Nothing special with ekiga. I'm not really sure when it happen exactly.
I really don't see how sigc::internal::trackable_callback_list can segfault... I would say it's a bug somewhere else.
*** Bug 535457 has been marked as a duplicate of this bug. ***
Sigh, I'm almost sure we have a threading issue. I'll work around it ; it will be ugly but there's no way we ship 3.00 with a doubt.
Ok, I modified the run_in_main method ; ugly, but efficient.
Sigh... I had to revert my patch, we're back to the problem :-(
I reviewed all calls to run_in_main in ekiga ; most of them look like : runtime.run_in_main (sigc::bind (my_signal.make_slot (), foo, bar, baz)); Only a few deal with signals in another object : ./src/endpoints/pcss.cpp: runtime.run_in_main (call->ringing.make_slot ()); ./src/endpoints/manager.cpp: runtime.run_in_main (manager.ready.make_slot ()); ./src/endpoints/sip.cpp: runtime.run_in_main (sigc::bind (presence_core.presence_received.make_slot (), _uri, presence)); ./src/endpoints/sip.cpp: runtime.run_in_main (sigc::bind (presence_core.status_received.make_slot (), _uri, status)); Notice that it's one of the last two which is the culprit in the crash, I don't know which one. I have a few questions for you Yannick : (1) can you reproduce semi-easily ? (2) when it happens again, could you both give the new bt, and paste also the culprit line in src/endpoints/sip.cpp [not just the line number, the whole line] [not sure it will help much as they really look alike and would probably fail alike...] That bug is really annoying :-/
Here is the plan : (1) find a way to reproduce the bug much more easily (using sipp for example) ; (2) apply the patch I have in mind and will attach whenever I find the time to actually write it ; (3) reproduce the bug... and hopefully fail ; if not back to drawing board and step (2) ; (4) live happily ever after.