[e-lang] Strange lock-ups with simple E program

Kevin Reid kpreid at mac.com
Fri Jul 24 18:38:54 EDT 2009


On Jul 24, 2009, at 9:53, Thomas Leonard wrote:

> def obj := seedVat.run("def test() { return null }")[0]

Note: "run" is the function method. This line would best be written as

     def obj := seedVat("def test() { return null }")[0]
>
> 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>
> ...
> error: problem: <ViciousCycleException: Caught in a forwarding loop>

I think I've noticed nondeterministic problems like that myself. I  
don't have the time to debug it myself right now, and I'm not a  
threading wizard anyway and this problem is probably some type of race  
condition.

In particular, either of these errors indicates a bogus resolution:  
the first is that a Far ref, since it is settled, cannot be resolved  
to another ref (other than a broken ref); the second is an attempt to  
resolve a promise to itself.

MarkM?

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>






More information about the e-lang mailing list