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 GC\\API\\GC\\GetTotalAllocatedBytes\\GetTotalAllocatedBytes.cmd #93641

Closed
v-wenyuxu opened this issue Oct 18, 2023 · 3 comments · Fixed by #93835
Closed

Test failure GC\\API\\GC\\GetTotalAllocatedBytes\\GetTotalAllocatedBytes.cmd #93641

v-wenyuxu opened this issue Oct 18, 2023 · 3 comments · Fixed by #93835
Labels
arch-arm64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci-optional Blocking optional rolling runs JitStress CLR JIT issues involving JIT internal stress modes os-windows
Milestone

Comments

@v-wenyuxu
Copy link

Failed in: runtime-coreclr jitstress 20231016.1

Failed tests:

coreclr windows arm64 Checked jitstress1_tiered @ Windows.11.Arm64.Open
    - GC\\API\\GC\\GetTotalAllocatedBytes\\GetTotalAllocatedBytes.cmd

Error message:

 
Assert failure(PID 24536 [0x00005fd8], Thread: 24544 [0x5fe0]): !CREATE_CHECK_STRING(pMT && pMT->Validate())

CORECLR! Object::ValidateInner + 0x188 (0x00007fff`372b99e0)
CORECLR! Object::Validate + 0xA4 (0x00007fff`372b979c)
CORECLR! WKS::GCHeap::IsPromoted + 0x18C (0x00007fff`3753505c)
CORECLR! CheckPromoted + 0x164 (0x00007fff`374e0484)
CORECLR! ScanConsecutiveHandlesWithoutUserData + 0x7C (0x00007fff`374df8bc)
CORECLR! BlockScanBlocksEphemeral + 0xC8 (0x00007fff`374df108)
CORECLR! TableScanHandles + 0x1A8 (0x00007fff`374dfac8)
CORECLR! HndScanHandlesForGC + 0x1A8 (0x00007fff`374dd220)
CORECLR! Ref_CheckAlive + 0x138 (0x00007fff`374e1af0)
CORECLR! WKS::gc_heap::mark_phase + 0x1040 (0x00007fff`375585f0)
    File: D:\a\_work\1\s\src\coreclr\vm\object.cpp Line: 522
    Image: C:\h\w\A7040941\p\corerun.exe


Return code:      1
Raw output file:      C:\h\w\A7040941\w\9DE30899\uploads\Reports\GC.API\GC\GetTotalAllocatedBytes\GetTotalAllocatedBytes.output.txt
Raw output:
BEGIN EXECUTION
 "C:\h\w\A7040941\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  GetTotalAllocatedBytes.dll 
Expected: 100
Actual: -1073740286
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:\cores since 10/17/2023 5:50:59 AM
Processing C:\cores\corerun.exe.24536.dmp
Unable to find cdb.exe at C:\Program Files (x86)\Windows Kits\10\Debuggers\arm64\cdb.exe
Finished looking for *.dmp. No new files created.
Test Harness Exitcode is : 1
To run the test:
> set CORE_ROOT=C:\h\w\A7040941\p
> C:\h\w\A7040941\w\9DE30899\e\GC\API\GC\GetTotalAllocatedBytes\GetTotalAllocatedBytes.cmd
Expected: True
Actual:   False

Stack trace:

   at GC_API._GC_GetTotalAllocatedBytes_GetTotalAllocatedBytes_._GC_GetTotalAllocatedBytes_GetTotalAllocatedBytes_cmd()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
@v-wenyuxu v-wenyuxu added arch-arm64 os-windows JitStress CLR JIT issues involving JIT internal stress modes labels Oct 18, 2023
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Oct 18, 2023
@ghost
Copy link

ghost commented Oct 18, 2023

Tagging subscribers to this area: @dotnet/gc
See info in area-owners.md if you want to be subscribed.

Issue Details

Failed in: runtime-coreclr jitstress 20231016.1

Failed tests:

coreclr windows arm64 Checked jitstress1_tiered @ Windows.11.Arm64.Open
    - GC\\API\\GC\\GetTotalAllocatedBytes\\GetTotalAllocatedBytes.cmd

Error message:

 
Assert failure(PID 24536 [0x00005fd8], Thread: 24544 [0x5fe0]): !CREATE_CHECK_STRING(pMT && pMT->Validate())

