<div dir="ltr">Hey Thomas,<br><br><div class="gmail_quote">2008/9/26 Thomas Horsten <span dir="ltr"><<a href="mailto:thomas@horsten.com">thomas@horsten.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
</div><div><div></div><div class="Wj3C7c">Ok, as I said earlier it still fails on my machine. I've verified that<br>
it's an SMP-related issue by running it with taskset -c 0, in which<br>
case it always gets further, and taskset -c 0-3, in which case it<br>
hangs most of the time. So probably a race condition.<br><br></div></div></blockquote><div><br>The race condition was due to me trying to use ptrace(PTRACE_TRACEME) and ptrace(PTRACE_ATTACH) at the same time. The attach was winning the race on your machine, but losing on mine, thus failing for me and being ignored. Successfully attaching meant no signal was generated, and we hung on the wait4 in loader/tt.c<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div class="Wj3C7c">
set_thread_context failed<br>
</div></div></blockquote></div><br>This was due to me over-eagerly reverting a hack that is necessary. ntdll has hardcoded segment registers that are incompatible with Linux, so we need to override/ignore them.<br><br>Thanks for finding these problems. I have fixed them, and released ring3k-0.0.4.tar.gz<br>
<br>Mike<br></div>