Project

General

Profile

Actions

Bug #10008

open

[SDKs] [Python] When reading data through Collection et al., signatures should refresh automatically when needed

Added by Tom Clegg over 7 years ago. Updated about 2 months ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
SDKs
Target version:
Story points:
-
Release:
Release relationship:
Auto

Description

Background

TokenExpiryTest in source:services/fuse/tests/test_mount.py is slow and unreliable because it relies on sleep(). (fixed)

There is signature-refreshing logic ("re-fetch collection from API server before signatures expire") in arv-mount. However:
  • It checks expiry times only when a file is opened. If a file is left open for a long time, reading from the file will eventually stop working.
  • Other programs using the Python SDK need the same auto-refresh behavior for the same reasons as arv-mount, but no facility is provided.

Proposed fix

Implement manifest-refreshing logic in the Python SDK. Reading from a file should always work:
  • regardless of how much time passes between instantiating the Collection, opening a file, writing, and reading.
  • regardless of whether the collection is writable or not, and regardless of whether it is referenced by PDH or UUID.

This will make the arv-mount token-refresh mechanism (added in notes 4-6 here) redundant, so that can be reverted.


Subtasks 1 (0 open1 closed)

Task #10330: Review 10008-check-token-exp-on-openResolvedTom Clegg09/12/2016Actions

Related issues

Related to Arvados - Bug #6833: [FUSE] arv-mount caches manifests too long, ends up using expired Keep signaturesResolvedPeter Amstutz07/30/2015Actions
Actions

Also available in: Atom PDF