test: NetMQ upstream 4.0.4.1 bump (main base, do not merge)#4049
Draft
ipdae wants to merge 1 commit into
Draft
Conversation
The fork (Planetarium.NetMQ 4.0.0.261-planetarium) hasn't received upstream changes since 2021-04 — 124 commits behind zeromq/netmq master. Production observation on Heimdall mainnet (2026-05): heimdall validator crashes with Exit 139 due to NullReferenceException at NetMQ.Core.Transports.StreamEngine.MechanismReady() during timeout cleanup of a peer connection. Pattern repeats every ~2h, accumulating NetMQ broadcast-timeout state on remote-headless and surfacing as user-visible tx staging timeouts. The fork's distinctive contributions (ReceiveMultipartMessageAsync + cancellation support, AsyncReceiveExtensions improvements) have already been merged into upstream 4.0.x — verified via API signature comparison. This branch swaps the package reference to upstream NetMQ 4.0.4.1 so CI (check-build + CircleCI test suite) can validate compilation, API compatibility, and unit-test pass against the upstream library. This is intentionally a minimal change — no Libplanet code modified — to isolate the question of whether Libplanet.Net builds + passes its NetMQ-related tests against the upstream package. Not meant for merge until benchmarks-pr / NetMQTransportTest / TransportTest results are reviewed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Draft / test-only — do not merge. This PR exists solely to trigger CI (check-build + CircleCI test suite) against the upstream NetMQ package and check whether `Libplanet.Net` compiles and passes its NetMQ-related tests.
Context
`Planetarium.NetMQ 4.0.0.261-planetarium` is a Planetarium fork last touched 2021-04-22. It is currently 124 commits behind `zeromq/netmq` master (4.0.4.1, 2026-04-30).
The fork's distinctive contributions — `ReceiveMultipartMessageAsync` and `AsyncReceiveExtensions` cancellation support — were merged back into upstream NetMQ. API signature comparison against upstream master confirms identical method signatures and bodies for the methods Libplanet.Net depends on.
Production observation on Heimdall mainnet (2026-05): heimdall validator-5 segfaults (Exit 139) every ~2h with stack:
```
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at NetMQ.Core.Transports.StreamEngine.MechanismReady()
at NetMQ.Core.Transports.StreamEngine.ProcessHandshakeCommand(Msg& msg)
```
This NRE pattern is a known race-condition class in NetMQ's StreamEngine that has likely received fixes in upstream's 124 follow-up commits.
Change
One-line PackageReference swap in `src/Libplanet.Net/Libplanet.Net.csproj`:
```diff
```
No Libplanet code changes.
What CI proves
Companion branch
A parallel branch `yang/test-netmq-upstream-bump-552` performs the same change rebased on release tag 5.5.2 (the version NineChronicles.Headless currently consumes). If both CI runs are green, the swap is low-risk to adopt.
Out of scope