-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bolt12/p2p master attenuation #3281
Conversation
3895e0a
to
ffe1561
Compare
ffe1561
to
5ceb375
Compare
860f413
to
910b07d
Compare
Could you rebase the branch so that |
910b07d
to
15f95a5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is quite large PR, we should avoid this in the future (reviewing is quite hard of such large changes). If needed an issue can always be broken into multiple PRs.
ouroboros-network-framework/test/Test/Ouroboros/Network/Server2.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/test/Test/Ouroboros/Network/Server2.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/test/Test/Ouroboros/Network/Server2.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/test/Test/Ouroboros/Network/Server2.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/src/Ouroboros/Network/ConnectionManager/Core.hs
Show resolved
Hide resolved
ouroboros-network-framework/src/Ouroboros/Network/ConnectionManager/Core.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/src/Ouroboros/Network/ConnectionManager/Core.hs
Outdated
Show resolved
Hide resolved
15f95a5
to
2a62a5f
Compare
2a62a5f
to
8d575a3
Compare
7144768
to
d0a3f8b
Compare
3b8d701
to
b5f129f
Compare
c6bef14
to
8cbe8ed
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few more comments.
ouroboros-network-framework/test/Test/Ouroboros/Network/Server2.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/src/Ouroboros/Network/ConnectionManager/Types.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/test/Test/Ouroboros/Network/Server2.hs
Outdated
Show resolved
Hide resolved
ouroboros-network-framework/src/Ouroboros/Network/ConnectionManager/Core.hs
Show resolved
Hide resolved
When requestOutboundConnection is run we have two calls which needs to take care of resources * connect * connection handler thread This patch avoids having resource cleanups for both calls to overlap.
Add corner case transitions to verifyAbstractTrans connection mngr: refactor - Fixes cleanup function TerminatingSt case - Adds and logs TrUnexpectedlyMissingConnectionState Fixes DColdNoop reflexive transition tracing Add TODO to Snocket.hs
The issue was noTimeoutHandshake was being used and there was a thread hanging forever waiting on timeout. Refactor handshakeTimeLimits to top-level: - This allows to decide when to pass timeLimitsHandhsake or noTimeLimitsHandshake, depending on the type of test we're running Extended Server2 with Shutdown action Make connectionLoop resilient so that it can't die
When closing a socket, it does not throw timeout exceptions. If the remote host does not reply, the connection will be evenautlly closed by the OS.
This patch providess UnversionedProtocol which allows to negotiate 'DataFlow'.
When connection is negotiated, it can fail. Pattern match on the current state to verify that it's not 'TerminatedState'.
Since we start using non-trivial attenuation, we can expect IO / multiplexer errors. They should not terminate a simulation.
This is not perfect, so we also remove an assertion from connection-manager. This assertion is benign and also hit rarely (once per 100_000 simulations).
Just redefine the 'debugTracer' term.
caused by a race with withConnectionManager. So ConnectionManager simulation had PopScheduleOutboundError and leaked connections problems. Both problems sources was due to race conditions caused by a wrong assumption that the connVar could be reused if in the Terminating or TerminatedState. We also log TerminatingSt->TerminatedSt in the right place Authors: Marcin Szamotulski
8cbe8ed
to
d312b0a
Compare
Be careful when overwriting the state.
The resource handler for `bracketOnError` must be uninterruptible.
This simulation is not designed to handle errors.
These identity transitions are harmless, triggered by hot miniprotocol termination. Rebase fixs
d312b0a
to
483b2f3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Adds Attenuation to tests and fixes a couple of bugs found in the way.