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

Aberta Para iniciantes
#175 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
74/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Comece em workspace.py, em Workspace._check_reads, e acompanhe como _source_spec e _bindings lidam com um registro referenciado cuja spec não está vinculada. Confira os testes de erro de envio e o caminho de reinicialização para registros pendentes. O trabalho estará concluído quando o envio informar um SubmitError que identifique o parâmetro e a spec ausente; em caso de falha na reinicialização, a issue permite o mesmo motivo ou a recusa em abrir.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Python
Estrelas
0
Forks
1
Merge médio
8h 48min
PRs com merge (30d)
70

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de scipp/essapps

Todas as issues de scipp/essapps

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.