welcome page can't display when introducer connection has problems #2864

Open
opened 2017-01-26 19:58:20 +00:00 by warner · 3 comments

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.

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.
warner added the
code-frontend-web
normal
defect
1.12.1
labels 2017-01-26 19:58:20 +00:00
warner added this to the 1.13.0 milestone 2017-01-26 19:58:20 +00:00
Author

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.brokerstubref to fail, or vice versa.

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.brokerstubref` to fail, or vice versa.

Moving open issues out of closed milestones.

Moving open issues out of closed milestones.
exarkun modified the milestone from 1.13.0 to 1.15.0 2020-06-30 14:45:13 +00:00
Owner

Ticket retargeted after milestone closed

Ticket retargeted after milestone closed
meejah modified the milestone from 1.15.0 to soon 2021-03-30 18:40:19 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: tahoe-lafs/trac-2024-07-25#2864
No description provided.