[pulseaudio-discuss] Is it OK for PulseAudio to crash when BlueZ is buggy?
tanu.kaskinen at digia.com
Wed May 9 00:19:35 PDT 2012
While writing code, I've used a rule that if a library that we use is
buggy (acts against its documentation), it's OK to crash in an
assertion. For example, I've used a lot of assertions on libdbus calls
that, according to the documentation, can fail only if there's not
enough memory. Since PulseAudio handles OOM by aborting, it's OK to
abort also when those libdbus calls fail. If they fail for some other
reason than OOM, that's then against the documentation, and the correct
course for action is to fix the bug in libdbus (or its documentation),
not to work around the problem by adding recovery code in PulseAudio.
I've also used a rule that buggy D-Bus services (and sound card drivers)
that PulseAudio relies on shouldn't be able to crash PulseAudio, unlike
buggy libraries. I can't really explain to myself why I've made that
distinction between libraries and D-Bus services. I think it should be
OK to assume that D-Bus services are working as documented, and when
there are problems with that, fix the bug where it is.
More information about the pulseaudio-discuss