Re: Script python se termina cateodata cu "Exception in thread Thread-1 (most likely raised during interpreter shutdown):"
Mihai Osian <[email protected]>
| Newsgroups | gmane.org.user-groups.rlug.offtopic |
|---|---|
| Message-ID | <[email protected]> |
On 01/09/2017 10:22 AM, Paul Lacatus (Personal) wrote: > LA multi ani pe 2017! > > Am o intrebare cu referire la un programel python care ruleaza pe un > Raspberry pi . Programelul este lansat la fiecare minut din Crontab . > Job-ul lui este sa citeasca date dintr-un device pe MODBUS RTU sa le > stocheze intr-un fisier si apoi sa le transmita catre un Broker MQTT ( > mosquitto) folosind paho_mqtt . Din cand in cand , cam 50% din cazuri , > se termina cu exceptia "Exception in thread Thread-1 (most likely raised > during interpreter shutdown):" . Nu pare sa afecteze functionalitatea > scriptului desi datele in brokerul MQTT nu par a ajunge chiar toate > dar inca nu stiu pe cine sa dau vina , Raspberry pi e conectat la > reteaua GPRS Vodafone cu un stick de date . > > Mai intii vreau sa inteleg ce inseamna exceptia respctiva , pentru ca nu > m-am lamurit pe ce am gasit pe net . > > Apoi sa vad cum testez mai in detaliu comunicatia cu MQTT > > _______________________________________________ Habar n-am cu ce se mananca mosquitto, dar probleme gen "exception during shutdown" imi suna familiar. As sugera sa verifici daca scriptul face cleanup la libraria MQTT inainte sa se termine. E posibil sa ai un race-condition intre threadul principal si ala/alea din bucataria interna MQTT. Threadul principal se termina si cheama diverse rutine de clean-up (de exemplu distruge shared memory segments, file descriptors, whatever), fara sa stie despre sau sa astepte threadul muncitor din background. Threadul din background incearca sa acceseze oarice resursa care a disparut si crapa. Deci: verifica daca ai inchis toate conexiunile si oprit background processing loops, sau daca orice rutina de initializare pe care o foloseste scriptul are si o pereche (absenta) care ar trebui sa faca cleanup. Hth, Mihai