[tahoe-lafs-trac-stream] [tahoe-lafs] #1823: is this server telling me over foolscap that its foolscap connection to me just broke?
tahoe-lafs
trac at tahoe-lafs.org
Tue Oct 9 20:49:09 UTC 2012
#1823: is this server telling me over foolscap that its foolscap connection to me
just broke?
------------------------------+-----------------------
Reporter: zooko | Owner:
Type: defect | Status: new
Priority: normal | Milestone: undecided
Component: code-network | Version: 1.9.2
Resolution: | Keywords: foolscap
Launchpad Bug: |
------------------------------+-----------------------
Comment (by warner):
I think is this really the near end telling you that the connection was
lost. It might be nice to clean up the error reporting (maybe suppressing
it entirely).
I believe the root cause was just a TCP connection that dropped while a
storage-server message (get_buckets) was outstanding. The first log
message (UNUSUAL) was recorded by Foolscap itself, in `foolscap/call.py`
around line 79, because tahoe turned on `logRemoteFailures`. It's not
being entirely accurate when it says "failed on the far end": what it
really means is that the failure occurred after the serialized arguments
were sent (so it's not a failure in serialization). Network partitions
are, of course, indistinguishable from the remote end suddenly
terminating, so they're reported in the same way as real remote-side
errors (such as "unknown swissnum" or a schema violation that made it
through to the far side).
The second log message (WEIRD) was recorded by Tahoe, in
`src/allmydata/immutable/checker.py` around line 515. It looks like the
preceding line was meant to catch it (`if f.check(DeadReferenceError)`),
but the RemoteException-wrapping prevented the check from working. I'm
guessing this code was written before you convinced me to make Foolscap
report errors more uniformly, and it didn't get updated.
I'm not sure how exactly it should get updated, though. We probably
settled on a scheme.. maybe `if f.check(RemoteException) and
f.failure.check(DeadReferenceError)`?
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1823#comment:1>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list