• Felix Lange's avatar
    rpc: attempt to fix ping/pong logic race (#27733) · 8f8ef2bc
    Felix Lange authored
    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.
    Unverified
    8f8ef2bc
Name
Last commit
Last update
..
testdata rpc: add limit for batch request items and response size (#26681)
client.go rpc: add method to test for subscription support (#25942)
client_example_test.go rpc: make ExampleClientSubscription work with the geth API (#19483)
client_opt.go rpc: add limit for batch request items and response size (#26681)
client_opt_test.go node, rpc: add JWT auth support in client (#24911)
client_test.go rpc: add limit for batch request items and response size (#26681)
context_headers.go rpc: support injecting HTTP headers through context (#26023)
doc.go build: upgrade to go 1.19 (#25726)
endpoints.go trie, rpc, cmd/geth: fix tests on 32-bit and windows + minor rpc fixes (#21871)
errors.go rpc: add method to test for subscription support (#25942)
handler.go rpc: add method to test for subscription support (#25942)
http.go rpc: add limit for batch request items and response size (#26681)
http_test.go metrics/librato: ensure resp.body closed (#26969)
inproc.go rpc: add limit for batch request items and response size (#26681)
ipc.go rpc: add limit for batch request items and response size (#26681)
ipc_js.go all: add go:build lines (#23468)
ipc_unix.go rpc: avoid use of cgo by hard-coding maxPathSize (#27447)
ipc_windows.go all: add go:build lines (#23468)
json.go graphql, node, rpc: improve HTTP write timeout handling (#25457)
metrics.go rpc: swap out timer metrics to histograms
server.go rpc: add limit for batch request items and response size (#26681)
server_test.go rpc: add limit for batch request items and response size (#26681)
service.go rpc: more accurate checking of handler method signatures (#27287)
stdio.go rpc: add limit for batch request items and response size (#26681)
subscription.go rpc: add method to test for subscription support (#25942)
subscription_test.go rpc: check that "version" is "2.0" in request objects (#25570)
testservice_test.go rpc: fix unmarshaling of null result in CallContext (#26723)
types.go rpc: change BlockNumber constant values to match ethclient (#27219)
types_test.go rpc: add BlockNumber.MarshalText (#23324)
websocket.go rpc: attempt to fix ping/pong logic race (#27733)
websocket_test.go rpc, internal/guide: speed up tests a bit (#26193)