Worrisome bug report: liveRef() (aka followRef()) not going Mark S. Miller (markm@caplet.com)
Thu, 14 Jan 1999 11:13:04 -0800

In one Vat I export a URI to a PassByCopy object (like 3). In a second Vat I import the URI and make a SturdyRef, "sr". If I then say "sr liveRef" (the operation that used to be "sr followRef") I get back a DEFERRED reference as expected. (In particular, a DEFERRED proxy, as expected.) However, if I wait, it does not resolve to a LOCAL reference to a local copy of the PassByCopy object, as it must.

Since I've already seen that optimistic return results do resolve correctly, I tried and found that "sr liveRef <- yourself" acts like "sr liveRef" should act. Therefore, I've "repaired" this bug for the moment by replacing the following method in SturdyRef

public Object liveRef() {

return myRegistrar.lookupReference(mySearchPath, myObjectID);
}

with

public Object liveRef() {

        Object result = myRegistrar.lookupReference(mySearchPath, myObjectID);
        return E.send(result, "yourself");

}

While this works in all cases I've thought to test, I'm concerned that I'm only hiding the symptoms of a deeper bug. What's the story? Where should I be looking?