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/22034] New: dlopen and cancellation


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

            Bug ID: 22034
           Summary: dlopen and cancellation
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: dynamic-link
          Assignee: unassigned at sourceware dot org
          Reporter: carlos at redhat dot com
  Target Milestone: ---

Similar to bug 15686, a constructor (foreign function call) might call
functions which are cancellation points and under deferred cancellation the
thread will be cancelled leaving the dynamic loader internal locks held.
Subsequent dlopen's from another thread will deadlock. In this case we could
fix this by installing a cancel handler when dlopen starts running.

A perfect solution would be to avoid running the constructors with locks held
at all, but we need to advance the state of the dynamic loader internals
further to the point where we can snapshot link_map state and allow concurrent
dlopens.

-- 
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]