Opened 19 years ago

Last modified 18 years ago

#76 closed defect

libc: fork() failed when using dlopen() — at Version 2

Reported by: froloff Owned by: bird
Priority: normal Milestone: libc-0.6.2
Component: libc-backend Version: 0.6
Severity: normal Keywords: fork() dlopen DosLoadModuleEx
Cc:

Description (last modified by bird)

If process load module dynamically (dlopen) after that fork will fail.

I examine the situation a bit and divide it into 3 cases

  1. process dlopen() module then forking. Child process failed during initial fork processing.
  2. process dlopen() module, dlclose() module then forking. Parent process trapped during fork processing.
  3. process dlopen() module, dlclose() module, dlopen() module again then forking. Parent process goes endless loop in forkParValidateModules() during fork processing.

I'll send testcase and libc logs via email.

Note. I didn't find code deregistering module from modules chain - conj procedure to __libc_ForkRegisterModule().

Change History (3)

by froloff, 19 years ago

Attachment: bug_report.zip added

comment:1 by bird, 19 years ago

Component: baselayoutlibc-backend
Description: modified (diff)
Status: newassigned
Version: 0.6

comment:2 by bird, 19 years ago

Description: modified (diff)
Summary: fork() failed when using dlopen()libc: fork() failed when using dlopen()
Note: See TracTickets for help on using tickets.