Bug#510459: vorbis-tools: ogg123 crashes or hangs when it cannot open the device

Vincent Lefevre vincent at vinc17.org
Fri Jan 2 23:37:22 UTC 2009


I could reproduce the hangs: this happens when the volume is set to 0.
I've attached a diff on 2 strace.
  * strace2.out: volume set to 0, ogg123 hanged after outputting
    "Error: Cannot open device alsa." (I tried 2 Ctrl-C, then Ctrl-\).
  * strace3.out: volume not set to 0, ogg123 terminated after
    outputting "Error: Cannot open device alsa.".

Note: gtkpbbuttons was running, hence the error. But the fact that
ogg123 hanged is not normal.

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
-------------- next part --------------
--- strace2.out	2009-01-03 00:26:16.000000000 +0100
+++ strace3.out	2009-01-03 00:27:15.000000000 +0100
@@ -5,19 +5,19 @@
 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x48020000
 access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
 open("/lib/tls/ppc7400/altivec/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls/ppc7400/altivec", 0xbffdc098) = -1 ENOENT (No such file or directory)
+stat64("/lib/tls/ppc7400/altivec", 0xbf964098) = -1 ENOENT (No such file or directory)
 open("/lib/tls/ppc7400/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls/ppc7400", 0xbffdc098)  = -1 ENOENT (No such file or directory)
+stat64("/lib/tls/ppc7400", 0xbf964098)  = -1 ENOENT (No such file or directory)
 open("/lib/tls/altivec/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls/altivec", 0xbffdc098)  = -1 ENOENT (No such file or directory)
+stat64("/lib/tls/altivec", 0xbf964098)  = -1 ENOENT (No such file or directory)
 open("/lib/tls/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls", 0xbffdc098)          = -1 ENOENT (No such file or directory)
+stat64("/lib/tls", 0xbf964098)          = -1 ENOENT (No such file or directory)
 open("/lib/ppc7400/altivec/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/ppc7400/altivec", 0xbffdc098) = -1 ENOENT (No such file or directory)
+stat64("/lib/ppc7400/altivec", 0xbf964098) = -1 ENOENT (No such file or directory)
 open("/lib/ppc7400/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/ppc7400", 0xbffdc098)      = -1 ENOENT (No such file or directory)
+stat64("/lib/ppc7400", 0xbf964098)      = -1 ENOENT (No such file or directory)
 open("/lib/altivec/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/altivec", 0xbffdc098)      = -1 ENOENT (No such file or directory)
+stat64("/lib/altivec", 0xbf964098)      = -1 ENOENT (No such file or directory)
 open("/lib/libncurses.so.5", O_RDONLY)  = 3
 read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0\321p\0\0\0004\0"..., 512) = 512
 fstat64(3, {st_mode=S_IFREG|0644, st_size=248524, ...}) = 0
@@ -59,7 +59,7 @@
 geteuid()                               = 1000
 getegid()                               = 1000
 rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
-time(NULL)                              = 1230938758
+time(NULL)                              = 1230938826
 brk(0x100e8000)                         = 0x100e8000
 open("/proc/meminfo", O_RDONLY)         = 3
 fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
