Description of problem: the SDL lib seems to produce a segfault when initializing sound and artsd is running. Version-Release number of selected component (if applicable): SDL-1.2.7-7.1 arts-1.3.0-4 How reproducible: always, when artsd is running. when artsd is killed all SDL apps start up cleanly. Steps to Reproduce: (1. start artsd) 2. execute some SDL app with sound (Maelstrom, tuxracer or whatever) Actual results: segfault Expected results: program start up cleanly and use artsd, alsa or oss Additional info: soundcard: snd-emu10k1 Is this rather a artsd or alsa bug than a bug in SDL? if so please assign to the right person. I had this problem since at least FC2. Maybe even in FC1. complete reinstalls did not change anything. On my notebook SDL works with artsd started. strange. [adam@baldur bin]$ gdb Maelstrom GNU gdb Red Hat Linux (6.1post-1.20040607.33rh) This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) run Starting program: /tmp/Maelstrom/bin/Maelstrom Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0xffffe000 [Thread debugging using libthread_db enabled] [New Thread 1073866368 (LWP 17661)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1073866368 (LWP 17661)] 0x497b7f99 in do_lookup_x () from /lib/ld-linux.so.2 (gdb) bt #0 0x497b7f99 in do_lookup_x () from /lib/ld-linux.so.2 #1 0x497b83b2 in _dl_lookup_symbol_x () from /lib/ld-linux.so.2 #2 0x497bb7b6 in fixup () from /lib/ld-linux.so.2 #3 0x497bb6f0 in _dl_runtime_resolve () from /lib/ld-linux.so.2 #4 0x49c855af in Arts::SystemThreadsNoThread_impl::~SystemThreadsNoThread_impl () from /usr/lib/libmcop.so.1 #5 0x49c84d1d in Arts::Thread::~Thread () from /usr/lib/libmcop.so.1 #6 0x4b546b04 in Arts::AudioIOOSSThreaded::~AudioIOOSSThreaded () from /usr/lib/libartsflow.so.1 #7 0x4b52297a in Arts::AudioSubSystem::initAudioIO () from /usr/lib/libartsflow.so.1 #8 0x4b522e2e in Arts::AudioSubSystem::samplingRate () from /usr/lib/libartsflow.so.1 #9 0x4b5291aa in Arts::StdSynthModule::StdSynthModule () from /usr/lib/libartsflow.so.1 #10 0x40030f13 in Sender::Sender () from /usr/lib/libartscbackend.so.0 #11 0x4002c495 in arts_backend_play_stream () from /usr/lib/libartscbackend.so.0 #12 0x49d435c8 in arts_play_stream () from /usr/lib/libartsc.so.0 #13 0x4b750ad0 in SDL_MixAudio_MMX_S8 () from /usr/lib/libSDL-1.2.so.0 #14 0x4b74bbc1 in SDL_OpenAudio () from /usr/lib/libSDL-1.2.so.0 #15 0x08069644 in Sound::Volume (this=0x80b3c18, vol=1 '\001') at Mac_Sound.cpp:185 #16 0x08069529 in Sound (this=0x80b3c18, soundfile=0x80acad0 "/tmp/Maelstrom/games/Maelstrom/Maelstrom Sounds", vol=1 '\001') at Mac_Sound.cpp:153 #17 0x080517be in DoInitializations (video_flags=0) at init.cpp:763 #18 0x08053db4 in main (argc=0, argv=0xbffff774) at main.cpp:286
ok, this seems to be rather a bug in arts. the program (supertux) receives a SIGABRT when leaving MCOPConfig::readEntry -> some destructor? I'll attach some gdb output. any suggestions?
[adam@baldur ~]$ gdb supertux GNU gdb Red Hat Linux (6.1post-1.20040607.35rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...(no debugging symbols found)...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) r Starting program: /usr/bin/supertux Reading symbols from shared object read from target memory...(no debugging symbols found)...done. Loaded system supplied DSO at 0xffffe000 (no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled] [New Thread 1075385888 (LWP 21724)] (no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(nodebugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...Datadir: /usr/bin/../share/supertux *** glibc detected *** free(): invalid pointer: 0x080c14c0 *** Program received signal SIGABRT, Aborted. [Switching to Thread 1075385888 (LWP 21724)] 0xffffe410 in __kernel_vsyscall () (gdb) bt #0 0xffffe410 in __kernel_vsyscall () #1 0x4008d625 in raise () from /lib/tls/libc.so.6 #2 0x4008efe9 in abort () from /lib/tls/libc.so.6 #3 0x400c5e2b in malloc_printerr () from /lib/tls/libc.so.6 #4 0x400c68ba in free () from /lib/tls/libc.so.6 #5 0x4a2fc375 in operator delete () from /usr/lib/libstdc++.so.6 #6 0x4a2dd4cf in std::string::_Rep::_M_destroy () from /usr/lib/libstdc++.so.6 #7 0x4a2dd752 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string () from /usr/lib/libstdc++.so.6 #8 0x405fdbd0 in Arts::MCOPUtils::readConfigEntry (key=@0xbffff460, defaultValue=@0xbffff4b0) at mcoputils.cc:162 #9 0x405db074 in Dispatcher (this=0x80c3154, ioManager=0x0, startServer=Arts::Dispatcher::noServer) at dispatcher.cc:248 #10 0x401bece9 in ArtsCApi (this=0x80c3150) at artscbackend.cc:583 #11 0x401beca1 in ArtsCApi::ref () at artscbackend.cc:689 #12 0x401be64c in arts_backend_init () at artscbackend.cc:714 #13 0x401ab5a2 in arts_init () at artsc.c:122 #14 0x4b75065a in SDL_MixAudio_MMX_S8 () from /usr/lib/libSDL-1.2.so.0 #15 0x4b74c070 in SDL_AudioInit () from /usr/lib/libSDL-1.2.so.0 #16 0x4b74aa5a in SDL_InitSubSystem () from /usr/lib/libSDL-1.2.so.0 #17 0x4b74ab5b in SDL_Init () from /usr/lib/libSDL-1.2.so.0 #18 0x08084d23 in st_audio_setup () #19 0x080874f4 in main ()
i have started tuxracer and Maelstrom, i cannot reproduce this crash on my local machine with SDL-1.2.7-7.1 and arts-1.3.0-4. Both work without any problem for me. could you please try following soundsetting: kcontrol->Sound & Multimedia->Sound System->Hardware->Select the audio device: Advanced Linux Sound Architecture and perhaps disable Full duplex. Does it work for you? if it still does not work, please rename $HOME/.kde to .kde.me and start KDE again.
ok, tuxracer and Maelstrom now also work even using arts (with a 2s delay...). though i do not exactly know why. i deleted ~/.kde/share/config/arts* and ~/.mcop* and had rebuilt arts with debuginfo. now i got again the original version installed and it still works. but supertux still has problems with sound initialization: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1074373984 (LWP 4453)] 0x47b69890 in free () from /lib/tls/libc.so.6 (gdb) bt #0 0x47b69890 in free () from /lib/tls/libc.so.6 #1 0x47f0c375 in operator delete () from /usr/lib/libstdc++.so.6 #2 0x47eed4cf in std::string::_Rep::_M_destroy () from /usr/lib/libstdc++.so.6 #3 0x47eed5e1 in std::string::assign () from /usr/lib/libstdc++.so.6 #4 0x403c2028 in Arts::Dispatcher::Dispatcher () from /usr/lib/libmcop.so.1 #5 0x400a40a4 in arts_backend_init () from /usr/lib/libartscbackend.so.0 #6 0x400b42b6 in arts_init () from /usr/lib/libartsc.so.0 #7 0x4002b0fa in SDL_MixAudio_MMX_S8 () from /usr/lib/libSDL-1.2.so.0 #8 0x40026b10 in SDL_AudioInit () from /usr/lib/libSDL-1.2.so.0 #9 0x400254fa in SDL_InitSubSystem () from /usr/lib/libSDL-1.2.so.0 #10 0x400255fb in SDL_Init () from /usr/lib/libSDL-1.2.so.0 #11 0x08084d23 in st_audio_setup () #12 0x080874f4 in main () this is just after trying to read from ~/.mcoprc can i disable arts support in SDL without having to recompile it?
i have built supertux on my local machine today, it works without any problem for me. you have to rebuild SDL if you want to disable arts support.