Ian Henriksen

Results 178 comments of Ian Henriksen

Yah, in the `reinitialization` test it only gets to the `qthread_finalize` call, so something's wrong in there.

Got a backtrace! https://github.com/sandialabs/qthreads/blob/55ad590801b7188aa5f0e34a8946260a2726046c/src/qthread.c#L2011 (yes, the debugger is pointing to a bracket, so some other nearby line is likely the actual culprit) called by https://github.com/sandialabs/qthreads/blob/55ad590801b7188aa5f0e34a8946260a2726046c/src/qthread.c#L704.

My current running theory is that this is an issue where some kind of instrumentation is needed to get thread sanitizer to be okay with our context swapping. See, for...

New guess on this one: this is just because of the pretty heavy stack usage from thread sanitizer. Increasing the stack size seems to mitigate it. Currently exploring to see...

Okay, adjusting the stack size and some of the problem sizes was enough to "fix" the issue on x86, but it doesn't seem to be enough on ARM. Current best...

Tracked the segfault in main thread to here: https://github.com/sandialabs/qthreads/blob/55ad590801b7188aa5f0e34a8946260a2726046c/src/qthread.c#L1474. Specifically it segfaults inside the call to `pthread_join` that segfaults, not during any of the memory accesses for the function parameters....

Okay, at least for the `reinitialization` test, the segfault is happening on return from our swapctxt in the non-main thread. Specifically https://github.com/sandialabs/qthreads/blob/55ad590801b7188aa5f0e34a8946260a2726046c/src/qthread.c#L2285 runs and executes the desired function, but does...

Note, even with #231 there are still intermittent crashes in `qthread_stackleft` and `qthread_disable_shepherd`. Given that the crashes observed here are consistent I'm fairly sure those are separate bugs though. #144...

Taking this one off the 1.21 release milestone since figuring out how to do this safely without causing performance regressions is likely to be a pain.

I'm working through these errors now and they're proving to be detailed enough that it's worthwhile to triage/document them individually. I'll leave this main issue for thread sanitizer errors open...