CORECLR! Object::ValidateInner + 0x188 (0x00007fff`372b99e0)
CORECLR! Object::Validate + 0xA4 (0x00007fff`372b979c)
CORECLR! WKS::GCHeap::IsPromoted + 0x18C (0x00007fff`3753505c)
CORECLR! CheckPromoted + 0x164 (0x00007fff`374e0484)
CORECLR! ScanConsecutiveHandlesWithoutUserData + 0x7C (0x00007fff`374df8bc)
CORECLR! BlockScanBlocksEphemeral + 0xC8 (0x00007fff`374df108)
CORECLR! TableScanHandles + 0x1A8 (0x00007fff`374dfac8)
CORECLR! HndScanHandlesForGC + 0x1A8 (0x00007fff`374dd220)
CORECLR! Ref_CheckAlive + 0x138 (0x00007fff`374e1af0)
CORECLR! WKS::gc_heap::mark_phase + 0x1040 (0x00007fff`375585f0)
    File: D:\a\_work\1\s\src\coreclr\vm\object.cpp Line: 522
    Image: C:\h\w\A7040941\p\corerun.exe


Return code:      1
Raw output file:      C:\h\w\A7040941\w\9DE30899\uploads\Reports\GC.API\GC\GetTotalAllocatedBytes\GetTotalAllocatedBytes.output.txt
Raw output:
BEGIN EXECUTION
 "C:\h\w\A7040941\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  GetTotalAllocatedBytes.dll 
Expected: 100
Actual: -1073740286
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:\cores since 10/17/2023 5:50:59 AM
Processing C:\cores\corerun.exe.24536.dmp
Unable to find cdb.exe at C:\Program Files (x86)\Windows Kits\10\Debuggers\arm64\cdb.exe
Finished looking for *.dmp. No new files created.
Test Harness Exitcode is : 1
To run the test:
> set CORE_ROOT=C:\h\w\A7040941\p
> C:\h\w\A7040941\w\9DE30899\e\GC\API\GC\GetTotalAllocatedBytes\GetTotalAllocatedBytes.cmd
Expected: True
Actual:   False

Stack trace:

   at GC_API._GC_GetTotalAllocatedBytes_GetTotalAllocatedBytes_._GC_GetTotalAllocatedBytes_GetTotalAllocatedBytes_cmd()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Author: v-wenyuxu
Assignees: -
Labels:

arch-arm64, os-windows, JitStress, area-GC-coreclr

Milestone: -

@jakobbotsch jakobbotsch added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed area-GC-coreclr labels Oct 18, 2023
@ghost
Copy link

ghost commented Oct 18, 2023

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Failed in: runtime-coreclr jitstress 20231016.1

Failed tests:

coreclr windows arm64 Checked jitstress1_tiered @ Windows.11.Arm64.Open
    - GC\\API\\GC\\GetTotalAllocatedBytes\\GetTotalAllocatedBytes.cmd

Error message:

 
Assert failure(PID 24536 [0x00005fd8], Thread: 24544 [0x5fe0]): !CREATE_CHECK_STRING(pMT && pMT->Validate())

CORECLR! Object::ValidateInner + 0x188 (0x00007fff`372b99e0)
CORECLR! Object::Validate + 0xA4 (0x00007fff`372b979c)
CORECLR! WKS::GCHeap::IsPromoted + 0x18C (0x00007fff`3753505c)
CORECLR! CheckPromoted + 0x164 (0x00007fff`374e0484)
CORECLR! ScanConsecutiveHandlesWithoutUserData + 0x7C (0x00007fff`374df8bc)
CORECLR! BlockScanBlocksEphemeral + 0xC8 (0x00007fff`374df108)
CORECLR! TableScanHandles + 0x1A8 (0x00007fff`374dfac8)
CORECLR! HndScanHandlesForGC + 0x1A8 (0x00007fff`374dd220)
CORECLR! Ref_CheckAlive + 0x138 (0x00007fff`374e1af0)
CORECLR! WKS::gc_heap::mark_phase + 0x1040 (0x00007fff`375585f0)
    File: D:\a\_work\1\s\src\coreclr\vm\object.cpp Line: 522
    Image: C:\h\w\A7040941\p\corerun.exe


Return code:      1
Raw output file:      C:\h\w\A7040941\w\9DE30899\uploads\Reports\GC.API\GC\GetTotalAllocatedBytes\GetTotalAllocatedBytes.output.txt
Raw output:
BEGIN EXECUTION
 "C:\h\w\A7040941\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  GetTotalAllocatedBytes.dll 
