qct crashes with a segmentation fault on startup: $ qct Pygame Parachute Traceback: File "/usr/share/games/qct/qct.py", line 12, in main Fatal Python error: (pygame parachute) Segmentation Fault Aborted == obligatory emerge info == Portage 2.0.51-r3 (default-linux/amd64/2004.3, gcc-3.4.3, glibc-2.3.4.20040808-r1, 2.6.9-gentoo-r9 x86_64) ================================================================= System uname: 2.6.9-gentoo-r9 x86_64 4 Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux26-headers-2.6.8.1-r1 Libtools: sys-devel/libtool-1.5.2-r7 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CFLAGS="-O2" CHOST="x86_64-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="http://gentoo.nedlinux.nl http://ftp.easynet.nl/mirror/gentoo/ http://gentoo.mirror.sdv.fr http://gentoo.math.bme.hu" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X acpi alsa arts berkdb bitmap-fonts bonobo cdr crypt doc dvd dvdr esd f77 fam flac fortran gdbm gif gnome gpm gstreamer gtk gtkhtml guile imagemagick imlib ipv6 java jp2 jpeg junit kde ldap libwww lm-sensors lzw lzw-tiff mad mikmod motif mozilla multilib mysql ncurses nls oggvorbis opengl oss pam pda pdflib perl png postgres python qt readline samba sdl slang ssl tcltk tcpd tetex tiff truetype usb userlocales xml xml2 xmms xpm xrandr xv zlib"
Is this still an issue?
It still doesn't work. I now know that I have some misconfiguration in ALSA, but that should not cause a segmentation fault. I've put the severity down to minor.
Peter: would be helpful if you could provide us with a gdb backtrace. In order to do that, please remerge python with FEATURES="nostrip" CFLAGS="-O0 -ggdb -g3" CXXFLAGS="-O0 -ggdb -g3" and run python within gdb like this: gdb python > run /usr/share/games/qct.py When python now segfaults, type in: bt and attach the output of gdb here please.
I re-ran qct and got some debugging output (that's before cmpiling python with debug options): ALSA lib confmisc.c:550:(snd_determine_driver) could not open control for card 0ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_card_driver returned error: Permission denied ALSA lib confmisc.c:387:(snd_func_concat) error evaluating strings ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_concat returned error: Permission denied ALSA lib confmisc.c:945:(snd_func_refer) error evaluating name ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_refer returned error: Permission denied ALSA lib conf.c:3932:(snd_config_expand) Evaluate error: Permission denied ALSA lib pcm.c:2068:(snd_pcm_open_noupdate) Unknown PCM default unix_connect: can't connect to server (unix:/tmp/mcop-peter/compare_localnet-2e41-42263b56) ALSA lib confmisc.c:550:(snd_determine_driver) could not open control for card 0ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_card_driver returned error: Permission denied ALSA lib confmisc.c:387:(snd_func_concat) error evaluating strings ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_concat returned error: Permission denied ALSA lib confmisc.c:945:(snd_func_refer) error evaluating name ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_refer returned error: Permission denied ALSA lib conf.c:3932:(snd_config_expand) Evaluate error: Permission denied ALSA lib pcm.c:2068:(snd_pcm_open_noupdate) Unknown PCM default Pygame Parachute Traceback: File "/usr/share/games/qct/qct.py", line 12, in main Fatal Python error: (pygame parachute) Segmentation Fault Aborted
Here is the backtrace... (gdb) run /usr/share/games/qct/qct.py Starting program: /usr/bin/python /usr/share/games/qct/qct.py [Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 5148)] [New Thread 32769 (LWP 5151)] [New Thread 16386 (LWP 5152)] ALSA lib confmisc.c:550:(snd_determine_driver) could not open control for card 0ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_card_driver returned error: Permission denied ALSA lib confmisc.c:387:(snd_func_concat) error evaluating strings ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_concat returned error: Permission denied ALSA lib confmisc.c:945:(snd_func_refer) error evaluating name ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_refer returned error: Permission denied ALSA lib conf.c:3932:(snd_config_expand) Evaluate error: Permission denied ALSA lib pcm.c:2068:(snd_pcm_open_noupdate) Unknown PCM default unix_connect: can't connect to server (unix:/tmp/mcop-peter/compare_localnet-2e41-42263b56) ALSA lib confmisc.c:550:(snd_determine_driver) could not open control for card 0ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_card_driver returned error: Permission denied ALSA lib confmisc.c:387:(snd_func_concat) error evaluating strings ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_concat returned error: Permission denied ALSA lib confmisc.c:945:(snd_func_refer) error evaluating name ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_refer returned error: Permission denied ALSA lib conf.c:3932:(snd_config_expand) Evaluate error: Permission denied ALSA lib pcm.c:2068:(snd_pcm_open_noupdate) Unknown PCM default Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 5148)] 0x00002aaaaf5c5740 in ?? () (gdb) bt #0 0x00002aaaaf5c5740 in ?? () #1 0x00002aaab001ca0b in std::vector<Arts::MethodDef, std::allocator<Arts::MethodDef> >::_M_insert_aux () from /usr/kde/3.3/lib/libmcop.so.1 #2 0x00002aaab001cc07 in Arts::readTypeSeq<Arts::MethodDef> () from /usr/kde/3.3/lib/libmcop.so.1 #3 0x00002aaab0014f91 in Arts::InterfaceDef::readType () from /usr/kde/3.3/lib/libmcop.so.1 #4 0x00002aaab00152bc in Arts::InterfaceDef::InterfaceDef () from /usr/kde/3.3/lib/libmcop.so.1 #5 0x00002aaab001eddd in Arts::readTypeSeq<Arts::InterfaceDef> () from /usr/kde/3.3/lib/libmcop.so.1 #6 0x00002aaab001616d in Arts::ModuleDef::readType () from /usr/kde/3.3/lib/libmcop.so.1 #7 0x00002aaab0016420 in Arts::ModuleDef::ModuleDef () from /usr/kde/3.3/lib/libmcop.so.1 #8 0x00002aaab0038b73 in Arts::IDLFileReg::startup () from /usr/kde/3.3/lib/libmcop.so.1 #9 0x00002aaab003e15c in Arts::StartupManager::startup () from /usr/kde/3.3/lib/libmcop.so.1 #10 0x00002aaab00267af in Arts::Dispatcher::Dispatcher () from /usr/kde/3.3/lib/libmcop.so.1 #11 0x00002aaab087eac7 in arts_backend_init () from /usr/kde/3.3/lib/libartscbackend.so.0 ---Type <return> to continue, or q <return> to quit--- #12 0x00002aaaaf6e1ad8 in arts_init () from /usr/kde/3.3/lib/libartsc.so.0 #13 0x00002aaaaba688ae in SDL_FreeWAV () from /usr/lib/libSDL-1.2.so.0 #14 0x00002aaaaba632ea in SDL_AudioInit () from /usr/lib/libSDL-1.2.so.0 #15 0x00002aaaaba622f4 in SDL_InitSubSystem () from /usr/lib/libSDL-1.2.so.0 #16 0x00002aaaad8cbbf1 in ?? () from /usr/lib/python2.3/site-packages/pygame/mixer.so #17 0x00002aaaaac22ee9 in PyCFunction_Call (func=0x2aaaaab93cf8, arg=0x2aaaaaac2050, kw=0x0) at methodobject.c:73 #18 0x00002aaaaabf9381 in PyObject_Call (func=0x2aaaaab93cf8, arg=0x2aaaaaac2050, kw=0x0) at abstract.c:1755 #19 0x00002aaaaac641dd in PyEval_CallObjectWithKeywords (func=0x2aaaaab93cf8, arg=0x2aaaaaac2050, kw=0x0) at ceval.c:3352 #20 0x00002aaaaabf9344 in PyObject_CallObject (o=0x2aaaaab93cf8, a=0x0) at abstract.c:1746 #21 0x00002aaaab9516ae in PyGame_RegisterQuit () from /usr/lib/python2.3/site-packages/pygame/base.so #22 0x00002aaaaac22ee9 in PyCFunction_Call (func=0x2aaaaab2f0e0, arg=0x2aaaaaac2050, kw=0x0) at methodobject.c:73 #23 0x00002aaaaac64587 in call_function (pp_stack=0x7fffffffe968, oparg=0) at ceval.c:3445 #24 0x00002aaaaac6147a in eval_frame (f=0x505910) at ceval.c:2122 #25 0x00002aaaaac64831 in fast_function (func=0x2aaaae8c6c80, pp_stack=0x7fffffffebe8, n=0, na=0, nk=0) at ceval.c:3524 ---Type <return> to continue, or q <return> to quit--- #26 0x00002aaaaac6466f in call_function (pp_stack=0x7fffffffebe8, oparg=0) at ceval.c:3464 #27 0x00002aaaaac6147a in eval_frame (f=0x527030) at ceval.c:2122 #28 0x00002aaaaac62e5d in PyEval_EvalCodeEx (co=0x2aaaaab18490, globals=0x51a1e0, locals=0x51a1e0, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at ceval.c:2669 #29 0x00002aaaaac5c90f in PyEval_EvalCode (co=0x2aaaaab18490, globals=0x51a1e0, locals=0x51a1e0) at ceval.c:537 #30 0x00002aaaaac87743 in run_node (n=0x2aaaaab17050, filename=0x7ffffffff32f "/usr/share/games/qct/qct.py", globals=0x51a1e0, locals=0x51a1e0, flags=0x7fffffffef80) at pythonrun.c:1267 #31 0x00002aaaaac876dd in run_err_node (n=0x2aaaaab17050, filename=0x7ffffffff32f "/usr/share/games/qct/qct.py", globals=0x51a1e0, locals=0x51a1e0, flags=0x7fffffffef80) at pythonrun.c:1254 #32 0x00002aaaaac87692 in PyRun_FileExFlags (fp=0x5022a0, filename=0x7ffffffff32f "/usr/share/games/qct/qct.py", start=257, globals=0x51a1e0, locals=0x51a1e0, closeit=1, flags=0x7fffffffef80) at pythonrun.c:1245 #33 0x00002aaaaac866b9 in PyRun_SimpleFileExFlags (fp=0x5022a0, filename=0x7ffffffff32f "/usr/share/games/qct/qct.py", closeit=1, flags=0x7fffffffef80) at pythonrun.c:862 #34 0x00002aaaaac85f91 in PyRun_AnyFileExFlags (fp=0x5022a0, filename=0x7ffffffff32f "/usr/share/games/qct/qct.py", closeit=1, ---Type <return> to continue, or q <return> to quit--- flags=0x7fffffffef80) at pythonrun.c:659 #35 0x00002aaaaac8db33 in Py_Main (argc=2, argv=0x7ffffffff078) at main.c:415 #36 0x00000000004007b3 in main (argc=2, argv=0x7ffffffff078) at python.c:23
I re-emerged arts, with debugging flags, and guess what happens... THE GAME RUNS! but why?
I guess this is an arts problem: emerging arts with my default flags CFLAGS=CXXFLAGS=-O2 leads to the qct crash emerging arts with CFLAGS=CXXFLAGS=-O0 allows qct to run (almost) fine.
Please remerge arts with -O2 and tell me if it breaks again.
It is irritatingly reproducable: after 'CFLAGS="-O0" CXXFLAGS="-O0" emerge arts' qct runs fine 'emerge arts' or 'CFLAGS="-O2" CXXFLAGS="-O2" emerge arts' causes qct to segfault. FYI: I've done my upgrades and updates, here's the latest emerge info: Portage 2.0.51.19 (default-linux/amd64/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r7 x86_64) ================================================================= System uname: 2.6.11-gentoo-r7 x86_64 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.6.12 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Jun 25 2005, 16:06:29)] dev-lang/python: 2.3.5 sys-apps/sandbox: [Not Present] sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.5, 1.9.5, 1.8.5-r3, 1.7.9-r1, 1.6.3, 1.4_p6 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.16 virtual/os-headers: 2.6.8.1-r4 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CFLAGS="-O2" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.nedlinux.nl http://ftp.easynet.nl/mirror/gentoo/ http://gentoo.mirror.sdv.fr http://gentoo.math.bme.hu" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X acpi alsa arts berkdb bitmap-fonts bonobo cdr crypt curl doc dvd dvdr eds esd fam flac font-server fortran gd gdbm gif gnome gpm gstreamer gtk gtk2 gtkhtml guile imagemagick imlib ipv6 java jp2 jpeg junit kde ldap libwww lm-sensors lzw lzw-tiff mad mikmod motif mozilla mp3 mysql ncurses nls ogg opengl oss pam pda pdflib perl png postgres python qt readline ruby samba sdl speex ssl tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts unicode usb userlocales vorbis xine xml xml2 xmms xpm xrandr xv zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
The bug appeared again with the arts-3.4.1-r2 update... But there is good news, after running alsaconf, all of the error messages about opening a sound card disappear. And the segfault is gone too. Pity I destroyed the environment to verify a fix of this weird bug!
heh, indeed a pity