-
Notifications
You must be signed in to change notification settings - Fork 720
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
Update to latest version of ouroboros-network and other deps #569
Conversation
c3d7be5
to
65622a2
Compare
2317874
to
cd9ef4d
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.
Apparently, there's a problem that arises as a result of the changes in this PR.
I'm running the 3 node cluster that's used for benchmarking (benchmarking/cluster3nodes/
) and, for some reason, the nodes aren't exchanging transactions with one another.
The local transaction submission protocol seems to be working as node-0 is indeed receiving the initial transactions submitted by the transaction generator and adding them to the mempool, but there seems to be an issue with the node-to-node transaction submission protocol since none of the other nodes ever receive any transactions.
I can confirm that everything works as expected prior to updating the dependencies. I'm currently doing some debugging to see if I can determine what's going on.
@intricate That is a really interesting side effect. Ideally we would figure out what went wrong here and add a test to the dependency that would catch this error in the dependency's test suite before it bubbles up into the |
On this branch, it appears that I'm only seeing 2 mux-layer trace events related to
In recv :: m (Maybe BL.ByteString)
recv = do
-- We receive CBOR encoded messages as ByteStrings (possibly partial) from the
-- matching ingress queueu. This is the same queue the 'demux' thread writes to.
traceWith tracer $ MuxTraceChannelRecvStart mc
blob <- atomically $ do
blob <- readTVar q
if blob == BL.empty
then retry
else writeTVar q BL.empty >> return blob
-- say $ printf "recv mid %s mode %s blob len %d" (show mid) (show md) (BL.length blob)
traceWith tracer $ MuxTraceChannelRecvEnd mc blob
return $ Just blob After a successful |
Yes, that thread will block forever if the peer never sends any data on the corresponding miniprotocol. |
In an effort to track down the problem, I've been testing out the 3-node cluster benchmarking scripts with builds of IntersectMBO/ouroboros-network@a43961cNode-to-node transaction submission works fine with the 3-node cluster for my build based on
To reproduce, see branch IntersectMBO/ouroboros-network@c1b9ba3We are able to reproduce the same node-to-node transaction submission problem given a build based on
To reproduce, see branch ThoughtsAs a result, I'm thinking that the problem has been introduced in At a glance, I'm suspecting that the changes introduced by IntersectMBO/ouroboros-network#1536 could be the culprit, but I haven't looked at that PR very closely yet. |
I'm looking into this. |
Side note: I've tested
|
Right, but those logs are related to the |
3080e30
to
934e0e6
Compare
The fix is in, it now needs verifying.
805df21
to
2caface
Compare
Most code changes due to ouboros-network and cardano-ledger
`Rational` as required Update `./scripts/genesis.sh` to reflect the above change.
It disables the on-demand start for now, uses eager starts.
2caface
to
e88e3e1
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.
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.
Oops. Forgot to address @mrBliss review.
Chairman --socket-path argument can be given multiple times. It indicates to which unix sockets to connect to (and check for consensus). Chairman now identifies nodes by `SocketPath`, `CoreNodeId` is not used now, maybe it can be removed from `ourobors-consensus` as well. Nix scripts are not updated, and need to accomodate for chairman CLI changes.
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.
Okay, LGTM for real this time.
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.
fine for me
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, just awaiting the chairman fix.
569: Update to latest version of ouroboros-network and other deps r=deepfire a=dcoutts Most code changes due to ouroboros-network and cardano-ledger Closes #566 Co-authored-by: Duncan Coutts <[email protected]> Co-authored-by: Luke Nadur <[email protected]> Co-authored-by: Samuel Leathers <[email protected]> Co-authored-by: Jordan Millar <[email protected]> Co-authored-by: Marcin Szamotulski <[email protected]> Co-authored-by: Kosyrev Serge <[email protected]>
bors r+ |
Already running a review |
Build succeeded |
Most code changes due to ouroboros-network and cardano-ledger
Closes #566