You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I thought we'd just be calling os_thread_under_dynamo() too early: but the
Windows version, unlike UNIX, does not call os_swap_context()!
Weird.
Instead various routines call swap_peb_pointer() directly: including
nudge_thread_cleanup().
ASSERT in infloop in tls cleanup post-nudge => swapping peb pointer too early
Should the nudge thread be calling DllMain routines?? I guess a client
lib's nudge handler could depend on static TLS, or call a privlib that
does.
Looks like nudge threads do regular thread init so the DllMain for thread
init should have been called. Maybe the problem is we've swapped privlib
state too early. Indeed: removing the swap fixes it.
The text was updated successfully, but these errors were encountered:
Fixes two asserts involving nudge threads swapping to app state and
then accessing privlib TLS and other state.
Adds timeouts to each step in runall.cmake to avoid hangs.
Adds identification of an assert to runall.cmake.
Issue: #4074, #4059Fixes#4074
Fixes two asserts involving nudge threads swapping to app state and
then accessing privlib TLS and other state.
Adds timeouts to each step in runall.cmake to avoid hangs.
Adds a timeout to the nudge sending.
Adds identification of an assert to runall.cmake.
Issue: #4074, #4059Fixes#4074
The client.nudge_test hits multiple problems, including these two asserts:
ASSERT in ntdll_redir in infloop on nudge => relax for nudge thread; actually I undid this after the next assert was fixed to not swap state
The app exits b/c of this:
It's non-det: not every run.
Caught it:
I thought we'd just be calling os_thread_under_dynamo() too early: but the
Windows version, unlike UNIX, does not call os_swap_context()!
Weird.
Instead various routines call swap_peb_pointer() directly: including
nudge_thread_cleanup().
ASSERT in infloop in tls cleanup post-nudge => swapping peb pointer too early
Looks like a dynamically loaded lib w/ static TLS, which we don't support,
but that's after a dbgcrt assert is raised on a free:
Should the nudge thread be calling DllMain routines?? I guess a client
lib's nudge handler could depend on static TLS, or call a privlib that
does.
Looks like nudge threads do regular thread init so the DllMain for thread
init should have been called. Maybe the problem is we've swapped privlib
state too early. Indeed: removing the swap fixes it.
The text was updated successfully, but these errors were encountered: