diff options
author | Nick Vatamaniuc <vatamane@apache.org> | 2020-06-02 16:57:35 -0400 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2020-06-02 17:11:25 -0400 |
commit | b3fe0902683af5c65813cb0623a791cd8d9b8873 (patch) | |
tree | 3096d2d186e348ffc68dbc88e00b559ba77b8b5a | |
parent | 9f8b4fdb26414b556edeaaa1d56bf13d418e0c87 (diff) | |
download | couchdb-b3fe0902683af5c65813cb0623a791cd8d9b8873.tar.gz |
Handle error:{timeout, _} exception in couch_jobs:accept
Under load accept loop can blow up with timeout error from
`erlfdb:wait(...)`(https://github.com/apache/couchdb-erlfdb/blob/master/src/erlfdb.erl#L255)
so guard against it just like we do for fdb transaction timeout (1031) errors.
-rw-r--r-- | src/couch_jobs/src/couch_jobs.erl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/couch_jobs/src/couch_jobs.erl b/src/couch_jobs/src/couch_jobs.erl index adc1b464e..5f79407c5 100644 --- a/src/couch_jobs/src/couch_jobs.erl +++ b/src/couch_jobs/src/couch_jobs.erl @@ -300,6 +300,8 @@ accept_loop(Type, NoSched, MaxSchedTime, Timeout) -> AcceptResult = try couch_jobs_fdb:tx(couch_jobs_fdb:get_jtx(), TxFun) catch + error:{timeout, _} -> + retry; error:{erlfdb_error, Err} when Err =:= 1020 orelse Err =:= 1031 -> retry end, |