plugeth/rpc
Felix Lange 8d815e365c rpc: fix rare deadlock when canceling HTTP call context (#19715)
When cancelling the context for a call on a HTTP-based client while the
call is running, the select in requestOp.wait may hit the <-context.Done()
case instead of the <-op.resp case. This doesn't happen often -- our
cancel test hasn't caught this even though it ran thousands of times
on CI since the RPC client was added.

Fixes #19714
2019-06-20 09:36:27 +03:00
..
testdata rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
client_example_test.go rpc: fix example typo (#18100) 2018-11-14 12:21:10 +02:00
client_test.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
client.go rpc: fix rare deadlock when canceling HTTP call context (#19715) 2019-06-20 09:36:27 +03:00
constants_unix_nocgo.go accounts, p2p, rpc: make CGO_ENABLED=0 build again (#19593) 2019-05-26 01:07:10 +03:00
constants_unix.go accounts, p2p, rpc: make CGO_ENABLED=0 build again (#19593) 2019-05-26 01:07:10 +03:00
doc.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
endpoints.go rpc: make HTTP RPC timeouts configurable, raise defaults (#17240) 2018-07-31 12:16:14 +03:00
errors.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
handler.go rpc: cancel root context after all requests are served (#19430) 2019-04-10 11:47:09 +03:00
http_test.go rpc: enforce the 128KB request limits on websockets too 2018-03-13 13:55:26 +02:00
http.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
inproc.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
ipc_js.go ethdb, rpc: support building on js/wasm (#17709) 2018-10-16 00:47:25 +02:00
ipc_unix.go accounts, p2p, rpc: make CGO_ENABLED=0 build again (#19593) 2019-05-26 01:07:10 +03:00
ipc_windows.go all: import "context" instead of "golang.org/x/net/context" 2017-03-22 20:49:15 +01:00
ipc.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
json.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
server_test.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
server.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
service.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
stdio.go rpc: make stdio usable over custom channels (#19046) 2019-02-12 18:05:28 +01:00
subscription_test.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
subscription.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
testservice_test.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
types_test.go all: update license information (#16089) 2018-02-14 13:49:11 +01:00
types.go rpc: implement full bi-directional communication (#18471) 2019-02-04 13:47:34 +01:00
websocket_test.go rpc: enable basic auth for websocket client (#17699) 2018-09-19 18:09:03 +02:00
websocket.go rpc: fixup change to not verify websocket origin (#19128) 2019-02-19 12:58:32 +02:00