Ticket #160 (closed defect: fixed)

Opened 4 years ago

Last modified 4 years ago

Server hangs when trying to resume OSS sink

Reported by: NickLangille Owned by: lennart
Milestone: 0.9.11 Component: daemon
Keywords: Cc:

Description

Pulse 0.9.7 on Arch Linux with kernel 2.6.23.1, with a hda-intel audio device.

Here's the out from the server:

I: core-util.c: Successfully gained nice level -11.
I: main.c: Found user 'pulse' (UID 130) and group 'pulse' (GID 130).
I: main.c: Successfully dropped root privileges.
I: main.c: Page size is 4096 bytes
I: main.c: Fresh high-resolution timers available! Bon appetit!
D: oss-util.c: capabilities: DUPLEX MMAP REALTIME TRIGGER
I: module-oss.c: Device opened in O_RDWR mode.
I: module-oss.c: Input -- 4 fragments of size 4096.
I: module-oss.c: Output -- 4 fragments of size 4096.
D: module-oss.c: Successfully mmap()ed input buffer.
I: source.c: Created source 0 "hw_in" with sample spec "s16le 2ch 44100Hz"
D: module-oss.c: Successfully mmap()ed output buffer.
I: sink.c: Created sink 0 "hw_out" with sample spec "s16le 2ch 44100Hz"
I: source.c: Created source 1 "hw_out.monitor" with sample spec "s16le 2ch 44100Hz"
D: module-oss.c: Thread starting up
I: core-util.c: Successfully enabled SCHED_FIFO scheduling for thread.
D: rtpoll.c: Acquired POSIX realtime signal SIGRTMIN+29
D: module-oss.c: trigger
D: module-oss.c: trigger: 2
D: module-oss.c: trigger
D: module-oss.c: trigger: 3
I: module.c: Loaded "module-oss" (index: #0; argument: "device=/dev/dsp sink_name=hw_out source_name=hw_in").
I: sink.c: Created sink 1 "pipe_out" with sample spec "s16le 2ch 44100Hz"
I: source.c: Created source 2 "pipe_out.monitor" with sample spec "s16le 2ch 44100Hz"
D: module-pipe-sink.c: Thread starting up
D: rtpoll.c: Acquired POSIX realtime signal SIGRTMIN+28
I: module.c: Loaded "module-pipe-sink" (index: #1; argument: "sink_name=pipe_out file=/tmp/sound_out").
I: source.c: Created source 3 "pipe_in" with sample spec "s16le 2ch 44100Hz"
D: module-pipe-source.c: Thread starting up
D: rtpoll.c: Acquired POSIX realtime signal SIGRTMIN+27
I: module.c: Loaded "module-pipe-source" (index: #2; argument: "source_name=pipe_in file=/tmp/sound_in").
I: sink.c: Created sink 2 "null_out" with sample spec "s16le 2ch 44100Hz"
I: source.c: Created source 4 "null_out.monitor" with sample spec "s16le 2ch 44100Hz"
D: module-null-sink.c: Thread starting up
D: rtpoll.c: Acquired POSIX realtime signal SIGRTMIN+26
I: module.c: Loaded "module-null-sink" (index: #3; argument: "sink_name=null_out").
I: protocol-native.c: Allowing access to group 'pulse-access'.
I: protocol-native.c: loading cookie from disk.
I: module.c: Loaded "module-native-protocol-unix" (index: #4; argument: "auth-anonymous=1").
I: module.c: Loaded "module-volume-restore" (index: #5; argument: "").
I: module.c: Loaded "module-rescue-streams" (index: #6; argument: "").
I: main.c: Daemon startup complete.

Then in a different terminal I run for example "pasuspender sleep 5", and the server outputs this:

D: module-oss.c: trigger
D: module-oss.c: trigger: 1
D: module-oss.c: clearing playback buffer
I: module-oss.c: Suspending...
I: module-oss.c: Device suspended...
I: module-oss.c: Trying resume...
D: oss-util.c: capabilities: DUPLEX MMAP REALTIME TRIGGER

And then the server completely hangs and I have to kill -9 it.

Change History

Changed 4 years ago by lennart

Why do you use OSS in the first place?

Please provide a backtrace of the freeze.

http://fedoraproject.org/wiki/StackTraces

Changed 4 years ago by NickLangille

Since filing this bug I've switched to ALSA, which doesn't have this problem. Here's the trace of the issue, anyway. This time it's with kernel 2.6.24.3 and Pulse trunk.

Thread 3 (Thread 0xb70b2b90 (LWP 432)):
#0  0xb7fd8410 in __kernel_vsyscall ()
#1  0xb7d5f154 in ppoll () from /lib/libc.so.6
#2  0xb7fb7d90 in pa_rtpoll_run (p=0x8078348, wait=true)
    at pulsecore/rtpoll.c:394
#3  0xb70b43fb in thread_func (userdata=0x80777a0)
    at modules/module-null-sink.c:150
#4  0xb7fbe270 in internal_thread_func (userdata=0x8079288)
    at pulsecore/thread-posix.c:73
#5  0xb7de4125 in start_thread () from /lib/libpthread.so.0
#6  0xb7d68a0e in clone () from /lib/libc.so.6

Thread 2 (Thread 0xb78b6b90 (LWP 431)):
#0  0xb7fd8410 in __kernel_vsyscall ()
#1  0xb7de9de5 in sem_wait@@GLIBC_2.1 () from /lib/libpthread.so.0
#2  0xb7fbeca3 in pa_semaphore_wait (s=0x8072a78)
    at pulsecore/semaphore-posix.c:65
#3  0xb7fb4308 in pa_asyncmsgq_send (a=0x80742e8, object=0x8075ea8, code=2, 
    userdata=0x8075f78, offset=0, chunk=0x0) at pulsecore/asyncmsgq.c:169
#4  0xb7fa5d7f in pa_sink_get_volume (s=0x8075ea8) at pulsecore/sink.c:691
#5  0xb78c65f6 in unsuspend (u=0x8074238) at modules/module-oss.c:603
#6  0xb78c684e in sink_process_msg (o=0x8075ea8, code=7, data=0x3, offset=0, 
    chunk=0xb78b61fc) at modules/module-oss.c:667
#7  0xb7fb4a26 in pa_asyncmsgq_dispatch (object=0x8075ea8, code=7, 
    userdata=0x3, offset=0, memchunk=0xb78b61fc) at pulsecore/asyncmsgq.c:300
#8  0xb7fb8d9a in asyncmsgq_work (i=0x8074f20) at pulsecore/rtpoll.c:720
#9  0xb7fb7b69 in pa_rtpoll_run (p=0x8074818, wait=true)
    at pulsecore/rtpoll.c:328
#10 0xb78c7b55 in thread_func (userdata=0x8074238) at modules/module-oss.c:1103
#11 0xb7fbe270 in internal_thread_func (userdata=0x8076958)
    at pulsecore/thread-posix.c:73
#12 0xb7de4125 in start_thread () from /lib/libpthread.so.0
#13 0xb7d68a0e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb7c436d0 (LWP 428)):
#0  0xb7fd8410 in __kernel_vsyscall ()
#1  0xb7de9de5 in sem_wait@@GLIBC_2.1 () from /lib/libpthread.so.0
#2  0xb7fbeca3 in pa_semaphore_wait (s=0x8076988)
    at pulsecore/semaphore-posix.c:65
#3  0xb7fb4308 in pa_asyncmsgq_send (a=0x80742e8, object=0x8075ea8, code=7, 
    userdata=0x3, offset=0, chunk=0x0) at pulsecore/asyncmsgq.c:169
#4  0xb7fa3a64 in sink_set_state (s=0x8075ea8, state=PA_SINK_IDLE)
    at pulsecore/sink.c:167
#5  0xb7fa46ef in pa_sink_suspend (s=0x8075ea8, suspend=false)
    at pulsecore/sink.c:323
#6  0xb7fa6de5 in pa_sink_suspend_all (c=0x8071528, suspend=false)
    at pulsecore/sink.c:1019
#7  0xb68aafa4 in command_suspend (pd=0x807dd10, command=70, tag=4, 
    t=0x807e478, userdata=0x80729e8) at pulsecore/protocol-native.c:3046
#8  0xb688e20a in pa_pdispatch_run (pd=0x807dd10, packet=0x8072a30, 
    creds=0x8072b58, userdata=0x80729e8) at pulsecore/pdispatch.c:241
#9  0xb68ab2a5 in pstream_packet_callback (p=0x8072a90, packet=0x8072a30, 
    creds=0x8072b58, userdata=0x80729e8) at pulsecore/protocol-native.c:3105
