Skip to content

rpc: use synctest for TestClientCancelHTTP to fix CI flakiness#20368

Merged
AskAlexSharov merged 1 commit intorelease/3.4from
alex/race_test_34
Apr 7, 2026
Merged

rpc: use synctest for TestClientCancelHTTP to fix CI flakiness#20368
AskAlexSharov merged 1 commit intorelease/3.4from
alex/race_test_34

Conversation

@AskAlexSharov
Copy link
Copy Markdown
Collaborator

@AskAlexSharov AskAlexSharov commented Apr 7, 2026

Replace real TCP connections with in-memory net.Pipe-based listener for the HTTP cancel test, wrapped in synctest.Test for deterministic fake-time execution. The test now runs in ~0s instead of timing out on slow CI runners.

WebSocket cancel test keeps real TCP due to complex goroutine shutdown dependencies incompatible with synctest's bubble requirements.

err:

[WARN] [04-07|01:51:47.496] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.496] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.497] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.512] [rpc] served                             method=test_returnError reqid=1 err=testError errdata="testError data"
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.515] [rpc] served                             method=no_such_method reqid=3 err="the method no_such_method does not exist/is not available"
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.517] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.517] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.518] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.519] [rpc] served                             method=eth_subscribe reqid=1 err="no \"foo_bar\" subscription in eth namespace"
[WARN] [04-07|01:51:47.519] [rpc] served                             method=eth_subscribe reqid=2 err="no \"foo_bar\" subscription in eth namespace"
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.523] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.523] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.524] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.740] [rpc] served                             method=unknown_method reqid=2 err="the method unknown_method does not exist/is not available"
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.746] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 0"
[WARN] [04-07|01:52:32.746] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.747] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.747] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.748] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 0"
[WARN] [04-07|01:52:32.748] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 1"
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.751] [rpc] served                             method=test_echo reqid=3 err="non-array args"
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.753] [rpc] served                             method=invalid_method reqid=2 err="the method invalid_method does not exist/is not available"
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
--- FAIL: TestClientCancelWebsocket (1.00s)
panic: read tcp 127.0.0.1:59236->127.0.0.1:33899: read: connection reset by peer [recovered, repanicked]

goroutine 66 [running]:
testing.tRunner.func1.2({0x117cd40, 0xc000059720})
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1872 +0x419
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1875 +0x683
panic({0x117cd40?, 0xc000059720?})
	/opt/hostedtoolcache/go/1.25.8/x64/src/runtime/panic.go:783 +0x132
github.com/erigontech/erigon/rpc.httpTestClient(0xc000324180, {0x11fcef1, 0x2}, 0xc000059120)
	/home/runner/work/erigon/erigon/rpc/client_test.go:619 +0x6b9
github.com/erigontech/erigon/rpc.testClientCancel({0x11fcef1, 0x2}, 0xc000102e00, {0x136dd10, 0xc000300c60})
	/home/runner/work/erigon/erigon/rpc/client_test.go:206 +0x256
github.com/erigontech/erigon/rpc.TestClientCancelWebsocket(0xc000102e00)
	/home/runner/work/erigon/erigon/rpc/client_test.go:166 +0x58
testing.tRunner(0xc000102e00, 0x1241000)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1934 +0x21d
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1997 +0x9d3

goroutine 1 [chan receive]:
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1891 +0x9ad
testing.tRunner(0xc00037e1c0, 0xc000053ae0)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1940 +0x256
testing.runTests(0xc00035c3c0, {0x198f6a0, 0x28, 0x28}, {0x0?, 0x4bba45?, 0x1999960?})
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:2475 +0x96d
testing.(*M).Run(0xc00037a140)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:2337 +0xed5
main.main()
	_testmain.go:129 +0x165

goroutine 37 [chan receive]:

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates RPC client cancellation testing to reduce CI flakiness by making the HTTP-path test deterministic and in-memory while keeping the WebSocket-path test on real TCP due to shutdown constraints.

Changes:

  • Refactors testClientCancel to split HTTP (synctest + in-memory listener) vs WS (real TCP) implementations.
  • Introduces memListener + memHTTPTestClient (net.Pipe-based) to avoid real networking in the HTTP cancel test.
  • Extracts the concurrent cancel-caller logic into runCancelCallers for reuse across transports.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread rpc/client_test.go
Comment thread rpc/client_test.go
Comment thread rpc/client_test.go Outdated
Replace real TCP connections with in-memory net.Pipe-based listener
for the HTTP cancel test, wrapped in synctest.Test for deterministic
fake-time execution. The test now runs in ~0s instead of timing out
on slow CI runners.

WebSocket cancel test keeps real TCP due to complex goroutine shutdown
dependencies incompatible with synctest's bubble requirements.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread rpc/client_test.go
@AskAlexSharov AskAlexSharov merged commit f237b9d into release/3.4 Apr 7, 2026
26 checks passed
@AskAlexSharov AskAlexSharov deleted the alex/race_test_34 branch April 7, 2026 06:49
AskAlexSharov added a commit that referenced this pull request Apr 8, 2026
Replace real TCP connections with in-memory net.Pipe-based listener for
the HTTP cancel test, wrapped in synctest.Test for deterministic
fake-time execution. The test now runs in ~0s instead of timing out on
slow CI runners.

WebSocket cancel test keeps real TCP due to complex goroutine shutdown
dependencies incompatible with synctest's bubble requirements.

err: 
```
[WARN] [04-07|01:51:47.496] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.496] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.497] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.512] [rpc] served                             method=test_returnError reqid=1 err=testError errdata="testError data"
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.515] [rpc] served                             method=no_such_method reqid=3 err="the method no_such_method does not exist/is not available"
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.517] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.517] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.518] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.519] [rpc] served                             method=eth_subscribe reqid=1 err="no \"foo_bar\" subscription in eth namespace"
[WARN] [04-07|01:51:47.519] [rpc] served                             method=eth_subscribe reqid=2 err="no \"foo_bar\" subscription in eth namespace"
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.523] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.523] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.524] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.740] [rpc] served                             method=unknown_method reqid=2 err="the method unknown_method does not exist/is not available"
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.746] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 0"
[WARN] [04-07|01:52:32.746] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.747] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.747] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.748] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 0"
[WARN] [04-07|01:52:32.748] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 1"
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.751] [rpc] served                             method=test_echo reqid=3 err="non-array args"
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.753] [rpc] served                             method=invalid_method reqid=2 err="the method invalid_method does not exist/is not available"
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value 
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3 
--- FAIL: TestClientCancelWebsocket (1.00s)
panic: read tcp 127.0.0.1:59236->127.0.0.1:33899: read: connection reset by peer [recovered, repanicked]

goroutine 66 [running]:
testing.tRunner.func1.2({0x117cd40, 0xc000059720})
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1872 +0x419
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1875 +0x683
panic({0x117cd40?, 0xc000059720?})
	/opt/hostedtoolcache/go/1.25.8/x64/src/runtime/panic.go:783 +0x132
github.com/erigontech/erigon/rpc.httpTestClient(0xc000324180, {0x11fcef1, 0x2}, 0xc000059120)
	/home/runner/work/erigon/erigon/rpc/client_test.go:619 +0x6b9
github.com/erigontech/erigon/rpc.testClientCancel({0x11fcef1, 0x2}, 0xc000102e00, {0x136dd10, 0xc000300c60})
	/home/runner/work/erigon/erigon/rpc/client_test.go:206 +0x256
github.com/erigontech/erigon/rpc.TestClientCancelWebsocket(0xc000102e00)
	/home/runner/work/erigon/erigon/rpc/client_test.go:166 +0x58
testing.tRunner(0xc000102e00, 0x1241000)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1934 +0x21d
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1997 +0x9d3

goroutine 1 [chan receive]:
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1891 +0x9ad
testing.tRunner(0xc00037e1c0, 0xc000053ae0)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1940 +0x256
testing.runTests(0xc00035c3c0, {0x198f6a0, 0x28, 0x28}, {0x0?, 0x4bba45?, 0x1999960?})
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:2475 +0x96d
testing.(*M).Run(0xc00037a140)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:2337 +0xed5
main.main()
	_testmain.go:129 +0x165

goroutine 37 [chan receive]:
```
github-merge-queue bot pushed a commit that referenced this pull request Apr 10, 2026
## Summary
Cherry-pick of release/3.4 PRs:
- #20368 rpc: use synctest for TestClientCancelHTTP to fix CI flakiness
- #20373 integrity: blk/sec fix
- #20372 execution/state: use index-based range over log topics to avoid
copy
- #20367 fix: preserve stored chain config when genesis hash doesn't
match known chain
- #20374 ParseVersion: optimize
- #20369 batchSize: more precise estimate
- #20399 hive: pin more things

---------

Co-authored-by: erigon-copilot[bot] <265817861+erigon-copilot[bot]@users.noreply.github.com>
Co-authored-by: root <giulio.rebuffo@gmail.com>
Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Muzry <muzrry@gmail.com>
Co-authored-by: muzry.li <muzry.li1@ambergroup.io>
Co-authored-by: Andrew Ashikhmin <34320705+yperbasis@users.noreply.github.com>
Co-authored-by: info@weblogix.biz <admin@10gbps.weblogix.it>
AskAlexSharov added a commit that referenced this pull request Apr 18, 2026
Replace real TCP connections with in-memory net.Pipe-based listener for
the HTTP cancel test, wrapped in synctest.Test for deterministic
fake-time execution. The test now runs in ~0s instead of timing out on
slow CI runners.

WebSocket cancel test keeps real TCP due to complex goroutine shutdown
dependencies incompatible with synctest's bubble requirements.

err:
```
[WARN] [04-07|01:51:47.496] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.496] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.497] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.507] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.510] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.512] [rpc] served                             method=test_returnError reqid=1 err=testError errdata="testError data"
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.513] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.515] [rpc] served                             method=no_such_method reqid=3 err="the method no_such_method does not exist/is not available"
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.516] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.517] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.517] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.518] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.519] [rpc] served                             method=eth_subscribe reqid=1 err="no \"foo_bar\" subscription in eth namespace"
[WARN] [04-07|01:51:47.519] [rpc] served                             method=eth_subscribe reqid=2 err="no \"foo_bar\" subscription in eth namespace"
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.520] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.523] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.523] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.524] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.527] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:47.563] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:56.015] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:56.019] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:56.103] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:51:58.107] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.735] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.737] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.738] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.740] [rpc] served                             method=unknown_method reqid=2 err="the method unknown_method does not exist/is not available"
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.741] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.743] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.744] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.745] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.746] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 0"
[WARN] [04-07|01:52:32.746] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.747] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.747] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.748] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 0"
[WARN] [04-07|01:52:32.748] [rpc] served                             method=test_echo reqid=2 err="missing value for required argument 1"
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.750] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.751] [rpc] served                             method=test_echo reqid=3 err="non-array args"
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.751] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.752] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.753] [rpc] served                             method=invalid_method reqid=2 err="the method invalid_method does not exist/is not available"
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.754] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.755] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.757] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.758] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.760] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:32.771] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets1] - error must the last return value
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets2] - error must the last return value
[WARN] [04-07|01:52:44.363] Cannot register RPC callback [invalidRets3] - maximum 2 return values are allowed, got 3
--- FAIL: TestClientCancelWebsocket (1.00s)
panic: read tcp 127.0.0.1:59236->127.0.0.1:33899: read: connection reset by peer [recovered, repanicked]

goroutine 66 [running]:
testing.tRunner.func1.2({0x117cd40, 0xc000059720})
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1872 +0x419
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1875 +0x683
panic({0x117cd40?, 0xc000059720?})
	/opt/hostedtoolcache/go/1.25.8/x64/src/runtime/panic.go:783 +0x132
github.com/erigontech/erigon/rpc.httpTestClient(0xc000324180, {0x11fcef1, 0x2}, 0xc000059120)
	/home/runner/work/erigon/erigon/rpc/client_test.go:619 +0x6b9
github.com/erigontech/erigon/rpc.testClientCancel({0x11fcef1, 0x2}, 0xc000102e00, {0x136dd10, 0xc000300c60})
	/home/runner/work/erigon/erigon/rpc/client_test.go:206 +0x256
github.com/erigontech/erigon/rpc.TestClientCancelWebsocket(0xc000102e00)
	/home/runner/work/erigon/erigon/rpc/client_test.go:166 +0x58
testing.tRunner(0xc000102e00, 0x1241000)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1934 +0x21d
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1997 +0x9d3

goroutine 1 [chan receive]:
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1891 +0x9ad
testing.tRunner(0xc00037e1c0, 0xc000053ae0)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1940 +0x256
testing.runTests(0xc00035c3c0, {0x198f6a0, 0x28, 0x28}, {0x0?, 0x4bba45?, 0x1999960?})
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:2475 +0x96d
testing.(*M).Run(0xc00037a140)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:2337 +0xed5
main.main()
	_testmain.go:129 +0x165

goroutine 37 [chan receive]:
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants