#1721 closed defect (fixed)
introducer: WrapV1SubscriberInV2Interface instance has no attribute 'tracker'
Reported by: | killyourtv | Owned by: | warner |
---|---|---|---|
Priority: | critical | Milestone: | 1.10.0 |
Component: | code-network | Version: | 1.9.1 |
Keywords: | introducer regression | Cc: | |
Launchpad Bug: |
Description
While testing current trunk on I2P using Debian unstable with
allmydata-tahoe: 1.9.0.post131, foolscap: 0.6.3, pycryptopp: 0.6.0.1206569328141510525648634803928199668821045408958, zfec: 1.4.22, Twisted: 11.1.0, Nevow: 0.10.0, zope.interface: unknown, python: 2.7.3rc2, platform: Linux-debian_wheezy/sid-x86_64-64bit_ELF, pyOpenSSL: 0.13, simplejson: 2.5.0, pycrypto: 2.5, pyasn1: unknown, mock: 0.8.0, sqlite3: 2.6.0 [sqlite 3.7.11], setuptools: 0.6c16dev3
I have found that when my client (running 1.9.0.post131) connects to my introducer (also running 1.9.0.post131), I can load the introducer status page fine. Within a few seconds (probably once other clients connect) the status page will fail to load.
The following is in twistd.log:
2012-04-14 xx:31:51+0300 [-] Log opened. 2012-04-14 xx:31:51+0300 [-] twistd 11.1.0 (/usr/bin/python 2.7.3) starting up. 2012-04-14 xx:31:51+0300 [-] reactor class: twisted.internet.pollreactor.PollReactor. 2012-04-14 xx:31:51+0300 [-] Listener starting on 50895 2012-04-14 xx:31:51+0300 [-] NevowSite starting on 3460 2012-04-14 xx:31:51+0300 [-] Starting factory <nevow.appserver.NevowSite instance at 0x2373758> 2012-04-14 xx:31:51+0300 [-] My pid: 30101 2012-04-14 xx:31:51+0300 [-] DatagramProtocol starting on 56557 2012-04-14 xx:31:51+0300 [-] Starting protocol <twisted.internet.protocol.DatagramProtocol instance at 0x23798c0> 2012-04-14 xx:31:51+0300 [-] (UDP Port 56557 Closed) 2012-04-14 xx:31:51+0300 [-] Stopping protocol <twisted.internet.protocol.DatagramProtocol instance at 0x23798c0> 2012-04-14 xx:32:09+0300 [HTTPChannel,1,127.0.0.1] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/nevow/rend.py", line 569, in _renderHTTP return self.flattenFactory(doc, ctx, writer, finisher) File "/usr/lib/python2.7/dist-packages/nevow/rend.py", line 528, in <lambda> flattenFactory = lambda self, *args: flat.flattenFactory(*args) File "/usr/lib/python2.7/dist-packages/nevow/flat/__init__.py", line 14, in flattenFactory return deferflatten(stan, ctx, writer).addCallback(finisher) File "/usr/lib/python2.7/dist-packages/nevow/flat/twist.py", line 63, in deferflatten _drive(iterable, finished) --- <exception caught here> --- File "/usr/lib/python2.7/dist-packages/nevow/flat/twist.py", line 24, in _drive next = iterable.next() File "/usr/lib/python2.7/dist-packages/nevow/flat/ten.py", line 83, in iterflatten for item in gen: File "/usr/lib/python2.7/dist-packages/nevow/flat/flatstan.py", line 103, in TagSerializer yield serialize(toBeRenderedBy, context) File "/usr/lib/python2.7/dist-packages/nevow/flat/ten.py", line 70, in serialize return partialflatten(context, obj) File "/usr/lib/python2.7/dist-packages/nevow/flat/ten.py", line 61, in partialflatten return flattener(obj, context) File "/usr/lib/python2.7/dist-packages/nevow/flat/flatstan.py", line 264, in DirectiveSerializer return serialize(renderer, context) File "/usr/lib/python2.7/dist-packages/nevow/flat/ten.py", line 70, in serialize return partialflatten(context, obj) File "/usr/lib/python2.7/dist-packages/nevow/flat/ten.py", line 61, in partialflatten return flattener(obj, context) File "/usr/lib/python2.7/dist-packages/nevow/flat/flatstan.py", line 247, in MethodSerializer return FunctionSerializer(original, context, nocontext) File "/usr/lib/python2.7/dist-packages/nevow/flat/flatstan.py", line 236, in FunctionSerializer result = original(context, data) File "$SRC/tahoe-lafs/src/allmydata/web/introweb.py", line 154, in render_subscriber_row remote_host = rref.tracker.broker.transport.getPeer() exceptions.AttributeError: WrapV1SubscriberInV2Interface instance has no attribute 'tracker'
FWIW, all of the other clients are running 1.8.3. Also, this is on the I2P-hosted volunteer grid.
Change History (8)
comment:1 Changed at 2012-04-15T01:30:20Z by davidsarah
- Component changed from unknown to code
- Keywords introducer regression added
- Owner changed from davidsarah to warner
- Priority changed from normal to critical
comment:2 Changed at 2012-04-15T07:04:47Z by warner
- Component changed from code to code-network
- Milestone changed from undecided to 1.9.2
- Status changed from new to assigned
comment:3 Changed at 2012-04-23T06:18:17Z by warner
- Keywords review-needed added
I have a fix for this, which cleans up the "introweb" handling considerably. Unfortunately #1581 prevented me from uploading the patch to this ticket. Fortunately it can be seen on github, in https://github.com/warner/tahoe-lafs/tree/1721-introweb . Zooko / David-Sarah, if y'all feel like reviewing this in the next few days first, go for it, else I'll just land it.
comment:4 Changed at 2012-04-23T18:19:52Z by davidsarah
- Keywords review-needed removed
I made some line comments on https://github.com/warner/tahoe-lafs/commit/b9b80747d64f56bba1b9d0d483c712baca7c1a0f.
comment:5 Changed at 2012-04-23T21:27:42Z by killyourtv
I applied this patch and (functionality-wise) it looks good on my end.
comment:6 Changed at 2012-04-24T05:40:01Z by Brian Warner <warner@…>
- Resolution set to fixed
- Status changed from assigned to closed
In 84c9f3bfb4bdfde0:
comment:7 Changed at 2012-04-24T22:15:08Z by davidsarah
I re-reviewed 84c9f3bfb4bdfde0. My comments have been addressed apart from the ones about exceptions in the loops over announcements.
comment:8 Changed at 2012-05-14T04:19:13Z by davidsarah
- Milestone changed from 1.9.2 to 1.10.0
good catch! looks like I missed an abstraction-violation in the Introducer's web-status page. I'll add a test and fix it.