InMemoryAccountInfo is not threadsafe

Aperta
#175 13 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
18/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python
Ambito
api, cloud

Direzione di ricerca

The traceback points to b2sdk/account_info/in_memory.py, where the decorator raises MissingAccountData when a getter such as get_allowed runs before its value is stored, and to check_bucket_restrictions in b2sdk/api.py, which calls it. Start by working out which code path can reach get_allowed with an empty in-memory cache, then decide whether the fix is to populate the value or to fail more clearly. Done means the scenario no longer raises unexpectedly or has a documented, tested error path. The title mentions thread safety but the body does not show a race, so confirm that first.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug help wanted

Hi,

My application has thrown this exception and the cause or mitigation is unclear. This did not occur at application startup. Nothing has changed with regards to access for that key.

I have used the InMemoryAccountInfo class, so my guess is that this is the result of a stale entry?

But am unsure how to diagnose. The documentation is sparse on this respect.

Any insight on what this could mean is appreciated :-)

MissingAccountData: Missing account data: allowed (3 additional frame(s) were not displayed) ... File "django_backblaze_b2/storage.py", line 74, in _getOrCreateBucket self._bucket = self.b2Api.get_bucket_by_name(self._bucketName) File "b2sdk/api.py", line 251, in get_bucket_by_name self.check_bucket_restrictions(bucket_name) File "logfury/v0_1/trace_call.py", line 84, in wrapper return function(*wrapee_args, **wrapee_kwargs) File "b2sdk/api.py", line 445, in check_bucket_restrictions allowed = self.account_info.get_allowed() File "b2sdk/account_info/in_memory.py", line 28, in inner raise MissingAccountData(function.__name__[4:])
Lingua principale
Python
Stelle
214
Fork
68
Merge medio
51m
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Backblaze/b2-sdk-python

Tutte le issue di Backblaze/b2-sdk-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.