Bug#580262: idjc: Mixer reports segmentation fault
Gabriel M. Beddingfield
gabrbedd at gmail.com
Wed May 5 01:34:07 UTC 2010
On Tue, 4 May 2010, Stefan Bischoff wrote:
> "Mixer reports a segmentation fault
> mixer crashed
> something bad happened and IDJC could not continue"
Unfortunately, if /anything/ crashes in idjcmixer... you get
this same error message. So, some manner of backtrace is
really necc. in order to isolate the cause.
However, I've observed this crash some weeks ago, and the
backtrace (going from memory) was something like:
#0 shutdown()
#1 JackClientSocket::Close()
....
#x jack_client_open()
#y main() (in ijcjmixer.c)
At execution time, the symbol `shutdown' is null... which
causes the segfault. The symbol should have resolved to the
BSD socket shutdown() function.
However, there is a global variable `int shutdown' in
idjcmixer.c, and it is initialized to 0. For some reason it
is masking shutdown() so that the Jack library is trying to
execute a plain integer.
Whatever causes the bug, it appears to be in the binary.
When compiled on Ubuntu/Jaunty and executed in either Jaunty
or Karmic -- the bug persisted. When recompiled on Karmic,
the bug went away.
I don't know if this is a bug in idjc, gcc, libc, ld,
ld.so, or even jack... but the attached patch works around
the issue by renaming the global variable. I suspect it's
an ld bug, though. I can't create a reproducable test
case, though.
> Other programs using jack still work great. So I think its not a problem in
> jack but in idjc.
This happened for me with Jack2.
FYI, I reported the issue to upstream, but did not receive a
response.
-gabriel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: idjc_mixer_segfault_at_startup_with_jack.diff
Type: text/x-diff
Size: 1642 bytes
Desc:
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20100504/996ca078/attachment-0005.diff>
More information about the pkg-multimedia-maintainers
mailing list