ISISComputingGroup / ISISComputingGroup/IBEX
CaChannel: investigate behaviour with multiple threads
- Lingua principale
- Nessun dato sulla lingua
- Stelle
- 6
- Fork
- 2
- Merge medio
- 16h 40m
- PR unite (30g)
- 2
Descrizione
As a developer I believe I have seen a segmentation fault / heap corruption issue while running python code which looks like:
```
from CaChannel import CaChannel, ca
import threading
c = CaChannel("TE:NDW1799:DAE:RUNSTATE") # A string PV
c.search_and_connect(None, lambda *a, **k: None, None)
threads = [threading.Thread(target=c.getw, args=(ca.DBR_STRING, )) for _ in range(1000)]
for thread in threads:
thread.start()
for thread in threads:
thread.join()
print("Exited normally, crash did not occur.")
```
My suspicion is that this is a bug in CaChannel but I'm not completely sure. This caused an issue for LET (see https://github.com/ISISComputingGroup/IBEX/issues/4102 ).
Acceptance criteria:
- [ ] Cause of bug is understood
- [ ] Bug is fixed (or raised to the author of CaChannel if appropriate)
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia eseguendo il reproducer di CaChannel con thread riportato nell'issue e osserva se il segmentation fault o la corruzione dell'heap sono riproducibili. Analizza il comportamento di CaChannel in presenza di chiamate getw concorrenti e determina se il fix debba essere apportato in IBEX o upstream. Il lavoro è completato quando la causa è stata compresa e il bug è stato corretto o segnalato all'autore di CaChannel.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- networking
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100