Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@lambdageek
Copy link
Member

Followup work for #17090

In order to get managed method info for unmanaged stacktraces, we call
mini_jit_info_table_find_ext which calls decode_exception_debug_info which may
allocate if it's not in async context.

Do the switch in mono_threads_summarize_execute so that non-supervising threads
all switch when they run the sigterm_signal_handler. mono_threads_summarize
already does it for the supervisor thread.

Fixes #17180

Followup work for mono#17090

In order to get managed method info for unmanaged stacktraces, we call
mini_jit_info_table_find_ext which calls decode_exception_debug_info which may
allocate if it's not in async context.

Do the switch in mono_threads_summarize_execute so that non-supervising threads
all switch when they run the sigterm_signal_handler.  mono_threads_summarize
already does it for the supervisor thread.

Fixes mono#17180
@lambdageek lambdageek requested a review from lateralusX as a code owner October 4, 2019 22:09
@lambdageek lambdageek requested a review from alexischr October 4, 2019 22:09
@lambdageek
Copy link
Member Author

/cc @CoffeeFlux

@lambdageek
Copy link
Member Author

@monojenkins backport to 2019-08

@lambdageek lambdageek merged commit cb52186 into mono:master Oct 5, 2019
monojenkins added a commit that referenced this pull request Oct 5, 2019
[2019-08] [merp] Put thread into async context before running summarizer

Followup work for #17090

In order to get managed method info for unmanaged stacktraces, we call
`mini_jit_info_table_find_ext` which calls `decode_exception_debug_info` which may
allocate if it's not in async context.

Do the switch in `mono_threads_summarize_execute` so that non-supervising threads
all switch when they run the `sigterm_signal_handler`.  `mono_threads_summarize`
already does it for the supervisor thread.

Fixes #17180



Backport of #17194.

/cc @lambdageek
lambdageek pushed a commit to lambdageek/mono that referenced this pull request Oct 11, 2019
[merp] Put thread into async context before running summarizer

Followup work for mono#17090

In order to get managed method info for unmanaged stacktraces, we call
`mini_jit_info_table_find_ext` which calls `decode_exception_debug_info` which may
allocate if it's not in async context.

Do the switch in `mono_threads_summarize_execute` so that non-supervising threads
all switch when they run the `sigterm_signal_handler`.  `mono_threads_summarize`
already does it for the supervisor thread.

Fixes mono#17180

Backport of mono#17194.

/cc @lambdageek
monojenkins added a commit to monojenkins/mono that referenced this pull request Oct 14, 2019
[merp] Put thread into async context before running summarizer

Followup work for mono#17090

In order to get managed method info for unmanaged stacktraces, we call
`mini_jit_info_table_find_ext` which calls `decode_exception_debug_info` which may
allocate if it's not in async context.

Do the switch in `mono_threads_summarize_execute` so that non-supervising threads
all switch when they run the `sigterm_signal_handler`.  `mono_threads_summarize`
already does it for the supervisor thread.

Fixes mono#17180

Backport of mono#17194.

/cc @lambdageek
marek-safar pushed a commit that referenced this pull request Oct 14, 2019
…etry (#17296)

* [merp] Put thread into async context before running summarizer

[merp] Put thread into async context before running summarizer

Followup work for #17090

In order to get managed method info for unmanaged stacktraces, we call
`mini_jit_info_table_find_ext` which calls `decode_exception_debug_info` which may
allocate if it's not in async context.

Do the switch in `mono_threads_summarize_execute` so that non-supervising threads
all switch when they run the `sigterm_signal_handler`.  `mono_threads_summarize`
already does it for the supervisor thread.

Fixes #17180

Backport of #17194.

/cc @lambdageek

* [merp] Don't call install_state_summarizer in EnableMicrosoftTelemetry

install_state_summarizer installs a SIGTERM handler. Unfortunately
sigterm_signal_handler assumes that it will only be called when a crash is
already in progress (it assumes it won't be the supervisor, and so it doesn't
setup the memory for capturing a crash report among other things).

* [merp] Register SIGTERM handler in dump_native_stacktrace

Previously it was installed by EnableMicrosoftTelemetry, which is too early.
Now we get here without a handler installed even when mono_merp_enabled returns true.
ManickaP pushed a commit to ManickaP/runtime that referenced this pull request Jan 20, 2020
…mono#17194)

Followup work for mono/mono#17090

In order to get managed method info for unmanaged stacktraces, we call
mini_jit_info_table_find_ext which calls decode_exception_debug_info which may
allocate if it's not in async context.

Do the switch in mono_threads_summarize_execute so that non-supervising threads
all switch when they run the sigterm_signal_handler.  mono_threads_summarize
already does it for the supervisor thread.

Fixes mono/mono#17180

Commit migrated from mono/mono@cb52186
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[merp] mono_summarize_unmanaged_stack tries to take a lock while calling decode_exception_debug_info

2 participants