Opened 13 years ago
Last modified 13 years ago
#75 new defect
Problems with multiple initialization of WGSS50.DLL
Reported by: | dmik | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | general enhancement |
Component: | odin | Version: | 0.8.x |
Severity: | low | Keywords: | |
Cc: |
Description
It turns out that if one version of KERNEL32.DLL has already loaded and initialized WGSS50.DLL, then an attempt to initialize the same instance of WGSS50.DLL from another version (located in a separate file and loaded in LIBPATHSTRICT=T mode) leads to weird behavior. This includes:
- A hang within DosLoadModule(KERNEL32.DLL) in the process loading the second version of KERNEL32.DLL.
- A hang in the process that loaded the first version of KERNEL32.DLL and originally initialized WGSS50.DLL, after another process (hung in DosLoadModule()) is killed.
Change History (2)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Milestone: | → general enhancement |
---|
Note that WGSS50 itself uses KERNEL32/USER32/GDI32 so that the problem may come from the fact that fixups in WGSS50 already point to the first KERNEL32 module when the second one attempts to initialize it.
Note also that since this situation is unlikely in a normal environment (and has an easy workaround), the priority is considered to be minor.
An easy way to reproduce the problem is to do the following:
Flash will not work (will behave as if there is no plugin installed). Closing Firefox will make the OpenJDK process hang.
A simple workaround is to put a separate copy of WGSS50.DLL to BEGINLIBPATH along with the second set of Odin DLLs. This causes OS/2 to load a separate WGSS50 instance and all goes fine then.