Ticket #395 (closed defect: elsewhere)

Opened 3 years ago

Last modified 3 years ago

Pulseaudio makes a break after Startup on PowerPC Hardware

Reported by: philro Owned by: lennart
Milestone: Component: core
Keywords: PowerPC Cc: rhabarber1848@…

Description

I tried to run Pulseaudio on a Dbox2 which has a PowerPC Platform CPU. On Startup Pulseaudio makes a break of 60 seconds. After that the startup goes on. Here's the log made with strace:

open("/dev/urandom", O_RDONLY|O_NOCTTY|O_LARGEFILE) = 5
read(5, "]\363\342\343"..., 4)          = 4
close(5)                                = 0
rt_sigprocmask(SIG_SETMASK, NULL, ~[HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR UNUSED RTMIN RT_1 RT_2], 8) = 0
rt_sigaction(SIGPIPE, NULL, {0x1, [PIPE], SA_RESTART}, 8) = 0
pipe([5, 6])                            = 0
fcntl64(5, F_GETFL)                     = 0 (flags O_RDONLY)
fcntl64(5, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
fcntl64(6, F_GETFL)                     = 0x1 (flags O_WRONLY)
fcntl64(6, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
fcntl64(5, F_GETFD)                     = 0
fcntl64(5, F_SETFD, FD_CLOEXEC)         = 0
fcntl64(6, F_GETFD)                     = 0
fcntl64(6, F_SETFD, FD_CLOEXEC)         = 0
rt_sigaction(SIGINT, {0xfa9f358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0xfa9f358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR1, {0xfa9f358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR2, {0xfa9f358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0xfa9f358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
time(NULL)                              = 438615
open("/proc/self/auxv", O_RDONLY)       = -1 ENOENT (No such file or directory)
rt_sigaction(SIGILL, {0xfa9f358, [], 0}, {SIG_DFL, [], 0}, 8) = 0

and after the break:

rt_sigaction(SIGILL, {SIG_DFL, [], 0}, NULL, 8) = 0
open("/var/etc/pulse/system.pa", O_RDONLY|O_LARGEFILE) = 7
fstat64(7, {st_mode=S_IFREG|0644, st_size=1768, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3001b000
read(7, "#!/bin/pulseaudio -nF\n#\n# This fi"..., 4096) = 1768
open("/lib/pulse-0.9/modules/module-oss.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/module-oss.la", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/module-oss.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/i486-linux-gnu/module-oss.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/i486-linux-gnu/module-oss.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/module-oss.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("module-oss.la", O_RDONLY)         = -1 ENOENT (No such file or directory)
access("/lib/pulse-0.9/modules/module-oss.so", R_OK) = 0
open("/lib/pulse-0.9/modules/module-oss.so", O_RDONLY) = 8

Change History

Changed 3 years ago by philro

  • summary changed from Pulseaudio break after Startup on PowerPC Hardware to Pulseaudio makes a break after Startup on PowerPC Hardware

Changed 3 years ago by lennart

Please provide a proper backtrace when this freezes in gdb!

Changed 3 years ago by lennart

  • status changed from new to closed
  • resolution set to invalid

CLosing due to lack of response.

Changed 3 years ago by rhabarber1848

  • cc rhabarber1848@… added
  • status changed from closed to reopened
  • resolution invalid deleted

After a long period of silence I found some time to debug this.

I added some debug code to PA src/daemon/main.c

    pa_log_info("pause debug2");
    oil_init();
    pa_log_info("pause debug3");

The pause is caused by oil_init().

Starting PA like this:

OIL_CPU_FLAGS=0 OIL_DEBUG=3 pulseaudio --verbose --log-level=4

pauses the log at

I: main.c: pause debug2
OIL: INFO liboildebug.c 67: _oil_debug_init(): liboil-0.3.15 debug init
OIL: INFO liboilcpu.c 117: _oil_cpu_init(): cpu flags from environment 00000000
OIL: INFO liboilcpu.c 120: _oil_cpu_init(): cpu flags 00000000
OIL: INFO liboilfault.c 111: oil_fault_check_enable(): enabling SIGILL handler.  Make sure to continue past any SIGILL signals caught by gdb.

for about 60s, then it continues like this:

OIL: INFO liboilfunction.c 185: oil_optimize_all(): 415 classes, 881 implementations, 0 enabled
OIL: INFO liboilfault.c 166: oil_fault_check_disable(): disabling SIGILL handler
OIL: INFO liboilfunction.c 143: oil_init(): oil_init() finished
I: main.c: pause debug3

Any tips for more debugging or do we have to live with it due to our slow CPU?

# cat /proc/cpuinfo
processor       : 0
cpu             : 8xx
clock           : 66MHz
bus clock       : 66MHz
revision        : 0.0 (pvr 0050 0000)
bogomips        : 65.74

Changed 3 years ago by rhabarber1848

Some strace logs, before the pause:

rt_sigaction(SIGINT, {0xfb0c358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0xfb0c358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR1, {0xfb0c358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR2, {0xfb0c358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0xfb0c358, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
time(NULL)                              = 1235171903
open("/proc/self/auxv", O_RDONLY)       = -1 ENOENT (No such file or directory)
rt_sigaction(SIGILL, {0xfb0c358, [], 0}, {SIG_DFL, [], 0}, 8) = 0

after the pause:

rt_sigaction(SIGILL, {SIG_DFL, [], 0}, NULL, 8) = 0
open("/var/etc/pulse/default.pa", O_RDONLY|O_LARGEFILE) = 7
fstat64(7, {st_mode=S_IFREG|0644, st_size=4010, ...}) = 0

During the pause, strace -fF shows nothing...

Changed 3 years ago by lennart

  • status changed from reopened to closed
  • resolution set to notourfault

This is unrelated to PulseAudio.

Please contact the liboil folks regarding this issue.

Note: See TracTickets for help on using tickets.