Kaigara version 1.0.0+ (kaigaraRun) does not "break" but go into endless loop when encountering EOF
ianeinser opened this issue · comments
Hi @xenirio
There is a bug in the latest Kaigara (v1.0.0+) in function Publish (pkg/logstream/redis.go).
in v0.1.34, when Kaigara encounters EOF (during new installation or db setup) after finishing creating SQL tables, it breaks and reports exit(0)
but in v1.0.0+, when Kaigara encounters EOF, it does not break but get inside endless loop
[Kaigara] 2022/12/13 02:38:45 ERR: read |0: file already closed
[Kaigara] 2022/12/13 02:38:45 INF: bytes read - 0, buf: ainCurrencyTableField: migrated (0.0313s) ======
ChangeBlockch
[Kaigara] 2022/12/13 02:38:45 ERR: read |0: file already closed
[Kaigara] 2022/12/13 02:38:45 INF: bytes read - 0, buf: .
WARNING: Skipping key "VAULT_TOKEN". Already set in ENV.
n ENV
[Kaigara] 2022/12/13 02:38:45 ERR: read |0: file already closed
[Kaigara] 2022/12/13 02:38:45 INF: bytes read - 0, buf: ainCurrencyTableField: migrated (0.0313s) ======
ChangeBlockch
[Kaigara] 2022/12/13 02:38:45 ERR: read |0: file already closed
[Kaigara] 2022/12/13 02:38:45 INF: bytes read - 0, buf: .
WARNING: Skipping key "VAULT_TOKEN". Already set in ENV.
n ENV
[Kaigara] 2022/12/13 02:38:45 ERR: read |0: file already closed
[Kaigara] 2022/12/13 02:38:45 INF: bytes read - 0, buf: ainCurrencyTableField: migrated (0.0313s) ======
I suppose it is due to the reason that you defined
var ls logstream.LogStream
as global variable in main, so when the function Publish returns, ls is never released, hence kaigara can never exit(0). I am not clear what scenario you need to retain ls after error reports, but it creates a bug during new installation or when new SQL tables are added.
Thanks