Opened 14 years ago
Closed 14 years ago
#188 closed defect (invalid)
UNUSUAL an inbound callRemote that we [m2sb] executed (on behalf of someone else, TubID m2sb) failed
| Reported by: | Zooko | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | undecided |
| Component: | unknown | Version: | 0.6.1 |
| Keywords: | Cc: | Zooko |
Description
I see a lot of this in kpreid's flogs:
10:24:45.815 [52750]: UNUSUAL an inbound callRemote that we [m2sb] executed (on behalf of someone else, TubID m2sb) failed
10:24:45.815 [52751]: reqID=499, rref=<foolscap.broker.Broker object at 0x101f4bc50>, methname=RIBroker.getReferenceByName
10:24:45.815 [52752]: args=[]
10:24:45.815 [52753]: kwargs={'name': 'hffivyel5rovo7wnleaj42zcibw2xqow'}
10:24:45.815 [52754]: the LOCAL failure was: FAILURE:
[CopiedFailure instance: Traceback from remote host -- Traceback (most recent call last):
File "/Installs/allmydata-tahoe-1.9.1/support/lib/python2.7/site-packages/foolscap-0.6.3-py2.7.egg/foolscap/eventual.py", line 26, in _turn
cb(*args, **kwargs)
File "/Installs/allmydata-tahoe-1.9.1/support/lib/python2.7/site-packages/foolscap-0.6.3-py2.7.egg/foolscap/broker.py", line 554, in doNextCall
d.addCallback(lambda res: self._doCall(delivery))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/defer.py", line 297, in addCallback
callbackKeywords=kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/defer.py", line 286, in addCallbacks
-- TRACEBACK ELIDED --
s/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/defer.py", line 542, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "/Installs/allmydata-tahoe-1.9.1/support/lib/python2.7/site-packages/foolscap-0.6.3-py2.7.egg/foolscap/broker.py", line 554, in <lambda>
d.addCallback(lambda res: self._doCall(delivery))
File "/Installs/allmydata-tahoe-1.9.1/support/lib/python2.7/site-packages/foolscap-0.6.3-py2.7.egg/foolscap/broker.py", line 589, in _doCall
return obj.doRemoteCall(delivery.methodname, args, kwargs)
File "/Installs/allmydata-tahoe-1.9.1/support/lib/python2.7/site-packages/foolscap-0.6.3-py2.7.egg/foolscap/referenceable.py", line 60, in doRemoteCall
res = meth(*args, **kwargs)
File "/Installs/allmydata-tahoe-1.9.1/support/lib/python2.7/site-packages/foolscap-0.6.3-py2.7.egg/foolscap/broker.py", line 470, in remote_getReferenceByName
return self.tub.getReferenceForName(name)
File "/Installs/allmydata-tahoe-1.9.1/support/lib/python2.7/site-packages/foolscap-0.6.3-py2.7.egg/foolscap/pb.py", line 768, in getReferenceForName
% hint)
exceptions.KeyError: "unable to find reference for name starting with 'hf'"
]
Change History (3)
comment:1 Changed 14 years ago by
| Cc: | Zooko added |
|---|
comment:2 Changed 14 years ago by
comment:3 Changed 14 years ago by
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Ah, yes, that sort of insanity is hard to detect correctly. If you've got Alice and Bob1/Bob2, then from Alice's point of view, she's seeing Bob reboot and reconnect constantly. The two Bobs have different "incarnation strings" (IRs), and she might be able to keep a history of the IRs and notice that she's seeing old ones get repeated, to guess that there are multiple Bobs out there. But in general Alice can't distinguish multiple-Bobs from a single rebooting-Bob.
Bob1 can detect that he's talking to Bob2 more easily, but only if Bob2 makes an inbound connection to Bob1 with the intention of talking to Bob's TubID, which Foolscap doesn't do (getReference(my_furl) gives you a special no-network Loopback connection).
So yeah, I think the possible fixes/improvements are a bit out-of-scope, so I'll take your advice and close this as INVALID.

It turned out that multiple nodes had the same private key. Perhaps that cause this UNUSUAL? It would be cool if a more specific error message could be emitted when that sort of operator error is encountered, either in one of those nodes ("Hey I just met myself over the internet!") or in a third node ("Goodbye! I just met a newer you coming from a different address!").
You could probably just close this ticket as "invalid", though...