HomePhabricator

Add a -rpckeepalive and disable RPC use of HTTP persistent connections.
16a5c18cea73Unpublished

Unpublished Commit ยท Learn More

Repository Importing: This repository is still importing.

Description

Add a -rpckeepalive and disable RPC use of HTTP persistent connections.

It turns out that some miners have been staying with old versions of
Bitcoin Core because their software behaves poorly with persistent
connections and the Bitcoin Core thread and connection limits.

What happens is that underlying HTTP libraries leave connections open
invisibly to their users and then the user runs into the default four
thread limit. This looks like Bitcoin Core is unresponsive to RPC.

There are many things that should be improved in Bitcoin Core's behavior
here, e.g. supporting more concurrent connections, not tying up threads
for idle connections, disconnecting kept-alive connections when limits
are reached, etc. All are fairly big, risky changes.

Disabling keep-alive is a simple workaround. It's often not easy to turn
off the keep-alive support in the client where it may be buried in some
platform library.

If you are one of the few who really needs persistent connections you
probably know that you want them and can find a switch; while if you
don't and the misbehavior is hitting you it is hard to discover the
source of your problems is keepalive related. Given that it is best
to default to off until they're handled better.

Details

Provenance
Gregory Maxwell <greg@xiph.org>Authored on Jan 14 2015, 01:43
schancelPushed on Jan 5 2018, 21:58
schancelPushed on Jan 5 2018, 21:39
schancelPushed on Jan 5 2018, 21:17
Parents
rSTAGINGd1aa3c67f027: Merge pull request #5489
Branches
Unknown
Tags
Unknown

Event Timeline