ISISComputingGroup / ISISComputingGroup/IBEX
BLOCKSVR: check PVs can be safely deleted and fix if not
- 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