Bug 104023 - arts segfault when called from xmms
Summary: arts segfault when called from xmms
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Linux Beta
Classification: Retired
Component: arts
Version: beta1
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Than Ngo
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: CambridgeTarget
TreeView+ depends on / blocked
 
Reported: 2003-09-09 03:07 UTC by Bill Nottingham
Modified: 2014-03-17 02:38 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2003-10-13 10:34:11 UTC
Embargoed:


Attachments (Terms of Use)

Description Bill Nottingham 2003-09-09 03:07:18 UTC
Description of problem:

arts segfaults when opened to play a song if it's been opened to check if it's
available before.

Version-Release number of selected component (if applicable):

xmms-1.2.7-23.p
arts-1.1.3-3

How reproducible:

Every time.

Steps to Reproduce:
1. Remove output plugin from ~/.xmms/config, start artsd
2. Start xmms; it detects artsd and defaults to the arts output plugin
3. Hit play
    
Actual results:

Segfault

Expected results:

Playing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1109908400 (LWP 3326)]
0xbf1f2f6c in Arts::StartupManager::startup() () from /usr/lib/libmcop.so.1
(gdb) bt
#0  0xbf1f2f6c in Arts::StartupManager::startup() ()
   from /usr/lib/libmcop.so.1
#1  0xbf1d9309 in Arts::Dispatcher::Dispatcher(Arts::IOManager*,
Arts::Dispatcher::StartServer) () from /usr/lib/libmcop.so.1
#2  0x42286ae9 in arts_backend_init () from /usr/lib/libartscbackend.so.0
#3  0x40a56776 in arts_init () from /usr/lib/libartsc.so.0
#4  0x40a52a98 in artsd_open (fmt=3208087432, rate=-1086879864,
    nch=-1086879864) at audio.c:314
#5  0x40cf1d80 in vorbis_play_loop (arg=0x9765788) at vorbis.c:348
#6  0x00bbc4fa in start_thread (arg=0xbf378788) at pthread_create.c:264
#7  0x00a10ac7 in ?? () from /lib/tls/libc.so.6
(gdb)

This doesn't happen when playing normally (i.e., when not using the detection code.)

What the detection code does is:

- dlopen libartsc.so.0
- run arts_init(), check the result
- run arts_free()

I'm pretty sure this used to work at one point.

Comment 1 Bill Nottingham 2003-09-09 03:19:36 UTC
Having it link directly to libartsc instead of dlopen()ing it doesn't help.

Comment 2 Than Ngo 2003-10-13 10:34:11 UTC
It looks like there's problem with library unloading in conjuction with
X11. I have added a workaround in xmms, so it should work now.


Note You need to log in before you can comment on or make changes to this bug.