When a JDBC connection hangs on java.net.SocketInputStream.socketRead0(), the core wants to free the graph which isn't possible in this situation and due to org.jetel.connection.jdbc.DBConnectionImpl.closeConnection() and org.jetel.connection.jdbc.DBConnectionImpl.getConnection() are synchronized ( ? ) it gets stuck. This, however, leads to a situation where the core is unable to free all subsequent jobs. Rendering the Worker inoperable.
Possible solutions such as timeouts on the JDBC driver or JNDI pools might not be possible depending on the driver implementation.
We should introduce a mechanism to assure that other jobs can still be freed.
Details can be seen in the worker thread dump and all.log in some of the support packages in ticket 208215. For example in cloverdx-support-package_2020-02-06-06-48-49.zip.