https://bugs.winehq.org/show_bug.cgi?id=38062
Bug ID: 38062 Summary: .NET 2.0/3.x/4.x applications and games using System.Net.NetworkInformation NetworkAddressChangedEventHandler crash on startup Product: Wine Version: 1.7.36 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: winsock Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
split off from bug 33862
Examples: Sonos DesktopController 5.11, Aeria Ignite (Aeria Games), PlayOn ...
Relevant part of trace log from one app:
--- snip --- ... 002b:Call ws2_32.WSASocketW(00000002,00000002,00000000,00000000,00000000,00000001) ret=05a1ed6b 002b:trace:winsock:WSASocketW af=2 type=2 protocol=0 protocol_info=(nil) group=0 flags=0x1 002b: create_socket( access=c0100000, attributes=00000002, family=2, type=2, protocol=0, flags=00000001 ) socket(2,2,0)=167 sock_reselect(0x1a16a80): new mask 0 002b: create_socket() = 0 { handle=02c0 } 002b:trace:winsock:WSASocketW created 02c0 002b:Ret ws2_32.WSASocketW() retval=000002c0 ret=05a1ed6b ... 002b:Call ws2_32.ioctlsocket(000002c0,8004667e,03b3c4e8) ret=05a061e7 002b:trace:winsock:WSAIoctl 02c0, _IOW('f', 126, 4), 0x3b3c4e8, 4, 0x3b3c4e8, 4, 0x3b3c40c, (nil), (nil) 002b:trace:winsock:WSAIoctl -> FIONBIO (ffffffff) 002b: get_socket_event( handle=02c0, service=0, c_event=0000 ) 002b: get_socket_event() = 0 { mask=00000000, pmask=00000000, state=00000003, errors={} } 002b: enable_socket_event( handle=02c0, mask=00000000, sstate=20000000, cstate=00000000 ) sock_reselect(0x1a16a80): new mask 0 002b: enable_socket_event() = 0 002b:Ret ws2_32.ioctlsocket() retval=00000000 ret=05a061e7 ... 002b:Call ws2_32.WSAIoctl(000002c0,28000017,00000000,00000000,00000000,00000000,03b3c4e4,00000000,00000000) ret=05a063d1 002b:trace:winsock:WSAIoctl 02c0, _WSAIO(IOC_WS2, 23), (nil), 0, (nil), 0, 0x3b3c4e4, (nil), (nil) 002b:Call ntdll.RtlAllocateHeap(00110000,00000000,0000003c) ret=7dbc0b92 002b:Ret ntdll.RtlAllocateHeap() retval=001933b0 ret=7dbc0b92 002b:Call ntdll.NtDeviceIoControlFile(000002c0,00000000,7dbbbffa,001933b0,001933c0,28000017,00000000,00000000,00000000,00000000) ret=7dbc0c23 002b: ioctl( code=28000017, async={handle=02c0,event=0000,callback=7bc47747,iosb=001933c0,arg=001933f8,cvalue=00000000}, blocking=0, in_data={} ) 002b: ioctl() = PENDING { wait=0000, options=00000000, out_data={} } 002b:Ret ntdll.NtDeviceIoControlFile() retval=00000103 ret=7dbc0c23 002b:trace:winsock:WSAIoctl -> _WSAIO(IOC_WS2, 23) request 002b:Ret ws2_32.WSAIoctl() retval=ffffffff ret=05a063d1 002b:Call KERNEL32.GetLastError() ret=79162510 002b:Ret KERNEL32.GetLastError() retval=000003e5 ret=79162510 ... --- snip ---
Managed backtrace:
--- snip --- ... Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Sonos.Controller.Desktop.Utilities.BugsenseWrappedException: Rethrown exception. See innerexception for details. ---> System.Net.NetworkInformation.NetworkInformationException: Overlapped I/O pending at System.Net.NetworkInformation.NetworkChange.AddressChangeListener.StartHelper(NetworkAddressChangedEventHandler caller, Boolean captureContext, StartIPOptions startIPOptions) at System.Net.NetworkInformation.NetworkChange.add_NetworkAddressChanged(NetworkAddressChangedEventHandler value) at Sonos.Controller.Desktop.Utilities.NetworkMonitor.StartMonitoring() at Sonos.Controller.Desktop.SCLib.Listener.Startup() at Sonos.Controller.Desktop.App.<OnStartup>b__5() at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) ... --- snip ---
Yes, they also need FD_ADDRESS_LIST_CHANGE support in the end to really make use of this feature which could be split into another bug.
I found this small .NET example app with source code which exhibits the same crash: http://www.codeproject.com/Articles/64975/Detect-Internet-Network-Availabili...
$ sha1sum NetworkStatus_Demo.zip 6f64a8b7d781d2c84359de7bcad95b9ffc60dc30 NetworkStatus_Demo.zip
$ du -sh NetworkStatus_Demo.zip 8.0K NetworkStatus_Demo.zip
$ wine --version wine-1.7.36-28-ga679cae
Regards