Bug 427962

Summary: Useless assertion prevents pulseaudio from shutting down gracefully
Product: [Fedora] Fedora Reporter: Lubomir Kundrak <lkundrak>
Component: pulseaudioAssignee: Lennart Poettering <lpoetter>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: pierre-bugzilla
Target Milestone: ---Keywords: EasyFix, Patch
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: pulseaudio-0.9.8-8.fc9 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-29 09:54:31 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lubomir Kundrak 2008-01-08 08:26:08 UTC
Description of problem:

$ pulseaudio -meow
pulseaudio: invalid option -- m
E: main.c: Failed to parse command line.
pulseaudio: daemon/ltdl-bind-now.c:156: pa_ltdl_done: Assertion `lt_dlexit() ==
0' failed.
Aborted (core dumped)
$ 

Dumping core is really not what's needed in case of bad arguments.

Additional info:

Index: src/daemon/ltdl-bind-now.c
===================================================================
--- src/daemon/ltdl-bind-now.c  (revision 2098)
+++ src/daemon/ltdl-bind-now.c  (working copy)
@@ -153,7 +153,6 @@
 }
 
 void pa_ltdl_done(void) {
-    pa_assert_se(lt_dlexit() == 0);
     pa_mutex_free(libtool_mutex);
     libtool_mutex = NULL;
 }
$ 

In some cases, pa_ltdl_done() is called before pa_ltdl_init() (there are a coule
of jumps to finish: before libtool is initialized -- and pa_ldld_done is called
in no places other than after finish:). Therefore it can actually and correctly
return zero