Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
Description
hwahrmann has the problem that the server always crashes when the UPnP SSDP controller tries starting receiving from an endpoint which is.. disconnected? Otherwise not available? He says it is always related to IPv6 addresses.
h4. Steps to Reproduce
2009-11-16 10:21:21.066157 [Info.][Main Thread]: UPnP server: HTTP listener started at port 49247
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
2009-11-16 10:21:21.097356 [Crit.][Main Thread]: Error executing application
Exception: System.Net.Sockets.SocketException: The system detected an invalid pointer address in attempting to use a pointer argument in a call
at System.Net.Sockets.Socket.DoBeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult)
at System.Net.Sockets.Socket.BeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint& remoteEP, AsyncCallback callback, Object state)
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartReceive(UDPAsyncReceiveState state) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 353
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartSSDPEndpoint(EndpointConfiguration config) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 299
at UPnP.Infrastructure.Dv.UPnPServer.InitializeDiscoveryEndpoints() in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 415
at UPnP.Infrastructure.Dv.UPnPServer.Bind(Int32 advertisementInterval) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 192
at MediaPortal.ClientCommunication.UPnPMediaServer.Start() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\ClientCommunication\UPnPMediaServer.cs:line 61
at MediaPortal.Services.BackendServer.BackendServer.Startup() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\Services\BackendServer\BackendServer.cs:line 156
at MediaPortal.BackendExtension.StartupBackendServices() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\BackendExtension.cs:line 57
at MediaPortal.ApplicationLauncher.Main(String[] args) in D:\Source\Mp\MP-II\Source\Main\MediaPortal.Server\ApplicationLauncher.cs:line 118
Message: The system detected an invalid pointer address in attempting to use a pointer argument in a call
Site : Void DoBeginReceiveFrom(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags, System.Net.EndPoint, System.Net.SocketAddress, System.Net.Sockets.OverlappedAsyncResult)
Source : System
Stack Trace:
at System.Net.Sockets.Socket.DoBeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult)
at System.Net.Sockets.Socket.BeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint& remoteEP, AsyncCallback callback, Object state)
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartReceive(UDPAsyncReceiveState state) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 353
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartSSDPEndpoint(EndpointConfiguration config) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 299
at UPnP.Infrastructure.Dv.UPnPServer.InitializeDiscoveryEndpoints() in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 415
at UPnP.Infrastructure.Dv.UPnPServer.Bind(Int32 advertisementInterval) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 192
at MediaPortal.ClientCommunication.UPnPMediaServer.Start() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\ClientCommunication\UPnPMediaServer.cs:line 61
at MediaPortal.Services.BackendServer.BackendServer.Startup() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\Services\BackendServer\BackendServer.cs:line 156
at MediaPortal.BackendExtension.StartupBackendServices() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\BackendExtension.cs:line 57
at MediaPortal.ApplicationLauncher.Main(String[] args) in D:\Source\Mp\MP-II\Source\Main\MediaPortal.Server\ApplicationLauncher.cs:line 118
h4. Additional Information
At startup, we should check which ones of the IP addresses don't work in for Bind or Receive, and remove them from the collection of available endpoints.
h4. Steps to Reproduce
2009-11-16 10:21:21.066157 [Info.][Main Thread]: UPnP server: HTTP listener started at port 49247
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
2009-11-16 10:21:21.097356 [Crit.][Main Thread]: Error executing application
Exception: System.Net.Sockets.SocketException: The system detected an invalid pointer address in attempting to use a pointer argument in a call
at System.Net.Sockets.Socket.DoBeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult)
at System.Net.Sockets.Socket.BeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint& remoteEP, AsyncCallback callback, Object state)
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartReceive(UDPAsyncReceiveState state) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 353
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartSSDPEndpoint(EndpointConfiguration config) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 299
at UPnP.Infrastructure.Dv.UPnPServer.InitializeDiscoveryEndpoints() in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 415
at UPnP.Infrastructure.Dv.UPnPServer.Bind(Int32 advertisementInterval) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 192
at MediaPortal.ClientCommunication.UPnPMediaServer.Start() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\ClientCommunication\UPnPMediaServer.cs:line 61
at MediaPortal.Services.BackendServer.BackendServer.Startup() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\Services\BackendServer\BackendServer.cs:line 156
at MediaPortal.BackendExtension.StartupBackendServices() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\BackendExtension.cs:line 57
at MediaPortal.ApplicationLauncher.Main(String[] args) in D:\Source\Mp\MP-II\Source\Main\MediaPortal.Server\ApplicationLauncher.cs:line 118
Message: The system detected an invalid pointer address in attempting to use a pointer argument in a call
Site : Void DoBeginReceiveFrom(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags, System.Net.EndPoint, System.Net.SocketAddress, System.Net.Sockets.OverlappedAsyncResult)
Source : System
Stack Trace:
at System.Net.Sockets.Socket.DoBeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult)
at System.Net.Sockets.Socket.BeginReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint& remoteEP, AsyncCallback callback, Object state)
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartReceive(UDPAsyncReceiveState state) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 353
at UPnP.Infrastructure.Dv.SSDP.SSDPServerController.StartSSDPEndpoint(EndpointConfiguration config) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\SSDP\SSDPServerController.cs:line 299
at UPnP.Infrastructure.Dv.UPnPServer.InitializeDiscoveryEndpoints() in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 415
at UPnP.Infrastructure.Dv.UPnPServer.Bind(Int32 advertisementInterval) in D:\Source\Mp\MP-II\Source\System\UPnP\Infrastructure\Dv\UPnPServer.cs:line 192
at MediaPortal.ClientCommunication.UPnPMediaServer.Start() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\ClientCommunication\UPnPMediaServer.cs:line 61
at MediaPortal.Services.BackendServer.BackendServer.Startup() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\Services\BackendServer\BackendServer.cs:line 156
at MediaPortal.BackendExtension.StartupBackendServices() in D:\Source\Mp\MP-II\Source\System\MediaPortal.Backend\BackendExtension.cs:line 57
at MediaPortal.ApplicationLauncher.Main(String[] args) in D:\Source\Mp\MP-II\Source\Main\MediaPortal.Server\ApplicationLauncher.cs:line 118
h4. Additional Information
At startup, we should check which ones of the IP addresses don't work in for Bind or Receive, and remove them from the collection of available endpoints.