Restore sessions issues
Goal
Fix issues:
- Duplicate messages if assistant has multiple channels and several active sessions (see attach: 2021-08-18_20-34)
- "Noisy" output while stop idle Slack-session
2021/08/18 13:20:17 [DEBUG] Session idle: %v %v &{{UXXXXXXA user Firstname Lastname {6074 CXXXXXE10 false {{0 0 <nil>} 0 0 0} 2021-08-18 13:05:20.985750215 +0000 UTC 0 0xc0002dab40 {test 127.0.0.1 6002 joe_artyom 6xxxxxxxqL prefer} 0xc00024eb40}} {6074 CXXXXXE10 false {{0 0 <nil>} 0 0 0} 2021-08-18 13:05:20.985750215 +0000 UTC 0 0xc0002dab40 {test 127.0.0.1 6002 joe_artyom 6xxxxxxxqL prefer} 0xc00024eb40} Close Lock wait for idle resources &pgxpool.connResource{conn:(*pgx.Conn)(0xc000363c20), conns:[]pgxpool.Conn{pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil)}, pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(n il)}, pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil)}, pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil)}, pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil )}, pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil)}, pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil)}, pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil)} , pgxpool.Conn{res:(*puddle.Resource)(nil), p:(*pgxpool.Pool)(nil)}, pgxpool.Conn{res:(*puddle.Resource)(nil), ... two screen the same content ... nil), c:(*pgxpool.Conn)(nil), err:error(nil)}, pgxpool.poolRows{r:pgx.Rows(nil), c:(*pgxpool.Conn)(nil), err:error(nil)}}}! Unlock - idle sessions are handled incorrectly during restart
Example: - Run Joe Bot instance and start a new session - Restart Joe Bot instance (sessions are restored) - DLE detects an idle session and remove it - Joe Bot skips checking the session because it looks too "fresh", but users get errors performing commandsDLE logs: 2021/08/19 10:50:14 [DEBUG] Not found recent activity for the session: "17". Clone name: "dblab_clone_6000" 2021/08/19 10:50:14 [DEBUG] Check an active query for: "17". 2021/08/19 10:50:14 [INFO] Idle clone "joe-c4f37r3ri60s46lefha0" is going to be removed. 2021/08/19 10:50:14 [DEBUG] Stopping Postgres container... 2021/08/19 10:50:15 [DEBUG] Run(Local): "rm -rf /var/lib/dblab/dblab_pool/sockets/dblab_clone_6000/*" 2021/08/19 10:50:15 [DEBUG] Run(Local): "zfs destroy -R dblab_pool/dblab_clone_6000" Joe Bot logs: 2021/08/19 10:47:50 [DEBUG] Set up channel: dev__maindb 2021/08/19 10:47:50 [DEBUG] Restore sessions webui 2021/08/19 10:47:50 [DEBUG] Set up channel: dev_no_pii__seconddb 2021/08/19 10:47:50 [DEBUG] Restore sessions webui 2021/08/19 10:47:50 [INFO] Server start listening on 0.0.0.0:3001 ... 2021/08/19 10:53:07 [ERROR] RunnerError(cmd="psql --host=127.0.0.1 --port=6000 --user="joe_bot" --dbname="test" -X -f /tmp/psql-query-556233865", inerr="exit status 2", stderr="psql: could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 6000? " exit="2") 2021/08/19 10:53:07 [ERROR] psql error: psql: could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 6000?
TODO / How to implement
Acceptance criteria
Edited by Artyom Kartasov