smite-scenarios: skip ping_pong for parked connections - #187
Conversation
83f64b6 to
2ba0ba4
Compare
NishantBansal2003
left a comment
There was a problem hiding this comment.
LGTM!
Though I do think patches are a good fit for target specific fixes, since they avoid changing smites behavior for other targets and potentially masking their issues, the downside is that if LN implementation doesn't fix the issue in the next release and updates the patched file, we'll have to redo the patch
| match Message::decode(&msg_bytes)? { | ||
| Message::Pong(_) => return Ok(PingOutcome::Pong), | ||
| Message::Error(e) if stop_on_known_error && is_known_parked_error(&e) => { | ||
| let msg = e.message().unwrap_or_default().to_string(); |
There was a problem hiding this comment.
nit (optional)
| let msg = e.message().unwrap_or_default().to_string(); | |
| let msg = e.message().unwrap_or("<non-utf8>").to_string(); |
A bug in CLN causes it to park the connection after receiving a channel_ready message with an incorrect channel_id. When this happens, CLN keeps the connection open until the 80s timeout elapses but is completely unresponsive until then. Check error messages from the target to detect when CLN hits this case, and then skip the ping_pong sync to avoid flagging this known issue as a hang.
2ba0ba4 to
0c54c28
Compare
Yeah, unfortunately the patch for this one is a bit complex and touches many files. Maintaining that patch in our tree would likely be a burden. I'm also not confident that it will be merged upstream anytime soon. I did verify that the error string we're matching against ("Wrong channel id") isn't emitted by any of the other implementations, so this change shouldn't affect them at all. |
A bug in CLN causes it to park the connection after receiving a
channel_readymessage with an incorrectchannel_id. When this happens, CLN keeps the connection open until the 80s timeout elapses but is completely unresponsive until then.Check error messages from the target to detect when CLN hits this case, and then skip the
ping_pongsync to avoid flagging this known issue as a hang.Ref: ElementsProject/lightning#9369