Bug 43727 - KeyNotFoundException raised deep inside Socket.Close
Summary: KeyNotFoundException raised deep inside Socket.Close
Status: NEW
Alias: None
Product: Class Libraries
Classification: Mono
Component: System (show other bugs)
Version: master
Hardware: Other Linux
: --- normal
Target Milestone: Untriaged
Assignee: marcos.henrich
URL:
Depends on: 43172
Blocks:
  Show dependency tree
 
Reported: 2016-08-24 22:21 UTC by Andi McClure
Modified: 2016-08-25 07:47 UTC (History)
4 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

Description Andi McClure 2016-08-24 22:21:18 UTC
For at least the last week, and apparently on *ARM64 only*, our automated test MonoTests.Remoting.RemotingServicesTest.MarshalThrowException will periodically fail with a managed exception deep inside the guts of Socket.Close. The exception appears to be unrelated to the MarshalThrowException test as such and occurs because the test calls ChannelServices.UnregisterChannel() during cleanup.

Examples (with full stacktraces):

https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-arm64/641/testReport/MonoTests.Remoting/RemotingServicesTest/MarshalThrowException/
https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-arm64/636/testReport/MonoTests.Remoting/RemotingServicesTest/MarshalThrowException/
https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-arm64/626/testReport/MonoTests.Remoting/RemotingServicesTest/MarshalThrowException/

Expected behavior: If something goes wrong during Socket.Close(), a useful error message should occur and not a KeyNotFoundException.
Comment 1 Alexander Köplinger [MSFT] 2016-08-24 23:02:28 UTC
This is related to #43172 (or maybe a dupe). The error will only occur when MONO_TESTS_IN_PROGRESS is set like we do in CI, the KeyNotFoundException comes from this array access: https://github.com/mono/mono/blob/dfbd2bcf829d1bc62451aa824dc6a1aba68370bb/mcs/class/System/System.Net.Sockets/SafeSocketHandle.cs#L63

Note You need to log in before you can comment on or make changes to this bug.