New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #21935 (new defect)

Opened 4 years ago

Last modified 2 years ago

ogg123 doesn't quit - version 1.2.0

Reported by: jpschewe@… Owned by: rmstonecipher@…
Priority: Normal Milestone:
Component: ports Version: 1.8.1
Keywords: Cc:
Port: vorbis-tools

Description (last modified by macsforever2000@…) (diff)

This appears to be the same problem as ticket:5024. I just upgraded to Snow Leopard and reinstalled all of my ports "port uninstall installed; port install <those I care about>".

When ogg123 finishes a file, it doesn't exit, nor can I kill it will ctrl-c or kill -15, I need to use kill -9. Ctrl-z doesn't suspend it either. I suspect there's a deadlock in the signal handler.

Here is the inspection trace from activitity monitor:

Sampling process 26021 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling ogg123 (pid 26021) every 1 millisecond
Call graph:
    2494 Thread_1327455   DispatchQueue_1: com.apple.main-thread  (serial)
      2494 start
        2494 main
          2494 exit
            2494 __cxa_finalize
              2494 ao_onexit
                2494 close_audio_devices
                  2494 ao_close
                    2494 ao_plugin_close
                      2494 _pthread_cond_wait
                        2494 __semwait_signal
    2494 Thread_1327461   DispatchQueue_2: com.apple.libdispatch-manager  (serial)
      2494 start_wqthread
        2494 _pthread_wqthread
          2494 _dispatch_worker_thread2
            2494 _dispatch_queue_invoke
              2494 _dispatch_mgr_invoke
                2494 kevent

Total number in stack (recursive counted multiple, when >=5):

Sort by top of stack, same collapsed (when >= 5):
        __semwait_signal        2494
        kevent        2494
Sample analysis of process 26021 written to file /dev/stdout

Here is the trace from gdb:

Undefined command: "thread-list".  Try "help".
(gdb) info threads
  2 port# 0x2a03 0x00007fff8437fb16 in kevent ()
* 1 port# 0x903  0x00007fff843a19c6 in __semwait_signal ()
(gdb) bt
#0  0x00007fff843a19c6 in __semwait_signal ()
#1  0x00007fff843a5801 in _pthread_cond_wait ()
#2  0x00000001003c514b in ao_plugin_close ()
#3  0x00000001000618d9 in ao_close ()
#4  0x000000010000110e in close_audio_devices ()
#5  0x0000000100001141 in ao_onexit ()
#6  0x00007fff8437927f in __cxa_finalize ()
#7  0x00007fff8437918c in exit ()
#8  0x0000000100005e35 in main ()
(gdb) thread 2
[Switching to thread 2 (process 26021)]
0x00007fff8437fb16 in kevent ()
(gdb) bt
#0  0x00007fff8437fb16 in kevent ()
#1  0x00007fff84381a19 in _dispatch_mgr_invoke ()
#2  0x00007fff843816d6 in _dispatch_queue_invoke ()
#3  0x00007fff843811f6 in _dispatch_worker_thread2 ()
#4  0x00007fff84380b28 in _pthread_wqthread ()
#5  0x00007fff843809c5 in start_wqthread ()

I've also noticed that when xemacs execs a process xemacs locks up. Perhaps there is is a common problem between the two and how threads are handled in Snow Leopard.

Change History

comment:1 in reply to: ↑ description Changed 4 years ago by jpschewe@…

Reformatted:

This appears to be the same problem as ticket:5024. I just upgraded to Snow Leopard and reinstalled all of my ports "port uninstall installed; port install <those I care about>". When ogg123 finishes a file, it doesn't exit, nor can I kill it will ctrl-c or kill -15, I need to use kill -9. Ctrl-z doesn't suspend it either. I suspect there's a deadlock in the signal handler. Here is the inspection trace from activitity monitor:

 Sampling process 26021 for 3 seconds with 1 millisecond of run time between samples
 Sampling completed, processing symbols...
 Analysis of sampling ogg123 (pid 26021) every 1 millisecond
 Call graph:
     2494 Thread_1327455   DispatchQueue_1: com.apple.main-thread  (serial)
       2494 start
         2494 main
           2494 exit
             2494 __cxa_finalize
               2494 ao_onexit
                 2494 close_audio_devices
                   2494 ao_close
                     2494 ao_plugin_close
                       2494 _pthread_cond_wait
                         2494 __semwait_signal
     2494 Thread_1327461   DispatchQueue_2: com.apple.libdispatch-manager  (serial)
       2494 start_wqthread
         2494 _pthread_wqthread
           2494 _dispatch_worker_thread2
             2494 _dispatch_queue_invoke
               2494 _dispatch_mgr_invoke
                 2494 kevent
 
 Total number in stack (recursive counted multiple, when =5):
 
 Sort by top of stack, same collapsed (when = 5):
         __semwait_signal        2494
         kevent        2494
 Sample analysis of process 26021 written to file /dev/stdout

Here is the trace from gdb:

(gdb) info threads
   2 port# 0x2a03 0x00007fff8437fb16 in kevent ()
 * 1 port# 0x903  0x00007fff843a19c6 in __semwait_signal ()
 (gdb) bt
 #0  0x00007fff843a19c6 in __semwait_signal ()
 #1  0x00007fff843a5801 in _pthread_cond_wait ()
 #2  0x00000001003c514b in ao_plugin_close ()
 #3  0x00000001000618d9 in ao_close ()
 #4  0x000000010000110e in close_audio_devices ()
 #5  0x0000000100001141 in ao_onexit ()
 #6  0x00007fff8437927f in __cxa_finalize ()
 #7  0x00007fff8437918c in exit ()
 #8  0x0000000100005e35 in main ()
 (gdb) thread 2
 [Switching to thread 2 (process 26021)]
 0x00007fff8437fb16 in kevent ()
 (gdb) bt
 #0  0x00007fff8437fb16 in kevent ()
 #1  0x00007fff84381a19 in _dispatch_mgr_invoke ()
 #2  0x00007fff843816d6 in _dispatch_queue_invoke ()
 #3  0x00007fff843811f6 in _dispatch_worker_thread2 ()
 #4  0x00007fff84380b28 in _pthread_wqthread ()
 #5  0x00007fff843809c5 in start_wqthread ()

I've also noticed that when xemacs execs a process xemacs locks up. Perhaps there is is a common problem between the two and how threads are handled in Snow Leopard.

comment:2 Changed 4 years ago by macsforever2000@…

  • Description modified (diff)

comment:3 Changed 4 years ago by macsforever2000@…

  • Port set to vorbis-tools

comment:4 Changed 2 years ago by jmr@…

  • Owner changed from macports-tickets@… to rmstonecipher@…
Note: See TracTickets for help on using tickets.