[Bug 53103] ie8 doesn't start (race condition)

WineHQ Bugzilla wine-bugs at winehq.org
Mon Jun 13 08:52:54 CDT 2022


https://bugs.winehq.org/show_bug.cgi?id=53103

Eric Pouech <eric.pouech at orange.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #3 from Eric Pouech <eric.pouech at orange.fr> ---
looking a bit into it:
- it seems that at installation, ie8 sets up a service (spupdsvc.exe). At first
invocation of ie8 (but also at first invocation of any program), this service 
spawns a few more processes (reg.exe and regsvr32.exe) for further init
- each of these process creations generate (now, with patch mentioned in #1) a
couple of console creation, which make the runtime of spupdsvc.exe much longer
- I didn't find simple sync mechanism between ie and this service (may be there
are but they don't trigger)
- at the end, ie8 terminates

Disabling (dirty hack) console creation when spawning a new CUI process from a
running service makes ie8 run fine again. This likely confirms this bug is a
side effect of f034084d49b354811096524d472ae5172ac1cebf (and further commits)

but this opens two areas of investigation:

1) CreateProcess() behaviour from a service
-------------------------------------------
- it's likely that no console is created under windows in this case, especially
with user app now running outside of session #0 (but that wine doesn't properly
handle yet)
- but it has also to be looked into if it's inherited from attributes of
session 0 (no display...), or hard-wired in CreateProcess, or something else

2) the lack of effective synchronization
----------------------------------------
the lack of sync between ie8 and spupdsvc looks suspicious too. Is wine missing
some bits (I didn't find simple stuff, but there may be). Or there are none (on
windows, as services is started even before user logs in, it's likely there
more time for doing the init - even it's likely there are more services)

All the processes to be run are listed in:
- c:\windows\system32\spupdsvc.inf under the [ProcessesToRunAfterReboot] entry
- the .inf file is erased when after first run of spupsvc.exe

until 1) & 2) are further analysed, I don't see simple fix at hand :-(

workaround:
==========
We need to ensure that spupdsvc.exe finishes before starting ie8 (ie start any
other program and wait for the whole session termination). For example:
> ./wine ping && ./server/wineserver -w

when back to prompt, running ie8 should work

(and this make debugging & testing painful as a new clean prefix + ie8
installation is needed each time, or clone the prefix after winetricks finishes
but before launching any other program in the prefix)

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list