Expected: 100
Actual: -1073740286
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:\cores since 10/17/2023 5:50:59 AM
Processing C:\cores\corerun.exe.24536.dmp
Unable to find cdb.exe at C:\Program Files (x86)\Windows Kits\10\Debuggers\arm64\cdb.exe
Finished looking for *.dmp. No new files created.
Test Harness Exitcode is : 1
To run the test:
> set CORE_ROOT=C:\h\w\A7040941\p
> C:\h\w\A7040941\w\9DE30899\e\GC\API\GC\GetTotalAllocatedBytes\GetTotalAllocatedBytes.cmd
Expected: True
Actual:   False

Stack trace:

   at GC_API._GC_GetTotalAllocatedBytes_GetTotalAllocatedBytes_._GC_GetTotalAllocatedBytes_GetTotalAllocatedBytes_cmd()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Author: v-wenyuxu
Assignees: -
Labels:

arch-arm64, os-windows, JitStress, area-CodeGen-coreclr, untriaged

Milestone: -

@jakobbotsch jakobbotsch added blocking-clean-ci-optional Blocking optional rolling runs and removed untriaged New issue has not been triaged by the area owner labels Oct 18, 2023
@jakobbotsch jakobbotsch added this to the 9.0.0 milestone Oct 18, 2023
@jakobbotsch
Copy link
Member

This fails readily with JitStress=1. The method that needs to be under stress seems to be System.Threading.Thread:.ctor(System.Threading.ThreadStart):this. I can see that it has GS cookies in it, so this might also be related to #93639 and #93640, cc @EgorBo

The disassembly starts out pretty oddly, it seems like we are not reporting x19 and x20 as having GC pointers in them:

