Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix timeouts in coreroot_determinism test in GC stress mode #56770

Merged
merged 1 commit into from
Aug 3, 2021

Conversation

trylek
Copy link
Member

@trylek trylek commented Aug 3, 2021

I have found two deficiencies in our CoreCLR test infrastructure
related to running Crossgen2 in GC stress mode; this change should
fix both:

  1. In the Unix (bash) variant of Execute.Crossgen.targets we weren't
    properly unsetting the GC stress-related COMPlus environment
    variables.

  2. In the particular case of the coreroot_determinism test this
    needed fixing in r2rtest that is internally used by the test
    implementation (on both Windows and Unix).

Thanks

Tomas

Fixes: #50704

/cc @dotnet/crossgen-contrib, @dotnet/runtime-infrastructure

I have found two deficiencies in our CoreCLR test infrastructure
related to running Crossgen2 in GC stress mode; this change should
fix both:

1) In the Unix (bash) variant of Execute.Crossgen.targets we weren't
properly unsetting the GC stress-related COMPlus environment
variables.

2) In the particular case of the coreroot_determinism test this
needed fixing in r2rtest that is internally used by the test
implementation (on both Windows and Unix).

Thanks

Tomas
@trylek trylek added this to the 6.0.0 milestone Aug 3, 2021
@trylek trylek requested a review from janvorli August 3, 2021 09:00
@trylek trylek added this to In progress + Investigations in Core-Runtime .net 9 Aug 3, 2021
Copy link
Member

@janvorli janvorli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@trylek
Copy link
Member Author

trylek commented Aug 3, 2021

The two failures in runtime-coreclr jitstress seem unrelated to my change - one is the traditional XUnit error regarding collection modified during enumeration and the other is "no space left on device" on OSX x64. I have retried the two failing legs to double-check.

@trylek trylek merged commit 90edb16 into dotnet:main Aug 3, 2021
Core-Runtime .net 9 automation moved this from In progress + Investigations to Complete Aug 3, 2021
thaystg added a commit to thaystg/runtime that referenced this pull request Aug 3, 2021
# By Camillo Toselli (1) and others
# Via GitHub
* origin/main:
  add RID for Debian 11 (dotnet#56789)
  [wasm] [debugger] Skip thread static field (dotnet#56749)
  Fix timeouts in coreroot_determinism test in GC stress mode (dotnet#56770)
  Use File.OpenHandle in Socket.SendFile directly (dotnet#56777)
  accept empty realm for digest auth (dotnet#56369) (dotnet#56455)

# Conflicts:
#	src/mono/wasm/debugger/DebuggerTestSuite/BreakpointTests.cs
#	src/mono/wasm/debugger/DebuggerTestSuite/GetPropertiesTests.cs
thaystg added a commit to thaystg/runtime that referenced this pull request Aug 4, 2021
…ger_proxy_attribute

* origin/main: (340 commits)
  add RID for Debian 11 (dotnet#56789)
  [wasm] [debugger] Skip thread static field (dotnet#56749)
  Fix timeouts in coreroot_determinism test in GC stress mode (dotnet#56770)
  Use File.OpenHandle in Socket.SendFile directly (dotnet#56777)
  accept empty realm for digest auth (dotnet#56369) (dotnet#56455)
  [wasm][debugger] Create test Inherited Properties (dotnet#56754)
  Mark new test as incompatible with GC Mark4781_1GcStressIncompatible (dotnet#56739)
  Ensure MetadataEnumResult is sufficiently updated by MetaDataImport::Enum (dotnet#56756)
  [mono] Remove gdb xdebug and binary writer support, it hasn't worked in a while. (dotnet#56759)
  Update windows-requirements.md (dotnet#56476)
  Update doc and generic parameter name for JsonValue.GetValue (dotnet#56639)
  [wasm][debugger] Inspect static class (dotnet#56740)
  Fix stack overflow handling issue in GC stress (dotnet#56733)
  Use ReflectionOnly as serialization mode in case dynamic code runtime feature is not supported (dotnet#56604)
  Move Windows Compat pack to NuGet pack task (dotnet#56686)
  Fix build error when building some packages (dotnet#56767)
  Simplify JIT shutdown logic in crossgen2 (dotnet#56687)
  Fix race in crossdac publishing with PGO (dotnet#56762)
  Add DictionaryKeyPolicy support for EnumConverter [dotnet#47765] (dotnet#54429)
  Use ComWrappers in some Marshal unit-tests and update platform metadata  (dotnet#56595)
  ...
export COMPlus_GCStress=
export COMPlus_HeapVerify=
export COMPlus_ReadyToRun=
unset COMPlus_GCStress
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am wondering how this could make any difference. Exporting COMPlus_GCStress='' should still disable GC stress, shouldn't it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, according to JanV setting the environment variable in bash to an empty string doesn't have the expected effect of removing the variable. It probably matters not as you've already refactored the entire logic for manipulating these variables.

@ghost ghost locked as resolved and limited conversation to collaborators Sep 8, 2021
@trylek trylek deleted the LinuxGCStressCrossgen2Fix branch January 10, 2022 19:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[GCStress] coreroot_determinism test
4 participants