Opened 12 years ago

Last modified 12 years ago

#198 new defect

improve handling of code errors during negotiation

Reported by: Brian Warner Owned by:
Priority: minor Milestone: undecided
Component: negotiation Version: 0.6.3
Keywords: Cc:

Description

While working on #195, I tried to exercise the error-handling code by inserting raise KeyError("xyz") into the start of negotiate.evaluateHello, restarting a tahoe node with the modified code, then watch a flogtool-tail of a second node as it reconnected to the now-broken node. (both the second node and the flogtool process were started before breaking negotiate.py).

What I expected to see was a RemoteNegotiationError triggered by the KeyError. Instead, my local monitoring node got a BananaError, as it received the error block (banana-decision-version: 1, error: internal server error see logs) while it was expecting banana data.

I think this means the receiving code is jumping forward to receive_phase=BANANA too early. It might also mean that my code in negotiationFailed that tries to unpack a RemoteNegotiationError is unexercised. That code runs after all the necessary events have been eventual-sent, so it shouldn't break anything if it fails, but it'd be nice to capture remote errors usefully.

Change History (1)

comment:1 Changed 12 years ago by Brian Warner

Version: 0.6.10.6.3
Note: See TracTickets for help on using tickets.