HBLink-org / hblink3

HBlink for Python3
GNU General Public License v3.0
66 stars 69 forks source link

HBlink crash (memory leak)? #5

Open K2IE opened 4 years ago

K2IE commented 4 years ago

2nd time in one week.

ERROR 2020-11-02 09:49:48,212 (GLOBAL) STOPPING REACTOR TO AVOID MEMORY LEAK: Unhandled error in timed loop. [Failure instance: Traceback: <class 'KeyError'>: 'LAST' /usr/local/lib/python3.7/dist-packages/twisted/internet/base.py:1283:run /usr/local/lib/python3.7/dist-packages/twisted/internet/base.py:1292:mainLoop /usr/local/lib/python3.7/dist-packages/twisted/internet/base.py:913:runUntilCurrent /usr/local/lib/python3.7/dist-packages/twisted/internet/task.py:239:call --- --- /usr/local/lib/python3.7/dist-packages/twisted/internet/defer.py:151:maybeDeferred /opt/hblink3/bridge.py:203:stream_trimmer_loop ] INFO 2020-11-02 09:49:48,219 (REPORT) HBlink reporting client disconnected: IPv4Address(type='TCP', host='127.0.0.1', port=51548)

K2IE commented 4 years ago

Another crash this afternoon. I have rolled back hblink3 to commit 08f6669bd315f8abb9bd80b5faad4cd43439c2f4 which is where I had it for some months and it was completely stable. Will monitor to see if this makes any difference.

picchiosat commented 3 years ago

Hi everyone, the Memory LEAK problem is already present since private calls were implemented. I had already reported to Cort about the problem (see https://dvswitch.groups.io/g/HBlink/message/1735). Blocks appear to come during incomplete transmissions of SMS or GPS locations. (usually to a private call)

randybuildsthings commented 3 years ago

I will keep this in the mix for now, as it needs to be looked at. Generally speaking, having the reactor kill itself rather than exhaust all memory in the system is admittedly a better solution for the moment, but detecting that a memory leak condition is happening is not better than avoiding it or correcting it as you go. So, I'll keep this open until there's time to look at the nature of the memory leak and if it's possible to set things up so that resources can be cleaned up and deallocated, so as to avoid the memory leak condition.