[e-lang] Strange lock-ups with simple E program
Thomas Leonard
tal at it-innovation.soton.ac.uk
Fri Jul 24 09:53:01 EDT 2009
Hi,
I was trying to find out why my E program failed from time to time, and eventually simplified it to this:
pragma.syntax("0.9")
def seedVatAuthor := <elang:interp.seedVatAuthor>
def seedVat := seedVatAuthor(<unsafe>)
def obj := seedVat.run("def test() { return null }")[0]
var i := 0
def stress() {
i += 1
if (i < 10 || (i % 100) == 0) { println(`i: $i`) }
when (obj<-()) -> { stress() }
}
stress()
interp.blockAtTop()
It runs for a while, but then it hangs (after printing "i: 11800", "i:
2300" and "i: 36900" on my last few runs).
While simplifying it, I quite often also got these:
java.lang.RuntimeException: Failed: OldFarRef may only be smashed: <Far
ref>
(I see from the svn logs that an "OldFarRef" is just a normal far ref)
Any hints on how to debug this? I was using e.version=0.9.2a (according
to the eprops file), but I also tried with svn. That also hangs, but
sometimes prints:
error: problem: <ViciousCycleException: Caught in a forwarding loop>
Other times, it doesn't print anything.
Thanks,
--
Dr Thomas Leonard
IT Innovation Centre
2 Venture Road
Southampton
Hampshire SO16 7NP
Tel: +44 0 23 8076 0834
Fax: +44 0 23 8076 0833
mailto:tal at it-innovation.soton.ac.uk
http://www.it-innovation.soton.ac.uk
More information about the e-lang
mailing list