; Assembly listing for method System.Threading.Thread:.ctor(System.Threading.ThreadStart):this (Tier1)
; Emitting BLENDED_CODE for generic ARM64 - Windows
; Tier1 code
; optimized code
; fp based frame
; fully interruptible
; No PGO data
; 1 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
;  V00 this         [V00,T00] (  5,  5.00)     ref  ->  x19         this class-hnd single-def <System.Threading.Thread>
;  V01 arg1         [V01,T01] (  4,  4.00)     ref  ->  x20         class-hnd single-def <System.Threading.ThreadStart>
;  V02 tmp0         [V02,T03] (  1,  1   )     int  ->  [fp+0x14]  do-not-enreg[V] "GSCookie dummy"
;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;  V04 tmp2         [V04,T02] (  3,  6.00)     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Thread+StartHelper>
;  V05 tmp3         [V05,T04] (  4,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
;  V06 tmp4         [V06,T05] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
;  V07 tmp5         [V07,T06] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
;  V08 GsCookie     [V08    ] (  1,  1   )    long  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
; Lcl frame size = 16

G_M38489_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
            stp     fp, lr, [sp, #-0x30]!
            stp     x19, x20, [sp, #0x20]
            mov     fp, sp
            movz    x2, #0x5678
            movk    x2, #0x1234 LSL #16
            movk    x2, #0xDEF0 LSL #32
            movk    x2, #0x9ABC LSL #48
            str     x2, [fp, #0x18]	// [V08 GsCookie]
            mov     x19, x0
                             ; gcrRegs +[x19]
            mov     x20, x1
                             ; gcrRegs +[x20]
						;; size=40 bbWeight=1.00 PerfScore 6.50
G_M38489_IG02:        ; bbWeight=1.00, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
                             ; gcrRegs -[x19-x20] +[x0-x1]   ; why -[x19-x20] ?
            cbz     x20, G_M38489_IG05
            movz    x0, #0xCCA0
                             ; gcrRegs -[x0]
            movk    x0, #0x4CBD LSL #16
            movk    x0, #0x7FFF LSL #32
            bl      CORINFO_HELP_NEWSFAST
                             ; gcrRegs -[x1] +[x0 x19-x20]
                             ; gcr arg pop 0
            add     x14, x0, #8
                             ; byrRegs +[x14]
            mov     x15, x20
                             ; gcrRegs +[x15]
            bl      CORINFO_HELP_ASSIGN_REF
                             ; gcrRegs -[x15 x20]
                             ; byrRegs -[x14]
            ldrsb   wzr, [x19]
            add     x14, x19, #32
                             ; byrRegs +[x14]
            mov     x15, x0
                             ; gcrRegs +[x15]
            bl      CORINFO_HELP_ASSIGN_REF
                             ; gcrRegs -[x0 x15]
                             ; byrRegs -[x14]
            mov     x0, x19
                             ; gcrRegs +[x0]
            movz    xip0, #0x5678
            movk    xip0, #0x1234 LSL #16
            movk    xip0, #0xDEF0 LSL #32
            movk    xip0, #0x9ABC LSL #48
            ldr     xip1, [fp, #0x18]	// [V08 GsCookie]
            cmp     xip0, xip1
            bne     G_M38489_IG04
						;; size=80 bbWeight=1.00 PerfScore 16.50
G_M38489_IG03:        ; bbWeight=1.00, epilog, nogc, extend
            ldp     x19, x20, [sp, #0x20]
            ldp     fp, lr, [sp], #0x30
            b       System.Threading.Thread:Initialize():this
                             ; gcr arg pop 0
						;; size=12 bbWeight=1.00 PerfScore 3.00
G_M38489_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
                             ; gcrRegs -[x0 x19]
            bl      CORINFO_HELP_FAIL_FAST
                             ; gcr arg pop 0
						;; size=4 bbWeight=0 PerfScore 0.00
G_M38489_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
            movz    x0, #0xF438
            movk    x0, #0x4C59 LSL #16
            movk    x0, #0x7FFF LSL #32
            bl      CORINFO_HELP_NEWSFAST
                             ; gcrRegs +[x0]
                             ; gcr arg pop 0
            mov     x19, x0
                             ; gcrRegs +[x19]
            mov     w0, #0xBE84
                             ; gcrRegs -[x0]
            movz    x1, #0x4000
            movk    x1, #0x4C11 LSL #16
            movk    x1, #0x7FFF LSL #32
            bl      CORINFO_HELP_STRCNS
                             ; gcrRegs +[x0]
                             ; gcr arg pop 0
            movz    x1, #0xE4F0      // code for System.SR:GetResourceString(System.String):System.String
            movk    x1, #0x4C3F LSL #16
            movk    x1, #0x7FFF LSL #32
            ldr     x1, [x1]
            blr     x1
                             ; gcr arg pop 0
            mov     x20, x0
                             ; gcrRegs +[x20]
            movz    w0, #0x69D5
                             ; gcrRegs -[x0]
            movk    w0, #1 LSL #16
            movz    x1, #0x4000
            movk    x1, #0x4C11 LSL #16
            movk    x1, #0x7FFF LSL #32
            bl      CORINFO_HELP_STRCNS
                             ; gcrRegs +[x0]
                             ; gcr arg pop 0
            mov     x2, x0
                             ; gcrRegs +[x2]
            mov     x1, x20
                             ; gcrRegs +[x1]
            mov     x0, x19
            movz    x3, #0xD2C0      // code for System.ArgumentException:.ctor(System.String,System.String):this
            movk    x3, #0x4C50 LSL #16
            movk    x3, #0x7FFF LSL #32
            ldr     x3, [x3]
            blr     x3
                             ; gcrRegs -[x0-x2 x20]
                             ; gcr arg pop 0
            mov     x0, x19
                             ; gcrRegs +[x0]
            movz    w1, #0x4003
            movk    w1, #0x8000 LSL #16
            movz    x2, #0x6BC8      // code for System.Exception:set_HResult(int):this
            movk    x2, #0x4C39 LSL #16
            movk    x2, #0x7FFF LSL #32
            ldr     x2, [x2]
            blr     x2
                             ; gcrRegs -[x0]
                             ; gcr arg pop 0
            mov     x0, x19
                             ; gcrRegs +[x0]
            bl      CORINFO_HELP_THROW
                             ; gcrRegs -[x0 x19]
                             ; gcr arg pop 0
            brk_windows #0
						;; size=164 bbWeight=0 PerfScore 0.00

; Total bytes of code 300, prolog size 40, PerfScore 56.00, instruction count 75, allocated bytes for code 300 (MethodHash=038b69a6) for method System.Threading.Thread:.ctor(System.Threading.ThreadStart):this (Tier1)
; ============================================================

@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Oct 22, 2023
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Oct 23, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Nov 22, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci-optional Blocking optional rolling runs JitStress CLR JIT issues involving JIT internal stress modes os-windows
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants