#3509 closed defect (fixed)

foolscap.tokens.Violation: Violation (in return value of <foolscap.logging.publish.LogPublisher object at 0x7f41ccc76210>.get_versions): ("'u'autobahn'' is not a bytestring",)

Reported by: exarkun Owned by: itamarst
Priority: normal Milestone: Support Python 3
Component: unknown Version: n/a
Keywords: Cc:
Launchpad Bug:

Description (last modified by exarkun)

Attempting to flogtool tail a master@dc611bf9b (just the revision I happen to have right now) node fails with this traceback:

ERROR [CopiedFailure instance: Traceback from remote host -- Traceback (most recent call last):
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/foolscap/eventual.py", line 26, in _turn
    cb(*args, **kwargs)
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/foolscap/broker.py", line 580, in doNextCall
    d.addCallback(self._callFinished, delivery)
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/twisted/internet/defer.py", line 322, in addCallback
    callbackKeywords=kw)
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/twisted/internet/defer.py", line 311, in addCallbacks
    self._runCallbacks()
--- <exception caught here> ---
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/foolscap/broker.py", line 627, in _callFinished
    methodSchema.checkResults(res, False) # may raise Violation
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/foolscap/remoteinterface.py", line 297, in checkResults
    self.responseConstraint.checkObject(results, inbound)
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/foolscap/slicers/dict.py", line 146, in checkObject
    self.keyConstraint.checkObject(key, inbound)
  File "/home/exarkun/VirtualEnvs/tahoe-lafs/lib/python2.7/site-packages/foolscap/constraint.py", line 220, in checkObject
    raise Violation("'%r' is not a bytestring" % (obj,))
foolscap.tokens.Violation: Violation (in return value of <foolscap.logging.publish.LogPublisher object at 0x7f41ccc76210>.get_versions): ("'u'autobahn'' is not a bytestring",)
]

src/allmydata/node.py does some app_versions.add_version calls. I guess it's passing unicode but it needs to pass bytes instead.

Change History (4)

comment:1 Changed at 2020-11-16T20:39:58Z by exarkun

  • Description modified (diff)

comment:2 Changed at 2020-11-17T16:26:05Z by itamarst

  • Keywords review added

comment:3 Changed at 2020-11-19T17:04:00Z by exarkun

  • Keywords review removed

comment:4 Changed at 2020-11-19T18:42:21Z by GitHub <noreply@…>

  • Resolution set to fixed
  • Status changed from new to closed

In cf74d92/trunk:

Merge pull request #899 from tahoe-lafs/3509-unicode-version-breakage

Fix unicode version breakage.

Fixes ticket:3509
Fixes ticket:3510

Note: See TracTickets for help on using tickets.