A reference to a record of a spec the workspace does not run raises a bare KeyError

Ouverte Adaptée aux débutants
#175 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
74/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
backend

Piste de recherche

Commencez dans workspace.py, à Workspace._check_reads, et suivez la manière dont _source_spec et _bindings traitent un enregistrement référencé dont la spec n’est pas liée. Vérifiez les tests d’erreur de soumission et le chemin de redémarrage pour les enregistrements en attente. Le travail est terminé lorsque la soumission signale un SubmitError indiquant le paramètre et la spec manquante ; en cas d’échec du redémarrage, l’issue permet soit le même motif, soit un refus de s’ouvrir.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

A request that references a record whose spec the workspace does not run is refused with a bare KeyError, not a SubmitError with a reason:

# workspace A runs DETECTOR and MASKS and persists a detector record.
# workspace B is opened on the same log and store, with MASKS only.
client_b.submit(MASKS, params={'detector': detector.ref('detector'), ...})
# KeyError: SpecId(name='loki-calibrated-detector', version=1)

The lookup is in Workspace._check_reads (workspace.py):

source = self._source_spec(ref, loc, also)
check_fit(self._bindings[source].spec, ref, tp, loc)

The same missing binding has a second effect: a workspace that restarts with pending records of a spec it does not run fails each of them with the reason KeyError: SpecId(...).

Expected: the submit is refused with a SubmitError that names the parameter and says the workspace does not run the spec of the referenced record. For the restart, either the same reason on the failed record, or a refusal to open.

Found while reviewing #174. essapps-batch requires --bind so that the usual way to reach this is closed, but any workspace opened with fewer bindings than its log has specs can reach it.

Langage dominant
Python
Étoiles
0
Forks
1
Merge moyen
8 h 48 min
PR mergées (30 j)
70

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de scipp/essapps

Toutes les issues de scipp/essapps

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.