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
https://bugs.winehq.org/show_bug.cgi?id=47624
--- Comment #1 from mnemotron@gmail.com --- $ lspci 00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] CS5536 [Geode companion] Host Bridge (rev 33) 00:01.1 VGA compatible controller: Advanced Micro Devices, Inc. [AMD] Geode LX Video 00:01.2 Entertainment encryption device: Advanced Micro Devices, Inc. [AMD] Geode LX AES Security Block 00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (rev 10) 00:0d.0 Bridge: Integrated Technology Express, Inc. IT8888F/G PCI to ISA Bridge with SMB [Golden Gate] (rev 03) 00:0f.0 ISA bridge: Advanced Micro Devices, Inc. [AMD] CS5536 [Geode companion] ISA (rev 03) 00:0f.2 IDE interface: Advanced Micro Devices, Inc. [AMD] CS5536 [Geode companion] IDE (rev 01) 00:0f.4 USB controller: Advanced Micro Devices, Inc. [AMD] CS5536 [Geode companion] OHC (rev 02) 00:0f.5 USB controller: Advanced Micro Devices, Inc. [AMD] CS5536 [Geode companion] EHC (rev 02) 00:10.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (rev 10) 00:11.0 RAID bus controller: VIA Technologies, Inc. VT6421 IDE/SATA Controller (rev 50)
https://bugs.winehq.org/show_bug.cgi?id=47624
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- I would suggest to perform a regression test on Linux 3.11 system where 1.7.18 works. First build latest wine on it and see if that works. If it doesn't, you can bisect wine itself with instructions from https://wiki.winehq.org/Regression_Testing.