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

Test failure JIT/Directed/lifetime/lifetime1/lifetime1.sh #54042

Closed
VincentBu opened this issue Jun 11, 2021 · 5 comments · Fixed by #55371
Closed

Test failure JIT/Directed/lifetime/lifetime1/lifetime1.sh #54042

VincentBu opened this issue Jun 11, 2021 · 5 comments · Fixed by #55371
Assignees
Labels
area-crossgen2-coreclr GCStress os-linux Linux OS (any supported distro)
Milestone

Comments

@VincentBu
Copy link
Contributor

Run: runtime-coreclr r2r-extra 20210610.1

Failed test:

R2R Linux arm Checked gcstress0xf @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440

- JIT/Directed/lifetime/lifetime1/lifetime1.sh

Error message:

/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.sh: line 254: -r:/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/IL-CG2/*.dll: No such file or directory
rm: cannot remove '/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll.rsp': No such file or directory

Return code:      1
Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Directed/lifetime/lifetime1/lifetime1.output.txt
Raw output:
BEGIN EXECUTION
in takeLock
/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/IL-CG2/lifetime1.dll
Response file: /root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll.rsp
/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/IL-CG2/lifetime1.dll
-o:/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll
-r:/root/helix/work/correlation/System..dll
-r:/root/helix/work/correlation/Microsoft..dll
-r:/root/helix/work/correlation/mscorlib.dll
--verify-type-and-field-layout
--targetarch:arm
-O
Running CrossGen2:  dotnet /root/helix/work/correlation/crossgen2/crossgen2.dll @/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll.rsp

Emitting R2R PE file: /root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll
in ReleaseLock
/root/helix/work/correlation/corerun lifetime1.dll ''
A
A.F(): iMember = 123

Testcase 1
A.F(): iMember = 123
~A

Testcase 2
A
A.F(): iMember = 123

~A
Testcase 3
Testcase 3 FAILED
Expected: 100
Actual: 255
END EXECUTION - FAILED
Test Harness Exitcode is : 1
To run the test:

set CORE_ROOT=/root/helix/work/correlation
/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.sh
Expected: True
Actual:   False


Stack trace
   at JIT_Directed._lifetime_lifetime1_lifetime1_._lifetime_lifetime1_lifetime1_sh()
@VincentBu VincentBu added arch-arm32 os-linux Linux OS (any supported distro) labels Jun 11, 2021
@dotnet-issue-labeler dotnet-issue-labeler bot added area-crossgen2-coreclr untriaged New issue has not been triaged by the area owner labels Jun 11, 2021
@BruceForstall
Copy link
Member

This is failing for Linux arm32/arm64/x64 in GCStress=F. More cases:

https://dev.azure.com/dnceng/public/_build/results?buildId=1198802&view=ms.vss-test-web.build-test-results-tab&runId=35937412&resultId=109630&paneView=debug

@dotnet/crossgen-contrib

@davidwrighton davidwrighton self-assigned this Jun 25, 2021
@davidwrighton
Copy link
Member

Looking at the test in more depth, this appears to be a test bug, not a product bug. Crossgen2 is used with the optimizer enabled, which will causes what I believe to be completely normal behavior, where the A object is freed naturally.

@VincentBu
Copy link
Contributor Author

Failed again in runtime-coreclr r2r-extra 20210703.1

Failed test:

R2R Linux arm64 Checked gcstress0xf @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20210531091519-97d8652

- JIT/Directed/lifetime/lifetime1/lifetime1.sh

Error message:

/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.sh: line 254: -r:/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/IL-CG2/*.dll: No such file or directory
rm: cannot remove '/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll.rsp': No such file or directory

Return code:      1
Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Directed/lifetime/lifetime1/lifetime1.output.txt
Raw output:
BEGIN EXECUTION
in takeLock
/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/IL-CG2/lifetime1.dll
Response file: /root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll.rsp
/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/IL-CG2/lifetime1.dll
-o:/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll
-r:/root/helix/work/correlation/System..dll
-r:/root/helix/work/correlation/Microsoft..dll
-r:/root/helix/work/correlation/mscorlib.dll
--verify-type-and-field-layout
--targetarch:arm64
-O
Running CrossGen2:  dotnet /root/helix/work/correlation/crossgen2/crossgen2.dll @/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll.rsp

Emitting R2R PE file: /root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.dll
in ReleaseLock
/root/helix/work/correlation/corerun lifetime1.dll ''
A
A.F(): iMember = 123

Testcase 1
A.F(): iMember = 123
~A

Testcase 2
A
A.F(): iMember = 123

~A
Testcase 3
Testcase 3 FAILED
Expected: 100
Actual: 255
END EXECUTION - FAILED
Test Harness Exitcode is : 1
To run the test:

set CORE_ROOT=/root/helix/work/correlation
/root/helix/work/workitem/JIT/Directed/lifetime/lifetime1/lifetime1.sh
Expected: True
Actual:   False


Stack trace
   at JIT_Directed._lifetime_lifetime1_lifetime1_._lifetime_lifetime1_lifetime1_sh() in JIT.Directed.XUnitWrapper.dll:token 0x600023a+0x295

@VincentBu
Copy link
Contributor Author

Historical failures of this test:

Queued OS Arch Pipeline
2021-07-04T08:40:59.386Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-07-04T08:35:07.791Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-07-04T08:33:09.61Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-07-04T05:19:46.017Z ubuntu.1804.armarch.open arm runtime-coreclr r2r-extra Checked-gcstress0xf
2021-07-04T05:09:17.749Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-07-04T04:29:07.025Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
More failures
Queued OS Arch Pipeline
2021-06-28T08:24:20.791Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-28T08:24:20.791Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-28T08:06:08.437Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-28T08:06:08.437Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-28T08:04:08.577Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-06-28T08:04:08.577Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-06-28T05:20:16.317Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-28T05:20:16.317Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-28T05:01:20.128Z ubuntu.1804.armarch.open arm runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-28T05:01:20.128Z ubuntu.1804.armarch.open arm runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-28T04:49:16.882Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-28T04:49:16.882Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-27T08:49:03.947Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-27T08:32:34.587Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-06-27T08:22:53.146Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-27T08:16:13.496Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-06-27T05:19:02.191Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-27T05:14:28.807Z ubuntu.1804.armarch.open arm runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-27T04:54:02.26Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-21T08:50:50.816Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-21T08:33:21.61Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-06-21T08:23:02.26Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-21T04:59:30.91Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-21T04:54:05.842Z ubuntu.1804.armarch.open arm runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-21T04:34:01.545Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-20T08:53:32.202Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-20T08:34:22.577Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-20T08:18:41.568Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-06-20T04:53:19.232Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-20T04:52:30.819Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-14T08:23:36.683Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-14T08:09:27.587Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-06-14T08:09:05.236Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-14T07:41:26.429Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-06-14T04:38:11.905Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-14T04:35:20.295Z ubuntu.1804.armarch.open arm runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-14T04:17:37.939Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-13T08:39:00.402Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-13T08:28:51.425Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-06-13T08:27:51.981Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-13T08:09:30.339Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-06-13T05:19:37.358Z ubuntu.1804.armarch.open arm64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-13T05:05:24.995Z ubuntu.1804.armarch.open arm runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-13T04:38:30.643Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr r2r-extra Checked-gcstress0xf
2021-06-07T07:48:26.88Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-06-06T09:04:05.769Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-06-06T08:46:15.727Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-06-06T08:29:55.078Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-06-06T08:08:35.227Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-05-31T09:09:05.311Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-31T09:08:17.053Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-05-31T08:35:46.54Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-05-30T08:49:11.372Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-30T08:27:42.339Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-05-24T08:51:13.639Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-24T08:47:18.312Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-05-24T08:36:06.268Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-05-23T09:11:32.39Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-23T08:51:31.35Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-05-17T08:55:52.898Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-17T08:53:33.348Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-05-17T08:38:24.282Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-05-17T08:36:24.496Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-05-16T09:03:42.34Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-16T08:46:14.953Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-05-16T08:40:08.514Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-05-16T08:27:45.882Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-05-10T09:10:04.782Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-10T09:06:36.704Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-05-10T08:39:33.872Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1
2021-05-09T09:37:47.144Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitminopts_heapverify1
2021-05-09T08:57:56.582Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_tailcallstress
2021-05-09T08:41:34.604Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress2
2021-05-09T08:37:33.635Z ubuntu.1804.amd64.open.rt x64 runtime-coreclr crossgen2-composite gcstress Checked-gcstress0xc_jitstress1

@mangod9 mangod9 removed the untriaged New issue has not been triaged by the area owner label Jul 6, 2021
@mangod9 mangod9 added this to the 6.0.0 milestone Jul 6, 2021
BruceForstall added a commit to BruceForstall/runtime that referenced this issue Jul 8, 2021
The test assumed that a GC didn't occur between the last use of a variable and a check
of a value set in the finalizer. This presumably worked up until now because the test
is set to build in debuggable code mode. But R2R compilations ignore that and build
with optimization enabled, and GCStress exposes the issue.

Fix the test by explicitly marking a variable as KeepAlive until after the requisite check.

Fixes dotnet#54042
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Jul 8, 2021
BruceForstall added a commit that referenced this issue Jul 9, 2021
The test assumed that a GC didn't occur between the last use of a variable and a check
of a value set in the finalizer. This presumably worked up until now because the test
is set to build in debuggable code mode. But R2R compilations ignore that and build
with optimization enabled, and GCStress exposes the issue.

Fix the test by explicitly marking a variable as KeepAlive until after the requisite check.

Fixes #54042
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jul 9, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-crossgen2-coreclr GCStress os-linux Linux OS (any supported distro)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants