pulseaudio/src/modules
Mikel Astiz 2f0f07a755 bluetooth: Fix assertion failure if BlueZ crashes during GetProperties
If BlueZ crashes exactly while PulseAudio waits for the GetProperties reply, the
device has already been removed from the hashmap and therefore an assertion
failure is experienced.

The solution consists of ignoring the reply in these cases.

The problem can be observed in the following traces:

D: [pulseaudio] bluetooth-util.c: Bluetooth daemon appeared.
D: [pulseaudio] bluetooth-util.c: dbus: interface=org.bluez.Manager, path=/, member=AdapterAdded
D: [pulseaudio] bluetooth-util.c: Adapter /org/bluez/497/hci1 created
D: [pulseaudio] bluetooth-util.c: Registering /MediaEndpoint/HFPAG on adapter /org/bluez/497/hci1.
D: [pulseaudio] bluetooth-util.c: Registering /MediaEndpoint/HFPHS on adapter /org/bluez/497/hci1.
D: [pulseaudio] bluetooth-util.c: Registering /MediaEndpoint/A2DPSource on adapter /org/bluez/497/hci1.
D: [pulseaudio] bluetooth-util.c: Registering /MediaEndpoint/A2DPSink on adapter /org/bluez/497/hci1.
D: [pulseaudio] bluetooth-util.c: dbus: interface=org.bluez.Adapter, path=/org/bluez/497/hci1, member=DeviceCreated
D: [pulseaudio] bluetooth-util.c: Device /org/bluez/497/hci1/dev_90_84_0D_B2_C7_04 created
D: [pulseaudio] bluetooth-util.c: dbus: interface=org.freedesktop.DBus, path=/org/freedesktop/DBus, member=NameOwnerChanged
D: [pulseaudio] bluetooth-util.c: Bluetooth daemon disappeared.
E: [pulseaudio] bluetooth-util.c: Assertion 'p->call_data == d' failed at modules/bluetooth/bluetooth-util.c:685, function get_properties_reply(). Aborting.
2013-02-19 19:30:17 +02:00
..
alsa core: Internally deprecate pa_port_available_t to use pa_available_t 2013-02-18 17:25:53 +02:00
bluetooth bluetooth: Fix assertion failure if BlueZ crashes during GetProperties 2013-02-19 19:30:17 +02:00
dbus idxset: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:15:27 +02:00
echo-cancel echo-cancel: Enable different sample specs for rec and out stream 2013-02-18 19:16:40 +02:00
gconf hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
jack jack: Don't fail module-jackdbus-detect loading if the channels argument is not given. 2013-01-22 08:42:27 +02:00
macosx hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
oss oss: Check pa_read() return value. 2012-12-19 12:31:50 +02:00
raop hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
rtp hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
x11 modules: Use pa_streq instead of strcmp. 2012-06-09 16:21:41 +03:00
xen modules: Micro-optimisation for rewind_requested paths 2012-11-16 23:16:05 +05:30
ladspa.h merge 'lennart' branch back into trunk. 2007-10-28 19:13:50 +00:00
Makefile build-sys: readd stub makefiles to subdirectories to make building with emacs easier 2012-05-15 14:17:58 +02:00
module-always-sink.c modules: Use PA_IDXSET_FOREACH wherever applicable. 2012-05-31 14:12:33 +02:00
module-augment-properties.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
module-card-restore.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
module-cli.c win32: Make some unused-variable warnings go away 2011-06-24 00:34:05 +01:00
module-combine-sink.c idxset: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:15:27 +02:00
module-combine.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
module-console-kit.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
module-default-device-restore.c More spelling fixes 2011-08-25 11:27:47 +01:00
module-defs.h.m4 modules: introduce PA_MODULE_DEPRECATED() macro for marking modules deprecated 2009-05-28 02:47:36 +02:00
module-detect.c modules: Use pa_streq instead of strcmp. 2012-06-09 16:21:41 +03:00
module-device-manager.c idxset: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:15:27 +02:00
module-device-restore.c idxset: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:15:27 +02:00
module-equalizer-sink.c equalizer: Don't cleanup u->sink in sink_input_kill_cb yet 2012-09-25 20:39:15 +03:00
module-esound-compat-spawnfd.c Initialise variables 2011-08-15 09:41:56 +01:00
module-esound-compat-spawnpid.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
module-esound-sink.c modules: Micro-optimisation for rewind_requested paths 2012-11-16 23:16:05 +05:30
module-filter-apply.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
module-filter-heuristics.c core: Add a string list membership check function 2011-10-28 15:21:09 +02:00
module-hal-detect-compat.c hal: add stub module that loads module-udev-detect instead of module-hal-detect 2009-08-11 23:04:35 +02:00
module-intended-roles.c core: Add a string list membership check function 2011-10-28 15:21:09 +02:00
module-ladspa-sink.c build-sys: Properly check for HAVE_DBUS in module-ladspa-sink 2013-02-14 15:06:59 +02:00
module-lirc.c volume: Clamp volume to PA_VOLUME_MAX 2010-10-15 01:10:00 +05:30
module-loopback.c loopback: Don't fix the source output format/rate/channels. 2012-10-30 16:27:17 +02:00
module-match.c match: Use the SINK_INPUT_FIXATE hook instead of NEW. 2012-10-30 16:32:34 +02:00
module-mmkbd-evdev.c volume: Clamp volume to PA_VOLUME_MAX 2010-10-15 01:10:00 +05:30
module-native-protocol-fd.c Initialise variables 2011-08-15 09:41:56 +01:00
module-null-sink.c modules: Micro-optimisation for rewind_requested paths 2012-11-16 23:16:05 +05:30
module-null-source.c Initialise variables 2011-08-15 09:41:56 +01:00
module-pipe-sink.c modules: Micro-optimisation for rewind_requested paths 2012-11-16 23:16:05 +05:30
module-pipe-source.c pipe: check return value of mkfifo() 2012-05-29 09:03:15 +05:30
module-position-event-sounds.c sink-input: New volume_factor system 2012-12-19 12:31:47 +02:00
module-protocol-stub.c core-util: Fix permissions handling while creating directories 2012-07-03 08:49:26 +05:30
module-remap-sink.c Add comments referring to bug #53709. 2012-08-19 14:49:27 +03:00
module-rescue-streams.c Fix typos 2010-12-20 11:07:30 +00:00
module-role-cork.c idxset: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:15:27 +02:00
module-role-ducking.c idxset: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:15:27 +02:00
module-rygel-media-server.c Make gcc --std=c99 happy 2011-09-03 12:17:28 +02:00
module-sine-source.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
module-sine.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
module-solaris.c solaris: When suspending, flush the device instead of draining it. 2013-01-04 17:13:32 +02:00
module-stream-restore.c idxset: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:15:27 +02:00
module-suspend-on-idle.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
module-switch-on-connect.c module-switch-on-connect: Don't switch unlinked sink input and source outputs 2011-08-31 18:49:44 +05:30
module-switch-on-port-available.c core: Internally deprecate pa_port_available_t to use pa_available_t 2013-02-18 17:25:53 +02:00
module-systemd-login.c hashmap: Add pa_hashmap_remove_all() 2013-02-16 01:17:04 +02:00
module-tunnel.c sink: Process rewind requests also when suspended. 2012-11-16 23:16:05 +05:30
module-udev-detect.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
module-virtual-sink.c virtual-sink: Removed the option to specify sample format. 2012-12-19 12:31:50 +02:00
module-virtual-source.c core: Move pa_mix() into new file mix.c 2013-02-15 21:33:07 +02:00
module-virtual-surround-sink.c virtual-surround: check if resampled memblock is not equal to input 2012-11-29 05:28:39 +02:00
module-volume-restore.c Fix up some double spaces 2011-03-18 09:20:07 +00:00
module-waveout.c modules: Micro-optimisation for rewind_requested paths 2012-11-16 23:16:05 +05:30
module-zeroconf-discover.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
module-zeroconf-publish.c hashmap: Use pa_free_cb_t instead of pa_free2_cb_t 2013-02-16 01:12:21 +02:00
reserve-monitor.c reserve: Move get_name_owner() to the public rd_device API 2013-01-31 13:56:25 +02:00
reserve-monitor.h More spelling fixes 2011-08-25 11:27:47 +01:00
reserve-wrap.c Move i18n.[ch] to src/pulsecore 2011-08-11 13:23:42 +02:00
reserve-wrap.h reserve: wrap device reservation monitor reference implementation 2009-06-05 19:03:16 +02:00
reserve.c reserve: Fix leaking NameLost signals after release+acquire 2013-01-31 14:04:45 +02:00
reserve.h reserve: Move get_name_owner() to the public rd_device API 2013-01-31 13:56:25 +02:00
udev-util.c udev: Don't use deprecated udev_get_*_path() functions 2012-05-29 09:17:18 +05:30
udev-util.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00