https://bugs.winehq.org/show_bug.cgi?id=47624
Bug ID: 47624 Summary: Application crashes in socket communication (Regression) Product: Wine Version: 4.13 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: mnemotron@gmail.com Distribution: ---
Created attachment 65058 --> https://bugs.winehq.org/attachment.cgi?id=65058 Wine debug log +relay,+ntdll,+winsock
For several years we've been using Wine 1.7.18 on Lubuntu 13 (Linux 3.11.10) with a proprietary 32-bit Windows application programmed in Delphi. It is installed on small embedded PCs with AMD Geode LX processors at 500 MHz and 1 GB RAM and we have about 100 of these machines. After upgrading a test machine to newer Linux distributions and Wine 4.x the application crashes in its network functions. When booting the same hard drive via USB on a modern PC everything works, so the bug might be driver related. (But it works on the older kernel!)
The basic error is this (Wine 4.13 devel):
340728.035:0008:0009:Ret KERNEL32.GetProcAddress() retval=7db174ac ret=0041615c 340728.035:0008:0009:Call ws2_32.shutdown(000000dc,00000001) ret=0067ba05 340728.035:0008:0009:Call ntdll.wine_server_handle_to_fd(000000dc,00000000,0033fac8,0033fac4) ret=7db246cb 340728.035:0008:0009:Ret ntdll.wine_server_handle_to_fd() retval=00000000 ret=7db246cb 340728.035:0008:0009:trace:winsock:WS_shutdown socket 00dc, how 0x1, options 0x0 340728.035:0008:0009:trace:winsock:WS2_register_async_shutdown socket 00dc type 2 340728.036:0008:0009:Call ntdll.RtlAllocateHeap(00110000,00000000,00000018) ret=7db1a77a 340728.036:0008:0009:Ret ntdll.RtlAllocateHeap() retval=001be6c0 ret=7db1a77a 340728.036:0008:0009:err:seh:setup_exception_record nested exception on signal stack in thread 0009 eip 7bca93b9 esp 7ffdbae0 stack 0x242000-0x340000
Winedbg does not work. When attaching to the Windows process, the application crashes and Winedbg says "Can't attach to process ... Error 5". Running the application in Winedbg directly generates the above error message plus "Process of pid=xxxx has terminated". There is no backtrace, the thread dies completely.
I have tried various Linux distributions using 4.x kernels (Bodhi Linux 5, Linux Mint Debian Edition 3, Debian 9.9, Debian 10, Ubuntu 16.04) and also tried Wine 2.0.2, which is the oldest available binary package, and everytime the above error occurs. Building a custom Linux kernel for the machine also didn't change anything. Trying to build Wine 1.7.18 on Debian 10 resulted in several compile time errors that I am not able to fix, so I am stuck with available binary packages.
Debugging and changing the Windows application itself managed to move the crash from the first network connect to when the application is shutdown. Only widely available network component libraries for Delphi were used (Indy and ICS), there is no self-developed net code.
So, the same Windows executable works with Wine 1.7.13 on Linux 3.11, but it crashes in Wine 4.x (I tried several packages from Ubuntu and Debian from winehq) on modern 4.x Linux kernels on this machine.
Any ideas? I'm ready to provide more needed info.
Thomas