[asterisk-bugs] [Asterisk 0016934]: glibc 2.11.1 causes asterisk to not start due to return code from dlclose

Asterisk Bug Tracker noreply at bugs.digium.com
Wed Mar 3 10:08:52 CST 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=16934 
====================================================================== 
Reported By:                PQA
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   16934
Category:                   Core/General
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           1.6.2.4 
JIRA:                       SWP-995 
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-03-01 10:10 CST
Last Modified:              2010-03-03 10:08 CST
====================================================================== 
Summary:                    glibc 2.11.1 causes asterisk to not start due to
return code from dlclose
Description: 
On Fedora-12, with its current glibc (glibc-2.11.1-1), asterisk fails to
start up when it loads any module.

In main/loader.c there are 4 instances of the following code:
     while (!dlclose(lib));

dlclose() in glibc-2.11.1-1 returns 0 (SUCCESS) even if the library has
already been closed, and consequently the while loop never terminates.

On Fedora-11 (with glibc-2.10.2-1) and Fedora-13 (with glibc-2-11-90.14),
dlclose() returns -1 if the library is already closed, and so the problem
does not occur.

This issue certain occurs with asterisk version 1.6.1.12 and later
(including current SVN head).
====================================================================== 

---------------------------------------------------------------------- 
 (0118849) PQA (reporter) - 2010-03-03 10:08
 https://issues.asterisk.org/view.php?id=16934#c118849 
---------------------------------------------------------------------- 
The concern must be that if the behaviour of dlclose() is undefined if the
library is already closed, then the behaviour of the while (dlclose(lib));
loop is undefined, and may break again in the future.

Is it possible to get a definitive answer on the behaviour of dlclose() in
this circumstance, since if it is undefined, then Asterisk is relying on
undefined behaviour, which could cause problems for both new ports, and for
future upgrades. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-03-03 10:08 PQA            Note Added: 0118849                          
======================================================================




More information about the asterisk-bugs mailing list