ISISComputingGroup / ISISComputingGroup/IBEX

BLOCKSVR: check PVs can be safely deleted and fix if not

Aperta
#2,849 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Nessun dato sulla lingua
Stelle
6
Fork
2
Merge medio
16h 40m
PR unite (30g)
2

Descrizione

This follows on from #2824 where there were issues with re-creating PVs that lead to them being deleted during an external read. The blockserver has code for deleting PVs, I expect for when a synoptic is deleted etc. It needs to be verified that calling such code does not also cause a similar crash. This could be tested by having multiple monitors / looped reads on a synoptic PV and then issuing a delete of this from python.

What I think might be a safer option (if possible) would be to recode the python delete to be run in a different thread. From #2824 it would seem that the read of the PV was running on the same thread as the delete, I'm guessing the main interpreter thread, so the C++ locking didn't protect. If the delete could be run on a different thread, then it would wait in C++ until the read had finished.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Esamina il codice di eliminazione dei PV di blockserver e il problema correlato descritto in #2824. Riproduci lo scenario con più monitor o letture ripetute su un PV synoptic, quindi avviane l’eliminazione da Python. Il lavoro è completato quando l’eliminazione non causa più un arresto anomalo e le letture concorrenti e l’eliminazione sono coordinate in modo sicuro.

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

Valutazione

Stack tecnologico
cpp, python
Ambito
backend, testing-qa
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.