Opened at 2017-01-26T19:58:20Z
Last modified at 2021-03-30T18:40:19Z
#2864 new defect
welcome page can't display when introducer connection has problems
Reported by: | warner | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | soon |
Component: | code-frontend-web | Version: | 1.12.1 |
Keywords: | Cc: | ||
Launchpad Bug: |
Description
While debugging some I2P-based introducer problems, IRC user "ls" noticed that the welcome page fails to render (i.e. displays a traceback) if the ConnectionInfo returned by foolscap's Reconnector.getReconnectingInfo() is None.
File "src/allmydata/web/root.py", line 245, in data_connected_introducers return len([1 for cs in self.client.introducer_connection_statuses() File "src/allmydata/client.py", line 614, in introducer_connection_statuses return [ic.connection_status() for ic in self.introducer_clients] File "src/allmydata/introducer/client.py", line 335, in connection_status return connection_status.from_foolscap_reconnector(irc, last_received) File "src/allmydata/util/connection_status.py", line 34, in from_foolscap_reconnector others = set(ci.connectorStatuses.keys()) exceptions.AttributeError: 'NoneType' object has no attribute 'connectorStatuses'
I think this can happen if there is no valid connection handler for the introducer FURL, but I need to explore some more to be sure.
In any case, this needs to be reported better, and not cause an exception.
Change History (3)
comment:1 Changed at 2017-01-27T00:02:50Z by warner
comment:2 Changed at 2020-06-30T14:45:13Z by exarkun
- Milestone changed from 1.13.0 to 1.15.0
Moving open issues out of closed milestones.
comment:3 Changed at 2021-03-30T18:40:19Z by meejah
- Milestone changed from 1.15.0 to soon
Ticket retargeted after milestone closed
Note: See
TracTickets for help on using
tickets.
Looking at Foolscap's code, it might also happen if the Tub hadn't been started (Tub._getReference found self.running != True). It might also be worth checking to see if ascii-vs-unicode issues could cause e.g. if tubref in self.brokers to be True, but self.brokers[tubref] to fail, or vice versa.