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

slot_table[slot_index] == nullptr - dynamic atexit destructor for 'WKS::gc_heap::mark_queue #73679

Closed
jkotas opened this issue Aug 10, 2022 · 4 comments
Assignees
Labels
area-GC-coreclr blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'
Milestone

Comments

@jkotas
Copy link
Member

jkotas commented Aug 10, 2022

Hit in #73670. Full log https://dev.azure.com/dnceng/public/_build/results?buildId=1933526&view=ms.vss-test-web.build-test-results-tab&runId=49928682&resultId=101398&paneView=debug :

Assert failure(PID 7180 [0x00001c0c], Thread: 15564 [0x3ccc]): slot_table[slot_index] == nullptr

CORECLR! dynamic atexit destructor for 'WKS::gc_heap::mark_queue'' + 0x3C (0x00007ffe9bb0f40c)
CORECLR! <lambda_d121dba8a4adeaf3a9819e48611155df>::operator() + 0x13C (0x00007ffe9ba220cc) CORECLR! _crt_seh_guarded_call<int>::operator()<<lambda_6a47f4c8fd0152770a780fc1d70204eb>,<lambda_d121dba8a4adeaf3a9819e48611155df> &,<lambda_6aaa2265f5b6a89667e7d7630012e97a> > + 0x34 (0x00007ffe9ba217e4)
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Aug 10, 2022
@jkotas jkotas added blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' area-GC-coreclr and removed untriaged New issue has not been triaged by the area owner labels Aug 10, 2022
@ghost
Copy link

ghost commented Aug 10, 2022

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

Issue Details

Hit in #73670. Full log https://dev.azure.com/dnceng/public/_build/results?buildId=1933526&view=ms.vss-test-web.build-test-results-tab&runId=49928682&resultId=101398&paneView=debug :

Assert failure(PID 7180 [0x00001c0c], Thread: 15564 [0x3ccc]): slot_table[slot_index] == nullptr

CORECLR! dynamic atexit destructor for 'WKS::gc_heap::mark_queue'' + 0x3C (0x00007ffe9bb0f40c)
CORECLR! <lambda_d121dba8a4adeaf3a9819e48611155df>::operator() + 0x13C (0x00007ffe9ba220cc) CORECLR! _crt_seh_guarded_call<int>::operator()<<lambda_6a47f4c8fd0152770a780fc1d70204eb>,<lambda_d121dba8a4adeaf3a9819e48611155df> &,<lambda_6aaa2265f5b6a89667e7d7630012e97a> > + 0x34 (0x00007ffe9ba217e4)
Author: jkotas
Assignees: -
Labels:

area-GC-coreclr, blocking-clean-ci

Milestone: -

@jkotas
Copy link
Member Author

jkotas commented Aug 10, 2022

This is regression introduced by #73375

Global static destructors can run while the other threads in the program are stopped at arbitrary place. It means that you cannot really do much interesting in them.

cc @PeterSolMS @Maoni0

@mangod9
Copy link
Member

mangod9 commented Aug 11, 2022

Fixed by #73761

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-GC-coreclr blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'
Projects
None yet
Development

No branches or pull requests

3 participants