qorelanguage / qore

Qore Programming Language
GNU General Public License v2.0
58 stars 10 forks source link

deadlocks are possible with connection updates in the polling connection monitor #4860

Closed davidnich closed 7 months ago

davidnich commented 7 months ago

ex:

2023-11-18 18:34:29.059196 supah:3998226 T1 [ERROR]: System exception: /home/david/src/Qorus/current/qlib/ConnectionProvider/PollingConnectionMonitor.qc:188 (Qore): THREAD-DEADLO
CK: TID 18 and 1 have deadlocked trying to acquire the same resources
  AutoLock::constructor() called at /home/david/src/Qorus/current/qlib/ConnectionProvider/PollingConnectionMonitor.qc:188 (Qore builtin code)
  PollingConnectionMonitor::add() called at ConnectionsServer.qc:1213 (Qore user code)
  ConnectionsServer::startMonitoringIntern() called at ConnectionsServer.qc:981 (Qore user code)
  ConnectionsServer::reload() called at qorus-core.q:2751 (Qore user code)
  QorusApp::startQorus() called at qorus-core.q:697 (Qore user code)
  QorusApp::startQorusInitial() called at qorus-core.q:327 (Qore user code)
  QorusApp::constructor() called at <builtin>:-1 (Qore user code)