On 12/4/24 10:44, Konstantin Kostiuk wrote: > > The old flow: > run_agent call run_agent_once in loop > run_agent_once initialize channel for every run > > after your changes > you expect to initialize the channel only once > this can cause issues on Windows during driver update > the default configuration on Windows is QGA + VirtioSerial and in CLI -- > retry-path > during driver update (that can happen via Windows Update) the channel > will be closed > so QGA must reinitialize the channel
Ah, I had no idea. Alright, so what I can do is: 1) keep channel_init() in initialize_agent() and become_daemon() after that, and 2) make run_agent_once() call channel_init() if s->channel is NULL (and also set it to NULL ... > > Theoretically, the same can happen on Linux with a UNIX socket > > > > g_main_loop_run(s->main_loop); > > if (s->channel) { ... here. V2 coming up. Michal