Opened 20 years ago
Last modified 19 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 )
If process load module dynamically (dlopen) after that fork will fail.
I examine the situation a bit and divide it into 3 cases
- process dlopen() module then forking. Child process failed during initial fork processing.
 - process dlopen() module, dlclose() module then forking. Parent process trapped during fork processing.
 - 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 , 20 years ago
| Attachment: | bug_report.zip added | 
|---|
comment:1 by , 20 years ago
| Component: | baselayout → libc-backend | 
|---|---|
| Description: | modified (diff) | 
| Status: | new → assigned | 
| Version: | → 0.6 | 
comment:2 by , 20 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.
    