ubuntu-touch-session pulseaudio job fails to start

Bug #1526077 reported by Steve Langasek
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ubuntu-touch-session (Ubuntu)
New
Undecided
Unassigned

Bug Description

The pulseaudio upstart user session job from ubuntu-touch-session, /usr/share/upstart/sessions/pulseaudio.conf, runs a post-start script that polls for /run/user/`id -u`/pulse/dbus-socket. Versions of pulseaudio in wily or later do not appear to create this socket anymore; they only create /run/user/$id/pulse/native.

It's possible this is because the /etc/pulse/touch.pa config is not being properly applied and therefore module-dbus-protocol.so is not being loaded. Regardless of the root cause, the symptom I'm seeing is that an emulator instance running wily fails to ever start the pulseaudio job.

The post-start script shown in this job, where the script polls waiting for the creation of the socket, is also quite bad. upstart does have inotify support; the affected jobs can instead be started directly on creation of the relevant socket.

Steve Langasek (vorlon)
summary: - ubuntu-touch-session pulseaudio job looks for wrong socket
+ ubuntu-touch-session pulseaudio job fails to start
Revision history for this message
Steve Langasek (vorlon) wrote :

Sorry, on closer look I see the touch.pa is meant to be passed as an environment variable by the upstart job. If I pass that correctly, pulseaudio instead fails to start with the following error:

Dec 14 22:26:49 ubuntu-phablet pulseaudio[19153]: [pulseaudio] droid-util.c: Failed to open device (errno -38).
Dec 14 22:26:49 ubuntu-phablet pulseaudio[19153]: [pulseaudio] module.c: Failed to load module "module-droid-card" (argument: "voice_virtual_stream=true"): initialization failed.

So this is certainly still broken, at least on the emulator, but the socket location is not the issue.

ERRNO 38 is ENOSYS, Invalid system call number. I don't know why it's printing this; the output from strace instead shows:

[pid 21541] open("/dev/eac", O_RDWR|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 21541] prctl(PR_GET_NAME, 0x1e10ba0, 0x40000000, 0x76ccf7a8, 0x75b51a44) = 0
[pid 21541] ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7e97c27c) = -1 ENOTTY (Inappropriate ioctl for device)
[pid 21541] write(2, "E: [pulseaudio] droid-util.c: Fa"..., 65) = 65

Changing the permissions on /dev/eac to be writable by phablet is sufficient to let pulseaudio start.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.