This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/11941] ld.so: Improper assert map->l_init_called in dlclose


https://sourceware.org/bugzilla/show_bug.cgi?id=11941

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
           See Also|                            |https://bugzilla.redhat.com
                   |                            |/show_bug.cgi?id=1398370
         Resolution|INVALID                     |---
            Summary|destructor called after     |ld.so: Improper assert
                   |shared library relelase     |map->l_init_called in
                   |(crash in dl_close())       |dlclose
     Ever confirmed|1                           |0

--- Comment #3 from Florian Weimer <fweimer at redhat dot com> ---
The assertion is indeed invalid.  We see it in current Fedora 25 with
gssntlmssp.

The triggering conditions appear to be as follow:

  Application links against libkrb5.
  libkrb5 dlopens a plugin DSO (gssntlmssp) with RTLD_NODELETE.
  The plugin DSO is in turn linked against libkrb5.
  The application exits.
  The plugin DSO destructor runs.
  The libkrb5 destructor runs, calling dlclose on the plugin DSO.
  The assertion fires.

The cause appears to be that at “The plugin DSO destructor runs.”, the dynamic
linker resets the l_init_called flag to false.  However, this execution trace
looks totally valid, and it is difficult to see how libkrb5 could do anything
else here.

Carlos and I think we just need to remove the assert.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]