#10 0xb6895601 in do_read (p=0x8072a90) at pulsecore/pstream.c:818
#11 0xb68935fc in do_something (p=0x8072a90) at pulsecore/pstream.c:186
#12 0xb689381a in io_callback (io=0x8072988, userdata=0x8072a90)
    at pulsecore/pstream.c:215
#13 0xb7f561bb in callback (m=0x8070bec, e=0x80729b8, fd=12, 
    f=PA_IO_EVENT_INPUT, userdata=0x8072988) at pulsecore/iochannel.c:121
#14 0xb7f78489 in dispatch_pollfds (m=0x8070ba8) at pulse/mainloop.c:679
#15 0xb7f78e25 in pa_mainloop_dispatch (m=0x8070ba8) at pulse/mainloop.c:892
#16 0xb7f78f44 in pa_mainloop_iterate (m=0x8070ba8, block=1, retval=0xbfbe819c)
    at pulse/mainloop.c:922
#17 0xb7f78fae in pa_mainloop_run (m=0x8070ba8, retval=0xbfbe819c)
    at pulse/mainloop.c:937
#18 0x0804ff64 in main (argc=3, argv=0xbfbe8274) at daemon/main.c:806

Changed 4 years ago by lennart

  • status changed from new to closed
  • resolution set to fixed
  • milestone set to 0.9.11

Closed in commit [ab93f2a]

Note: See TracTickets for help on using tickets.