8281: Fix arv-mount ignoring --retries argument when writing file data.
authorTom Clegg <tom@curoverse.com>
Thu, 21 Jan 2016 09:01:16 +0000 (04:01 -0500)
committerTom Clegg <tom@curoverse.com>
Thu, 21 Jan 2016 21:11:36 +0000 (16:11 -0500)
commitb73a5d296669ae58c8cd5a7d2e1aedd19f0c0029
tree052875543d129a96abd93e9ec90118709162ab61
parent44ff73fa397095d69819761e66933783a5f6d541
8281: Fix arv-mount ignoring --retries argument when writing file data.

"num_retries" arguments get passed around extensively in arvfile.py
and collection.py in the Python SDK, but ultimately the writing of
file data is done by a _BlockManager which doesn't have any way to
accept that argument or pass it along to a KeepClient, so PUT requests
always use the CollectionWriter's KeepClient's default num_retries.

In arv-mount's case, we have been telling CollectionWriter the
num_retries we want. When CollectionWriter creates a KeepClient,
num_retries gets passed along -- normally this works around the fact
that num_retries gets lost by the _BlockManager layer. However, we
provided our own KeepClient to use instead of letting CollectionWriter
create one, and we forgot to set num_retries on our own KeepClient, so
we weren't retrying PUT requests.
services/fuse/arvados_fuse/command.py
services/fuse/arvados_fuse/fusedir.py
services/fuse/tests/test_retry.py [new file with mode: 0644]