ISISComputingGroup / ISISComputingGroup/IBEX

CaChannel: investigate behaviour with multiple threads

Aperta
#4,276 1 commento 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

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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.