@@ -85,11 +85,11 @@
 brk(0x100ef000)                         = 0x100ef000
 stat64("/home/lefevre", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
 stat64(".", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
-getpid()                                = 3518
-getppid()                               = 3517
+getpid()                                = 3553
+getppid()                               = 3552
 brk(0x100f0000)                         = 0x100f0000
 brk(0x100f1000)                         = 0x100f1000
-getpgrp()                               = 3517
+getpgrp()                               = 3552
 rt_sigaction(SIGCHLD, {0x1003f2f0, [], 0}, {SIG_DFL}, 8) = 0
 getrlimit(RLIMIT_NPROC, {rlim_cur=2*1024, rlim_max=2*1024}) = 0
 brk(0x100f2000)                         = 0x100f2000
@@ -118,7 +118,7 @@
 open("/usr/lib/locale/LC/LC_NUMERIC", O_RDONLY) = -1 ENOENT (No such file or directory)
 rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
 open("/home/lefevre/bin/ogg123", O_RDONLY|O_LARGEFILE) = 3
-ioctl(3, TCGETS, 0xbffdc948)            = -1 ENOTTY (Inappropriate ioctl for device)
+ioctl(3, TCGETS, 0xbf964948)            = -1 ENOTTY (Inappropriate ioctl for device)
 _llseek(3, 0, [0], SEEK_CUR)            = 0
 read(3, "#!/bin/sh\n\n# ogg123 often crashes"..., 80) = 80
 _llseek(3, 0, [0], SEEK_SET)            = 0
@@ -163,67 +163,67 @@
 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x48020000
 access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
 open("/lib/tls/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/lib/tls/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/lib/tls/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls/ppc7400", 0xbfcc30d8)  = -1 ENOENT (No such file or directory)
+stat64("/lib/tls/ppc7400", 0xbfb250d8)  = -1 ENOENT (No such file or directory)
 open("/lib/tls/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls/altivec", 0xbfcc30d8)  = -1 ENOENT (No such file or directory)
+stat64("/lib/tls/altivec", 0xbfb250d8)  = -1 ENOENT (No such file or directory)
 open("/lib/tls/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/tls", 0xbfcc30d8)          = -1 ENOENT (No such file or directory)
+stat64("/lib/tls", 0xbfb250d8)          = -1 ENOENT (No such file or directory)
 open("/lib/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/lib/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/lib/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/ppc7400", 0xbfcc30d8)      = -1 ENOENT (No such file or directory)
+stat64("/lib/ppc7400", 0xbfb250d8)      = -1 ENOENT (No such file or directory)
 open("/lib/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/lib/altivec", 0xbfcc30d8)      = -1 ENOENT (No such file or directory)
+stat64("/lib/altivec", 0xbfb250d8)      = -1 ENOENT (No such file or directory)
 open("/lib/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
 stat64("/lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
 open("/home/lefevre/./lib/tls/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/./lib/tls/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/./lib/tls/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/tls/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/./lib/tls/ppc7400", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/./lib/tls/ppc7400", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/tls/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/./lib/tls/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/./lib/tls/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/tls/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/./lib/tls", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/./lib/tls", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/./lib/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/./lib/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/./lib/ppc7400", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/./lib/ppc7400", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/./lib/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/./lib/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
 stat64("/home/lefevre/./lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
 open("/home/lefevre/lib/tls/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/lib/tls/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/lib/tls/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/lib/tls/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/lib/tls/ppc7400", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/lib/tls/ppc7400", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/lib/tls/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/lib/tls/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/lib/tls/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/lib/tls/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/lib/tls", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/lib/tls", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/lib/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/lib/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/lib/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/lib/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/lib/ppc7400", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/lib/ppc7400", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/lib/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/home/lefevre/lib/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/home/lefevre/lib/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/home/lefevre/lib/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
 stat64("/home/lefevre/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
 open("/usr/local/gmp/lib/tls/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/usr/local/gmp/lib/tls/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/usr/local/gmp/lib/tls/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/usr/local/gmp/lib/tls/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/usr/local/gmp/lib/tls/ppc7400", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/usr/local/gmp/lib/tls/ppc7400", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/usr/local/gmp/lib/tls/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/usr/local/gmp/lib/tls/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/usr/local/gmp/lib/tls/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/usr/local/gmp/lib/tls/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/usr/local/gmp/lib/tls", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/usr/local/gmp/lib/tls", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/usr/local/gmp/lib/ppc7400/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/usr/local/gmp/lib/ppc7400/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/usr/local/gmp/lib/ppc7400/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/usr/local/gmp/lib/ppc7400/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/usr/local/gmp/lib/ppc7400", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/usr/local/gmp/lib/ppc7400", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/usr/local/gmp/lib/altivec/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
-stat64("/usr/local/gmp/lib/altivec", 0xbfcc30d8) = -1 ENOENT (No such file or directory)
+stat64("/usr/local/gmp/lib/altivec", 0xbfb250d8) = -1 ENOENT (No such file or directory)
 open("/usr/local/gmp/lib/libvorbisfile.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)
 stat64("/usr/local/gmp/lib", {st_mode=S_IFDIR|S_ISGID|0755, st_size=4096, ...}) = 0
 open("/etc/ld.so.cache", O_RDONLY)      = 3
@@ -548,9 +548,9 @@
 mprotect(0xff29000, 4096, PROT_READ)    = 0
 mprotect(0xff4f000, 4096, PROT_READ)    = 0
 munmap(0x48031000, 61329)               = 0
-set_tid_address(0x48026a68)             = 3518
-get_robust_list(0x48026a70, 0xc, 0xbfcc3de0) = 0
-futex(0xbfcc3c98, FUTEX_WAKE_PRIVATE, 1) = 0
+set_tid_address(0x48026a68)             = 3553
+get_robust_list(0x48026a70, 0xc, 0xbfb25de0) = 0
+futex(0xbfb25c98, FUTEX_WAKE_PRIVATE, 1) = 0
 rt_sigaction(SIGRTMIN, {0xfe69cb0, [], SA_SIGINFO}, NULL, 8) = 0
 rt_sigaction(SIGRT_1, {0xfe69850, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
@@ -884,7 +884,7 @@
 mmap(0xee36000, 84528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0xee36000
 mprotect(0xee3b000, 61440, PROT_NONE)   = 0
 mmap(0xee4a000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x4000) = 0xee4a000
-mprotect(0xbfcc3000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSDOWN) = 0
+mprotect(0xbfb25000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSDOWN) = 0
 close(5)                                = 0
 open("/lib/libasyncns.so.0", O_RDONLY)  = -1 ENOENT (No such file or directory)
 open("/home/lefevre/./lib/libasyncns.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
@@ -1011,7 +1011,7 @@
 read(3, "OggS\0\2\0\0\0\0\0\0\0\0\215\23\323\6\0\0\0\0\347\301\265\2\1\36\1vorb"..., 65536) = 65536
 mmap(NULL, 8388608, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x48209000
 mprotect(0x48209000, 4096, PROT_NONE)   = 0
-clone(child_stack=0x48a08030, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x48a084f8, tls=0x48a0f930, child_tidptr=0x48a084f8) = 3519
+clone(child_stack=0x48a08030, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x48a084f8, tls=0x48a0f930, child_tidptr=0x48a084f8) = 3572
 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 5
 fstat64(5, {st_mode=S_IFREG|0644, st_size=25700, ...}) = 0
 mmap(NULL, 25700, PROT_READ, MAP_SHARED, 5, 0) = 0x48a09000
@@ -1036,14 +1036,5 @@
 futex(0x481e7034, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x481e7030, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x481e7014, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x481e7064, FUTEX_WAIT_PRIVATE, 1, NULL) = 0
-futex(0x481e7084, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x481e7014, FUTEX_WAKE_PRIVATE, 1) = 0
 futex(0x481e7064, FUTEX_WAIT_PRIVATE, 3, NULL) = ? ERESTARTSYS (To be restarted)
---- SIGINT (Interrupt) @ 0 (0) ---
-sigreturn()                             = ? (mask now [ABRT BUS FPE USR1 SEGV PIPE ALRM STOP TSTP URG XCPU XFSZ VTALRM PROF WINCH IO PWR RTMIN])
-futex(0x481e7064, FUTEX_WAIT_PRIVATE, 3, NULL) = ? ERESTARTSYS (To be restarted)
---- SIGINT (Interrupt) @ 0 (0) ---
-sigreturn()                             = ? (mask now [ABRT BUS FPE USR1 SEGV PIPE ALRM STOP TSTP URG XCPU XFSZ VTALRM PROF WINCH IO PWR RTMIN])
-futex(0x481e7064, FUTEX_WAIT_PRIVATE, 3, NULL) = ? ERESTARTSYS (To be restarted)
---- SIGQUIT (Quit) @ 0 (0) ---
-+++ killed by SIGQUIT +++


More information about the pkg-xiph-maint mailing list