Open ETP server freeze
Hi,
I am testing my etp client against the latest open etp server image deployed on my own docker. It is a very simple run of open etp server without ssl with foo bar credential.
My test consists in putting a 2d Grid horizon using a script very similar to https://github.com/F2I-Consulting/fetpapi/blob/main/python/example/PutHorizon.ipynb
After a lot of tests, open-etp-server freezes. Here is the last logs (the two latest scripts run) I receive:
open-etp-server | [2025-01-16 10:05:13.300] Info: SVR HTTP 2025-01-16T10:05:13.300577 UTC
open-etp-server | [2025-01-16 10:05:13.350] Info: SVR OK: CONNECTION ACCEPTED in 0.1ms; Thread(1) Session(3), from ANON@[::ffff:92.94.244.26]:54626
open-etp-server | [2025-01-16 10:05:13.375] Info: SVR <REQ Thread(1) Session(3) Msg(2)_PMsg(0) Core(0).RequestSession(1) Final(F) -5
open-etp-server | [2025-01-16 10:05:13.376] Info: SVR Thread(1) Session(3) from [F2I-CONSULTING ETP CLIENT] OPEN
open-etp-server | [2025-01-16 10:05:13.376] Info: SVR Client Ping Timestamp: 1,737,021,911,907,781us
open-etp-server | [2025-01-16 10:05:13.377] Info: SVR Server Pong Timestamp: 1,737,021,913,376,747us
open-etp-server | [2025-01-16 10:05:13.377] Info: [F2I-CONSULTING ETP CLIENT] SVR >RES Thread(1) Session(3) Msg(1)_PMsg(2) Core(0).OpenSession(2) Final(F)
open-etp-server | [2025-01-16 10:05:13.606] Info: [F2I-CONSULTING ETP CLIENT] SVR <REQ Thread(1) Session(3) Msg(4)_PMsg(0) Dataspace(24).PutDataspaces(3) Final(F) -5
open-etp-server | [2025-01-16 10:05:13.609] Info: DbConnectionPool: Check health of database connections, total: 1, busy 0
open-etp-server | [2025-01-16 10:05:13.612] Error: [F2I-CONSULTING ETP CLIENT] SVR >ERR Thread(1) Session(3) Msg(3)_PMsg(4) array[1] Core(0).ProtocolException(1000)
open-etp-server | ETP-5 Space already exists: URI conflict with demo/PutHorizon
open-etp-server | [2025-01-16 10:05:13.649] Info: [F2I-CONSULTING ETP CLIENT] SVR <REQ Thread(1) Session(3) Msg(6)_PMsg(0) Transaction(18).StartTransaction(1) Final(F) -5
open-etp-server | [2025-01-16 10:05:13.650] Info: [F2I-CONSULTING ETP CLIENT] SVR >RES Thread(1) Session(3) Msg(5)_PMsg(6) Transaction(18).StartTransactionResponse(2) Final(F)
open-etp-server | [2025-01-16 10:05:13.670] Info: [F2I-CONSULTING ETP CLIENT] SVR <REQ Thread(1) Session(3) Msg(8)_PMsg(0) DataArray(9).PutDataArrays(4) Final(F) -5
open-etp-server | [2025-01-16 10:05:13.673] Info: [F2I-CONSULTING ETP CLIENT] SVR >RES Thread(1) Session(3) Msg(7)_PMsg(8) DataArray(9).PutDataArraysResponse(10) Final(F)
open-etp-server | [2025-01-16 10:05:20.494] Info: SVR HTTP 2025-01-16T10:05:20.494690 UTC
open-etp-server | [2025-01-16 10:05:20.546] Info: SVR OK: CONNECTION ACCEPTED in 0.2ms; Thread(1) Session(4), from ANON@[::ffff:92.94.244.26]:54629
open-etp-server | [2025-01-16 10:05:20.567] Info: SVR <REQ Thread(1) Session(4) Msg(2)_PMsg(0) Core(0).RequestSession(1) Final(F) -5
open-etp-server | [2025-01-16 10:05:20.568] Info: SVR Thread(1) Session(4) from [F2I-CONSULTING ETP CLIENT] OPEN
open-etp-server | [2025-01-16 10:05:20.568] Info: SVR Client Ping Timestamp: 1,737,021,919,101,302us
open-etp-server | [2025-01-16 10:05:20.568] Info: SVR Server Pong Timestamp: 1,737,021,920,568,062us
open-etp-server | [2025-01-16 10:05:20.568] Info: [F2I-CONSULTING ETP CLIENT] SVR >RES Thread(1) Session(4) Msg(1)_PMsg(2) Core(0).OpenSession(2) Final(F)
open-etp-server | [2025-01-16 10:05:20.817] Info: [F2I-CONSULTING ETP CLIENT] SVR <REQ Thread(1) Session(4) Msg(4)_PMsg(0) Dataspace(24).PutDataspaces(3) Final(F) -5
open-etp-server | [2025-01-16 10:05:20.860] Error: [F2I-CONSULTING ETP CLIENT] SVR >ERR Thread(1) Session(4) Msg(3)_PMsg(4) array[1] Core(0).ProtocolException(1000)
open-etp-server | ETP-5 Space already exists: URI conflict with demo/PutHorizon
open-etp-server | [2025-01-16 10:05:20.906] Info: [F2I-CONSULTING ETP CLIENT] SVR <REQ Thread(1) Session(4) Msg(6)_PMsg(0) Transaction(18).StartTransaction(1) Final(F) -5
open-etp-server | [2025-01-16 10:05:20.906] Error: [F2I-CONSULTING ETP CLIENT] SVR >ERR Thread(1) Session(4) Msg(5)_PMsg(6) scalar Core(0).ProtocolException(1000)
open-etp-server | ETP-15 Cannot start transaction, too many write transaction URI(s): eml:///dataspace('demo/PutHorizon')
open-etp-server | [2025-01-16 10:05:20.926] Info: [F2I-CONSULTING ETP CLIENT] SVR <REQ Thread(1) Session(4) Msg(8)_PMsg(0) DataArray(9).PutDataArrays(4) Final(F) -5
Whatever I do after this last line does no do anything. For example, querying the server capabilities on http fails (i.e. no server answer at all).
Because of my tests, I may have opened too much transactions without closing them as the almost last log message indicates. So I am happy about the sent protocol exception!
However, my code did not check this protocol exception and still tried to put a data array. It looks that this client bad behavior makes the server freezing which ideally is not good.
I would hope a client cannot freeze the open etp server which should imho continue to run and send protocol exceptions to the client.