Hi all,

Just a quick update. Tim was able to reproduce the problem and it is due to an 
issue when connect is called multiple times in a connection (it generates a 
zombie connection in the background than).

I consider this issue severe (we had it in prod yesterday).
I will make a Jira issue tomorrow and prepare a patch.

I suggest to release this as hotfix 0.4.1 ASAP.
Any opinions on that?

Julian

Von meinem Mobiltelefon gesendet


-------- Ursprüngliche Nachricht --------
Von: Julian Feinauer <[email protected]>
Datum: Mi., 3. Juli 2019, 19:58
An: [email protected]
Betreff: Possibly undefined behavior with PooledPlcDriverManager
Hi all,

in the last weeks we observed multiple times strange behavior when connecting 
to Siemens S7 devices.
We have not yet been able to trace it down entirely but I have the assumption 
that it is an issue with the PooledPlcDriverManager.

Whats the issue?
When doing requests (either via OPM or the “regular” API) we come at a point 
where all subsequent requests simply fail (and in some cases we were no longer 
able to send requests to the PLC from other instances, so it looks like the 
internal server went down).

Whats the setup?
When I remember correctly, all situations where this occurred used the Pool as 
Basis.
We had it both with OPM and the normal API but NOT with the Scraper.

I remember that I spent like a hole day at the Hackathon in Mallorca to get all 
timeout things to work correctly, as the S7 does not like when you simply 
cancel your request futures.
Currently there are two “suspects” from my side.

First, the pool calls the “.connect()” method on a now Connection it 
establishes but by API convention you also have to do that in your code so it 
gets called multiple times, which could fuck up stuff.
Second, connection can also time out (but its no future in our API) so in the 
Scraper I implemented it as Future with timeout (as I’m unsure how everything 
behaes if the pool starts to initialize a connection but then the “waitTime” 
times out and it abandons this).

Just wanted to share my thoughts with you… I hope I find some time the next 
days to set up a MWE and try it out.

Julian

Reply via email to