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
New Mono drop crashing in C# symbol tests #13775
Labels
Comments
@lambdageek this looks like recent regression |
Passed (although I only did a single run) on mono 6.1.0.769 (9ebf3a8). Failed on 6.1.0.790 (acb8dd1). Here's a part of a stack trace:thread #52, name = 'Domain unloader' frame #0: 0x00007fff5fb23356 libsystem_kernel.dylib`__wait4 + 10 frame #1: 0x000000010aac8178 mono`mono_dump_native_crash_info at mini-posix.c:1111:3 [opt] frame #2: 0x000000010aac7efc mono`mono_dump_native_crash_info(signal="SIGABRT", mctx=, info=) at mini-posix.c:1153 [opt] frame #3: 0x000000010aa61405 mono`mono_handle_native_crash(signal="SIGABRT", mctx=0x000070001034f2f8, info=0x000070001034f8d8) at mini-exceptions.c:3324:2 [opt] frame #4: 0x000000010aac74b1 mono`sigabrt_signal_handler(_dummy=6, _info=0x000070001034f8d8, context=0x000070001034f940) at mini-posix.c:234:3 [opt] frame #5: 0x00007fff5fbceb5d libsystem_platform.dylib`_sigtramp + 29 frame #6: 0x00007fff5fb242c7 libsystem_kernel.dylib`__pthread_kill + 11 frame #7: 0x00007fff5fbd9bf1 libsystem_pthread.dylib`pthread_kill + 284 frame #8: 0x00007fff5fa8e6a6 libsystem_c.dylib`abort + 127 frame #9: 0x00007fff5fb9caef libsystem_malloc.dylib`malloc_vreport + 545 frame #10: 0x00007fff5fb9c8b0 libsystem_malloc.dylib`malloc_report + 151 frame #11: 0x000000010abafd79 mono`mono_metadata_free_type at metadata.c:3231:3 [opt] frame #12: 0x000000010abafd60 mono`mono_metadata_free_type(type=0x00007f8f60ef3e60) at metadata.c:4057 [opt] frame #13: 0x000000010abb84f3 mono`free_inflated_method [inlined] mono_metadata_free_inflated_signature(sig=0x00007f8f60eeecd0) at metadata.c:2369:3 [opt] frame #14: 0x000000010abb84e6 mono`free_inflated_method(imethod=0x00007f8f6163a240) at metadata.c:3194 [opt] frame #15: 0x000000010acc9f15 mono`monoeg_g_hash_table_foreach_remove(hash=, func=(mono`inflated_method_in_image at metadata.c:3059), user_data=0x00007f8f5e093c00) at ghashtable.c:450:6 [opt] frame #16: 0x000000010abb05b1 mono`mono_metadata_clean_for_image(image=) at metadata.c:3156:3 [opt] frame #17: 0x000000010ab935ed mono`mono_image_close_except_pools(image=0x00007f8f5e093c00) at image.c:2115:2 [opt] frame #18: 0x000000010ab45e68 mono`mono_assembly_close_except_image_pools(assembly=0x00007f8f611a8750) at assembly.c:4538:7 [opt] frame #19: 0x000000010ab3d90d mono`mono_domain_free(domain=0x00007f8f609f8460, force=) at domain.c:1161:8 [opt] frame #20: 0x000000010ab3b2e4 mono`unload_thread_main(arg=) at appdomain.c:2988:2 [opt] frame #21: 0x000000010abfdb23 mono`start_wrapper [inlined] start_wrapper_internal at threads.c:1220:3 [opt] frame #22: 0x000000010abfda93 mono`start_wrapper(data=0x00007f8f61d5ed80) at threads.c:1293 [opt] frame #23: 0x00007fff5fbd72eb libsystem_pthread.dylib`_pthread_body + 126 frame #24: 0x00007fff5fbda249 libsystem_pthread.dylib`_pthread_start + 66 frame #25: 0x00007fff5fbd640d libsystem_pthread.dylib`thread_start + 13 |
It's a double free when we're cleaning up the aggregate custom modifiers. #13320 |
lambdageek
added a commit
to lambdageek/mono
that referenced
this issue
Apr 2, 2019
The aggregate modifiers container is owned by a MonoImageSet. The aggregate modifiers may be shared by more than one MonoType that happen to need the same modifiers. (Similar to how generic instantiations are shared) When the image set is cleaned up the aggregate modifier cleanup will free the types in the aggregate modifiers container (the call to free_aggregate_modifiers in mono_metadata_clean_for_image). With this extra call to free_aggregate_modifiers in mono_metadata_free_type may cause the same memory to be freed twice. Fixes mono#13775
monojenkins
pushed a commit
to monojenkins/mono
that referenced
this issue
Apr 2, 2019
The aggregate modifiers container is owned by a MonoImageSet. The aggregate modifiers may be shared by more than one MonoType that happen to need the same modifiers. (Similar to how generic instantiations are shared) When the image set is cleaned up the aggregate modifier cleanup will free the types in the aggregate modifiers container (the call to free_aggregate_modifiers in mono_metadata_clean_for_image). With this extra call to free_aggregate_modifiers in mono_metadata_free_type may cause the same memory to be freed twice. Fixes mono#13775
lambdageek
added a commit
that referenced
this issue
Apr 5, 2019
…13785) The aggregate modifiers container is owned by a MonoImageSet. The aggregate modifiers may be shared by more than one MonoType that happen to need the same modifiers. (Similar to how generic instantiations are shared) When the image set is cleaned up the aggregate modifier cleanup will free the types in the aggregate modifiers container (the call to free_aggregate_modifiers in mono_metadata_clean_for_image). With this extra call to free_aggregate_modifiers in mono_metadata_free_type may cause the same memory to be freed twice. Fixes #13775
lambdageek
pushed a commit
that referenced
this issue
Apr 9, 2019
…13796) The aggregate modifiers container is owned by a MonoImageSet. The aggregate modifiers may be shared by more than one MonoType that happen to need the same modifiers. (Similar to how generic instantiations are shared) When the image set is cleaned up the aggregate modifier cleanup will free the types in the aggregate modifiers container (the call to free_aggregate_modifiers in mono_metadata_clean_for_image). With this extra call to free_aggregate_modifiers in mono_metadata_free_type may cause the same memory to be freed twice. Fixes #13775
alexanderkyte
pushed a commit
to alexanderkyte/mono
that referenced
this issue
May 6, 2019
…ono#13785) The aggregate modifiers container is owned by a MonoImageSet. The aggregate modifiers may be shared by more than one MonoType that happen to need the same modifiers. (Similar to how generic instantiations are shared) When the image set is cleaned up the aggregate modifier cleanup will free the types in the aggregate modifiers container (the call to free_aggregate_modifiers in mono_metadata_clean_for_image). With this extra call to free_aggregate_modifiers in mono_metadata_free_type may cause the same memory to be freed twice. Fixes mono#13775
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Steps to Reproduce
git reset --hard be54c4a899c7d7bb6360f68243759f62c30e5408
(ensures your before we disabled the tests)./build.sh --restore --build
./build.sh --test --testMono
The instability here caused us to temporarily disable C# symbol tests on Mono. Here is our tracking issue
dotnet/roslyn#34646
Current Behavior
Eventually this will crash with a SIGSEGV. May have to run it a few times. The actual test which causes the crash will vary from run to run.
Expected Behavior
Expectation is this test will succeed.
Mono Version
From our apt log
Stacktrace
The text was updated successfully, but these errors were encountered: