go-ethereum/rpc
Felix Lange 8f8ef2bc0c
rpc: attempt to fix ping/pong logic race (#27733)
This should fix #27726. With enough load, it might happen that the SetPongHandler 
callback gets invoked before the call to SetReadDeadline is made in pingLoop. When 
this occurs, the socket will end up with a 30s read deadline even though it got the pong,
which will lead to a timeout.

The fix here is processing the pong on pingLoop, synchronizing with the code that 
sends the ping.
2023-08-11 15:16:45 +02:00
..
testdata rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
client.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
client_example_test.go rpc: make ExampleClientSubscription work with the geth API (#19483) 2020-04-27 17:25:24 +02:00
client_opt.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
client_opt_test.go node, rpc: add JWT auth support in client (#24911) 2022-09-02 17:40:41 +02:00
client_test.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
context_headers.go rpc: support injecting HTTP headers through context (#26023) 2022-11-16 15:22:12 +01:00
doc.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
endpoints.go trie, rpc, cmd/geth: fix tests on 32-bit and windows + minor rpc fixes (#21871) 2020-11-19 22:50:47 +01:00
errors.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
handler.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
http.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
http_test.go metrics/librato: ensure resp.body closed (#26969) 2023-03-27 07:44:41 -04:00
inproc.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
ipc.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
ipc_js.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
ipc_unix.go rpc: avoid use of cgo by hard-coding maxPathSize (#27447) 2023-06-19 08:06:58 +02:00
ipc_windows.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
json.go graphql, node, rpc: improve HTTP write timeout handling (#25457) 2022-12-07 14:02:14 +01:00
metrics.go rpc: swap out timer metrics to histograms 2022-06-08 16:24:33 +03:00
server.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
server_test.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
service.go rpc: more accurate checking of handler method signatures (#27287) 2023-05-17 12:27:51 +02:00
stdio.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
subscription.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
subscription_test.go rpc: check that "version" is "2.0" in request objects (#25570) 2022-09-02 17:47:29 +02:00
testservice_test.go rpc: fix unmarshaling of null result in CallContext (#26723) 2023-02-19 14:23:18 -05:00
types.go rpc: change BlockNumber constant values to match ethclient (#27219) 2023-05-23 13:18:38 +02:00
types_test.go rpc: add BlockNumber.MarshalText (#23324) 2021-08-25 19:30:29 +02:00
websocket.go rpc: attempt to fix ping/pong logic race (#27733) 2023-08-11 15:16:45 +02:00
websocket_test.go rpc, internal/guide: speed up tests a bit (#26193) 2022-11-17 15:30:53 +01:00