[pulseaudio-discuss] jackdbus module, pulse fails to conform on device reservation API

Ian Malone ibmalone at gmail.com
Tue Nov 6 12:58:55 PST 2012


On 6 November 2012 11:47, Ian Malone <ibmalone at gmail.com> wrote:
> On 5 November 2012 12:49, Ian Malone <ibmalone at gmail.com> wrote:
>> On 4 November 2012 11:23, Ian Malone <ibmalone at gmail.com> wrote:
>>> Hi,
>>>
>>> I'm trying to get a Jack DBUS setup working on Fedora 18. It seems
>>> pulse refuses to release the audio device when it gets a dbus request
>>> from jack:
>>>
>>> Sat Nov  3 20:08:11 2012:  [1m [31mERROR: Failed to acquire device
>>> name : Audio1 error : Method "RequestRelease" with signature "i" on
>>> interface "org.freedesktop.ReserveDevice1" doesn't exist
>>>  [0m
>>> Sat Nov  3 20:08:11 2012:  [1m [31mERROR: Audio device hw:1 cannot be
>>> acquired... [0m
>
>>> If pulse is running but doesn't have the device then jack starts okay
>>> and the sink/source modules get loaded.
>

Sorry if I'm boring people with this.
The magic recipe to get a list of available interfaces (or whatever
they're called in dbus speak) is:
dbus-send --session --print-reply --reply-timeout=2000
--type=method_call --dest=org.freedesktop.DBus /org/freedesktop/DBus
org.freedesktop.DBus.ListNames

$ dbus-send --session --print-reply --reply-timeout=2000
--type=method_call --dest=org.freedesktop.DBus /org/freedesktop/DBus
org.freedesktop.DBus.ListNames|grep org.freedesktop.ReserveDevice1
      string "org.freedesktop.ReserveDevice1.Audio0"
      string "org.freedesktop.ReserveDevice1.Audio1"

While simultaneously:
Acquire audio card Audio0
Failed to acquire device name : Audio1 error : Method "RequestRelease"
with signature "i" on interface "org.freedesktop.ReserveDevice1"
doesn't exist

dbus-monitor of this neogtiation while trying to start jackdbus via
jack_control:
method call sender=:1.97 -> dest=:1.82 serial=4
path=/org/jackaudio/Controller; interface=org.jackaudio.JackControl;
member=StartServer
method call sender=:1.82 -> dest=org.freedesktop.DBus serial=18
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=RequestName
   string "org.freedesktop.ReserveDevice1.Audio0"
   uint32 4
method call sender=:1.82 -> dest=org.freedesktop.ReserveDevice1.Audio0
serial=19 path=/org/freedesktop/ReserveDevice1/Audio0;
interface=org.freedesktop.ReserveDevice1; member=RequestRelease
   int32 2147483647
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=222 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ":1.35"
   string ""
method call sender=:1.35 -> dest=org.freedesktop.DBus serial=36
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=ReleaseName
   string "org.freedesktop.ReserveDevice1.Audio0"
method return sender=:1.35 -> dest=:1.82 reply_serial=19
   boolean true
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=59 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ""
   string ":1.35"
method call sender=:1.35 -> dest=org.freedesktop.DBus serial=38
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=RequestName
   string "org.freedesktop.ReserveDevice1.Audio0"
   uint32 5
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=223 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ":1.35"
   string ":1.82"
method call sender=:1.82 -> dest=org.freedesktop.DBus serial=20
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=RequestName
   string "org.freedesktop.ReserveDevice1.Audio0"
   uint32 6
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=63 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ":1.82"
   string ""
method call sender=:1.82 -> dest=org.freedesktop.DBus serial=21
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=ReleaseName
   string "org.freedesktop.ReserveDevice1.Audio0"
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=64 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ""
   string ":1.35"
method call sender=:1.35 -> dest=org.freedesktop.DBus serial=39
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=RequestName
   string "org.freedesktop.ReserveDevice1.Audio0"
   uint32 5
signal sender=:1.2 -> dest=(null destination) serial=1713
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
signal sender=:1.29 -> dest=(null destination) serial=78
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
signal sender=:1.2 -> dest=(null destination) serial=1714
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
signal sender=:1.2 -> dest=(null destination) serial=1715
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
signal sender=:1.29 -> dest=(null destination) serial=79
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
signal sender=:1.29 -> dest=(null destination) serial=80
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
signal sender=:1.29 -> dest=(null destination) serial=81
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
signal sender=:1.2 -> dest=(null destination) serial=1716
path=/Mixers/1; interface=org.kde.KMix.Mixer; member=controlChanged
error sender=:1.82 -> dest=:1.97
error_name=org.jackaudio.Error.Generic reply_serial=4
   string "Failed to open server"
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=224 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
   string ":1.97"
   string ":1.97"
   string ""

or again:
method call sender=:1.110 -> dest=org.freedesktop.DBus serial=1 path=/org/freede
sktop/DBus; interface=org.freedesktop.DBus; member=Hello
method call sender=:1.110 -> dest=org.freedesktop.DBus serial=2 path=/org/freede
sktop/DBus; interface=org.freedesktop.DBus; member=RequestName
   string "org.freedesktop.ReserveDevice1.Audio0"
   uint32 4
method call sender=:1.110 -> dest=org.freedesktop.ReserveDevice1.Audio0 serial=3
 path=/org/freedesktop/ReserveDevice1/Audio0; interface=org.freedesktop.ReserveD
evice1; member=RequestRelease
   int32 2147483647
signal sender=org.freedesktop.DBus -> dest=(null destination) serial=295 path=/o
rg/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ":1.35"
   string ""
method call sender=:1.35 -> dest=org.freedesktop.DBus serial=74 path=/org/freede
sktop/DBus; interface=org.freedesktop.DBus; member=ReleaseName
   string "org.freedesktop.ReserveDevice1.Audio0"
method return sender=:1.35 -> dest=:1.110 reply_serial=3
   boolean true
signal sender=org.freedesktop.DBus -> dest=(null destination) serial=137 path=/o
rg/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ""
   string ":1.35"
method call sender=:1.35 -> dest=org.freedesktop.DBus serial=76 path=/org/freede
sktop/DBus; interface=org.freedesktop.DBus; member=RequestName
   string "org.freedesktop.ReserveDevice1.Audio0"
   uint32 5
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=296 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
   string "org.freedesktop.ReserveDevice1.Audio0"
   string ":1.35"
   string ":1.110"
method call sender=:1.110 -> dest=org.freedesktop.DBus serial=4
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=RequestName
method call sender=:1.110 -> dest=org.freedesktop.DBus serial=5
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=RequestName
   string "org.freedesktop.ReserveDevice1.Audio1"
   uint32 4
method call sender=:1.110 ->
dest=org.freedesktop.ReserveDevice1.Audio1 serial=6
path=/org/freedesktop/ReserveDevice1/Audio1;
interface=org.freedesktop.ReserveDevice1; member=RequestRelease
   int32 2147483647
error sender=:1.35 -> dest=:1.110
error_name=org.freedesktop.DBus.Error.UnknownMethod reply_serial=6
   string "Method "RequestRelease" with signature "i" on interface
"org.freedesktop.ReserveDevice1" doesn't exist
"

I'll speculate that something somewhere is confused by the presence of
two devices and either Audio1 isn't being provided correctly by pulse
(though it does create it) or requested properly by Jack (though with
only one parameter that's difficult to believe).

-- 
imalone
http://ibmalone.blogspot.co.uk


More information about the pulseaudio-discuss mailing list