[e-lang] Strange lock-ups with simple E program
Mark Miller
erights at gmail.com
Sun Jul 26 22:56:28 EDT 2009
Hi Thomas, I haven't found the bug yet, but I have narrowed it down to
a race condition bug in the boot-comm system. Your same stress test,
with your
def seedVat := seedVatAuthor(<unsafe>)
replaced by
introducer.onTheAir()
def seedVat := seedVatAuthor(<unsafe>).virtualize(introducer)
seems to never lock up. The only difference between these is that the
latter uses captp instead of boot-comm. In the boot comm case, the
form of lock up looks like a lost signal: all vats are quiescent
waiting for a message. I have also discovered many things that the bug
is not ;). Unfortunately, the clues so far seem to point to a
multi-threading race condition bug.
Unfortunately, I won't have time for further investigation for another
week. If you're blocked on this, might the above change be a useful
workaround for you?
--
Text by me above is hereby placed in the public domain
Cheers,
--MarkM
More information about the e-lang
mailing list