I get a deadlock in RememberTaskServer.handleAccept. The line:
if (getThisPeer().getLog().registerRequest(peerId, last_version,
current_version))
blocks because the registerRequest method does a
'current_version.wait()' but the notify is in 'finishRequest' which is
only called after the wait releases....in short a deadlock that I
don't know how it could have worked.
Also, the serialization of HG persistent handles in Structs.java was
not working and querying returned random results (because when you do
new UUIDPersistentHandle you get a new random UUID). I fixed and
committed that, but the above problem has to do with the depths of
your replication algorithm so I need help :) All I'm trying to do for
is change the value of an atom at a remote peer via
RemotePeer.replace(....).
Best,
Boris
--
"Frozen brains tell no tales."
-- Buckethead
Ah, I like the idea! This is certainly the more logical think to do.
Tracking peer presence is probably tricky and error-prone, but I still
believe that in general some form of it is needed.