https://bugs.winehq.org/show_bug.cgi?id=36523
Bug ID: 36523 Summary: Original War: Patcher 1.12.10.12 fails at writing data1.owp`s header - canvas does not allow drawing Product: Wine Version: 1.7.19 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: jopac76@mail.com
Created attachment 48605 --> https://bugs.winehq.org/attachment.cgi?id=48605 The error log mentioned on the popup
After installing the retail cd version 1.02 french, and then trying to update to 1.12.10.12.exe fails about at 14% installed, then the installer shows the following:
*Patching* Writing data1.owp`s Header
And a error report popup with
Setup Thread Error: Canvas does not allow drawing Error log Created: Please include "C:\users\user\Temp\ErrorLog0000.TXT" with >your bug report
Download: http://www.owsupport.com/?sect=patches
71a1e44b03639791875dd216755e5e8910db24cb OWPatch_1.12.10.12.exe
I can't find out how to attach more than one file, but the only thing on the wine output is a fixme about timezones.
https://bugs.winehq.org/show_bug.cgi?id=36523
jopac76@mail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer
https://bugs.winehq.org/show_bug.cgi?id=36523
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW URL| |http://www.owsupport.com/pa | |tches/OWPatch_1.12.10.12.ra | |r CC| |focht@gmx.net Ever confirmed|0 |1
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The installer is written in Borland Delphi 6.
Looks like a threading/timing issue with unprotected shared instance data (app bug).
tid 002d = main thread tid 002e = secondary 'setup' thread
--- snip --- $ WINEDEBUG=+tid,+seh,+relay wine ./OWPatch_1.12.10.12.exe >>log.txt 2>&1 ... ... 002e:Call KERNEL32.WideCharToMultiByte(00000000,00000000,0016b22c L"Processing data1.owp: 0 of 6577 files",00000025,0072d904,00000fff,00000000,00000000) ret=004049b7 002e:Ret KERNEL32.WideCharToMultiByte() retval=00000025 ret=004049b7 002e:Call user32.InvalidateRect(000200ac,0072e778,00000000) ret=0044b29d 002e:Ret user32.InvalidateRect() retval=00000001 ret=0044b29d 002e:Call user32.GetDC(00000000) ret=00437c75 002e:Call winex11.drv.CreateDesktopWindow(00030058) ret=7ed17290 002e:Ret winex11.drv.CreateDesktopWindow() retval=00000001 ret=7ed17290 002e:Ret user32.GetDC() retval=0004002a ret=00437c75 002e:Call gdi32.MoveToEx(0004002a,00000000,00000000,00000000) ret=00429e67 002e:Ret gdi32.MoveToEx() retval=00000001 ret=00429e67 ... 002d:Call user32.DrawTextW(0dc100a9,00e90ed4 L"Processing data1.owp: 0 of 6577 files",00000025,0033dbd0,00000040) ret=004827fc 002d:Ret user32.DrawTextW() retval=0000000d ret=004827fc 002d:Call oleaut32.SysFreeString(00e90ed4 L"Processing data1.owp: 0 of 6577 files") ret=00404fc7 002d:Ret oleaut32.SysFreeString() retval=00000000 ret=00404fc7 002d:Call oleaut32.SysFreeString(00e8f5c4 L"Processing data1.owp: 0 of 6577 files") ret=00404fc7 002d:Ret oleaut32.SysFreeString() retval=00000000 ret=00404fc7 002d:Call gdi32.SelectObject(0dc100a9,00010017) ret=0042a23c 002d:Ret gdi32.SelectObject() retval=00040054 ret=0042a23c 002d:Call gdi32.SelectObject(0dc100a9,00010015) ret=0042a24b 002d:Ret gdi32.SelectObject() retval=00020063 ret=0042a24b 002d:Call gdi32.SelectObject(0dc100a9,0001001e) ret=0042a25a 002d:Ret gdi32.SelectObject() retval=00110053 ret=0042a25a 002d:Call gdi32.GetCurrentPositionEx(0dc100a9,0033dc04) ret=0042a135 002d:Ret gdi32.GetCurrentPositionEx() retval=00000001 ret=0042a135 002d:Call gdi32.RestoreDC(0dc100a9,00000001) ret=0044f532 002d:Ret gdi32.RestoreDC() retval=00000001 ret=0044f532 002d:Call gdi32.RectVisible(0dc100a9,0033dd90) ret=0044f4de 002d:Ret gdi32.RectVisible() retval=00000000 ret=0044f4de 002d:Call user32.EndPaint(000200ac,0033ddcc) ret=0044f3e3 002e:Ret oleaut32.SysReAllocStringLen() retval=00000001 ret=0040500b 002e:Call user32.GetDC(000200ac) ret=004513c0 002d:Ret user32.EndPaint() retval=00000001 ret=0044f3e3 002e:Call winex11.drv.GetDC(001700d5,000200ac,0001009e,0072e548,0072e538,0000001a) ret=7ecf1afe 002e:Ret winex11.drv.GetDC() retval=00000001 ret=7ecf1afe 002e:Ret user32.GetDC() retval=001700d5 ret=004513c0 002e:Call gdi32.SetViewportOrgEx(001700d5,000000dc,00000090,00000000) ret=0044b152 002e:Ret gdi32.SetViewportOrgEx() retval=00000001 ret=0044b152 002e:Call gdi32.IntersectClipRect(001700d5,00000000,00000000,00000034,0000000d) ret=0044b164 002e:Ret gdi32.IntersectClipRect() retval=00000002 ret=0044b164 002d:Call user32.ReleaseDC(000200ac,001700d5) ret=0044996b 002d:Ret user32.ReleaseDC() retval=00000001 ret=0044996b 002d:Call gdi32.SelectObject(0025004d,00010017) ret=0042a23c 002d:Ret gdi32.SelectObject() retval=00010018 ret=0042a23c 002d:Call gdi32.SelectObject(0025004d,00010015) ret=0042a24b 002d:Ret gdi32.SelectObject() retval=00020063 ret=0042a24b 002d:Call gdi32.SelectObject(0025004d,0001001e) ret=0042a25a 002d:Ret gdi32.SelectObject() retval=00110053 ret=0042a25a 002d:Call gdi32.GetCurrentPositionEx(0025004d,0033dfb8) ret=0042a135 002d:Ret gdi32.GetCurrentPositionEx() retval=00000001 ret=0042a135 002d:Call user32.ReleaseDC(000200ac,0025004d) ret=0044996b 002d:Ret user32.ReleaseDC() retval=00000001 ret=0044996b 002d:Ret window proc 0x350fc8 (hwnd=0x200ac,msg=WM_PAINT,wp=00000000,lp=00000000) retval=00000000 002e:Call user32.LoadStringA(00400000,0000ff61,0072e2cc,00000400) ret=00406e32 002e:Ret user32.LoadStringA() retval=0000001d ret=00406e32 002d:Ret user32.DispatchMessageA() retval=00000000 ret=0046be48 002d:Call user32.PeekMessageA(0033e26c,00000000,00000000,00000000,00000001) ret=0046bdd8 002e:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0072e6dc) ret=0042a30a 002d:Call winex11.drv.MsgWaitForMultipleObjectsEx(00000000,00000000,00000000,000004ff,00000000) ret=7ed2733f 002d:Ret winex11.drv.MsgWaitForMultipleObjectsEx() retval=00000102 ret=7ed2733f 002d:Ret user32.PeekMessageA() retval=00000000 ret=0046bdd8 002d:Call KERNEL32.Sleep(00000001) ret=004e8604 002e:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b83ac57 ip=7b83ac57 tid=002e 002e:trace:seh:raise_exception info[0]=0042a30a 002e:trace:seh:raise_exception info[1]=016600dc 002e:trace:seh:raise_exception info[2]=ff82210f 002e:trace:seh:raise_exception info[3]=007dde00 002e:trace:seh:raise_exception info[4]=007dde00 002e:trace:seh:raise_exception info[5]=0072e744 002e:trace:seh:raise_exception info[6]=0072e6f8 002e:trace:seh:raise_exception eax=7b826c7d ebx=7b8bb000 ecx=0072e6f8 edx=0072e650 esi=0072e6dc edi=0072e6a0 002e:trace:seh:raise_exception ebp=0072e678 esp=0072e614 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200283 002e:trace:seh:call_stack_handlers calling handler at 0x4bafa1 code=eedfade flags=1 002e:trace:seh:call_stack_handlers handler at 0x4bafa1 returned 1 ... 002e:Call user32.MessageBoxA(00000000,02c8425c "Setup Thread Error: Canvas does not allow drawing\r\rError Log Created. Please Include "C:\users\focht\Temp\\ErrorLog0000.TXT" with your bug report",004e601c "Error Report",00000000) ret=004e5df4 --- snip ---
This seems to happen at the start of 'patch' phase, after extraction of patch files ('Processing data1.owp: 0 of 6577 files').
Main thread 002d handles a full WM_PAINT at the time when thread 002e also does drawing operations to some DC (albeit a different one). My guess is that the app is bugged, not protecting some internal instance data properly. This is probably hidden on Windows due to different execution timing/underlying architecture (gdi32/user32 -> kernel).
You can try the following workaround to pin the process (and its threads) to a single core. This has the effect of forcing serialized execution of certain code sections, making it behave a bit more "atomic".
--- snip --- $ taskset -c 0 wine ./OWPatch_1.12.10.12.exe --- snip ---
$ sha1sum OWPatch_1.12.10.12.rar 2d0d42995ef0ecd0eeedeb40b8bb421d3ee983f4 OWPatch_1.12.10.12.rar
$ du -sh OWPatch_1.12.10.12.rar 76M OWPatch_1.12.10.12.rar
$ wine --version wine-1.7.19-56-gee13e10
Regards
https://bugs.winehq.org/show_bug.cgi?id=36523
--- Comment #2 from jopac76@mail.com --- The suggested workaround worked here.
http://bugs.winehq.org/show_bug.cgi?id=36523
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gyebro69@gmail.com
--- Comment #3 from Béla Gyebrószki gyebro69@gmail.com --- This seems to be the same as bug #29503. The installers used for patching those games are identical.
http://bugs.winehq.org/show_bug.cgi?id=36523
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello Béla,
--- quote --- This seems to be the same as bug #29503. The installers used for patching those games are identical. --- quote ---
indeed, I'm resolving your bug as dupe then to not let my preliminary analysis to go to waste here. Thanks.
Regards
http://bugs.winehq.org/show_bug.cgi?id=36523
--- Comment #5 from Anastasius Focht focht@gmx.net --- *** Bug 29503 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=36523
Radosław Piliszek radzio.cool@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |radzio.cool@gmail.com
--- Comment #6 from Radosław Piliszek radzio.cool@gmail.com --- http://bugs.owsupport.com/originalwar/issues/24
This bug is actually present on some Windows installs as well. And it has appeared for the first time in some earlier patch.
http://bugs.winehq.org/show_bug.cgi?id=36523
--- Comment #7 from Radosław Piliszek radzio.cool@gmail.com --- http://forum.stucuk.net/viewtopic.php?t=2651
According to the above, you can try downloading and running the latest installer from here: http://www.owsupport.com/?sect=patches
And it should help... or at least we'll find another place where it fails now. :-)
https://bugs.winehq.org/show_bug.cgi?id=36523
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #8 from joaopa jeremielapuree@yahoo.fr --- Application bug (as explain by Anastasius) and a fix was proposed by devellopper. Can an administrator close this bug as NOTOURBUG?
https://bugs.winehq.org/show_bug.cgi?id=36523
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED URL|http://www.owsupport.com/pa |https://web.archive.org/web |tches/OWPatch_1.12.10.12.ra |/20150211064337/http://www. |r |owsupport.com/patches/OWPat | |ch_1.12.10.12.rar Resolution|--- |INVALID
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello folks,
adding stable download link via Internet Archive:
https://web.archive.org/web/20150211064337/http://www.owsupport.com/patches/...
@ joaopa
--- quote --- Can an administrator close this bug as NOTOURBUG? --- quote ---
https://bugs.winehq.org/page.cgi?id=fields.html#bug_status
--- quote --- NOTOURBUG The problem is not a bug in Wine, but in some upstream software Wine depends on or broken packages in distributions. --- quote ---
'INVALID' is the appropriate resolution here.
Fun fact, http://bugs.owsupport.com/originalwar/issues/24 is the only issue out of 600+ that can't be accessed, causing a bug in the bug tracker itself. I have the suspicion someone might have removed access or deleted it which is a bad practice.
Regards
https://bugs.winehq.org/show_bug.cgi?id=36523
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Gijs Vermeulen gijsvrm@gmail.com --- Closing.