Opened 13 years ago

Closed 13 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 13 years ago by Zooko

Cc: Zooko added

comment:2 Changed 13 years ago by Zooko

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...

comment:3 Changed 13 years ago by Brian Warner

Resolution: invalid
Status: newclosed

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.

Note: See TracTickets for help on using tickets.