In https://openqa.suse.de/tests/966730/file/autoinst-log.txt I see
05:40:23.1194 29771 considering VNC stalled, no update for 7.40 seconds
DIE socket does not exist. Probably your backend instance could not start or died. at /usr/lib/os-autoinst/consoles/VNC.pm line 881.
at /usr/lib/os-autoinst/backend/baseclass.pm line 78.
backend::baseclass::die_handler('socket does not exist. Probably your backend instance could n...') called at /usr/lib/os-autoinst/consoles/VNC.pm line 801
consoles::VNC::catch {...} ('socket does not exist. Probably your backend instance could n...') called at /usr/lib/perl5/vendor_perl/5.18.2/Try/Tiny.pm line 115
Try::Tiny::try('CODE(0x68bcbf8)', 'Try::Tiny::Catch=REF(0x6b0d660)') called at /usr/lib/os-autoinst/consoles/VNC.pm line 803
consoles::VNC::update_framebuffer('consoles::VNC=HASH(0x6b01ca0)') called at /usr/lib/os-autoinst/consoles/vnc_base.pm line 74
consoles::vnc_base::request_screen_update('consoles::vnc_base=HASH(0x42799f8)', undef) called at /usr/lib/os-autoinst/backend/baseclass.pm line 533
backend::baseclass::bouncer('backend::s390x=HASH(0x5af8d80)', 'request_screen_update', undef) called at /usr/lib/os-autoinst/backend/baseclass.pm line 516
backend::baseclass::request_screen_update('backend::s390x=HASH(0x5af8d80)') called at /usr/lib/os-autoinst/backend/baseclass.pm line 170
eval {...} called at /usr/lib/os-autoinst/backend/baseclass.pm line 154
backend::baseclass::run_capture_loop('backend::s390x=HASH(0x5af8d80)') called at /usr/lib/os-autoinst/backend/baseclass.pm line 127
backend::baseclass::run('backend::s390x=HASH(0x5af8d80)', 6, 9) called at /usr/lib/os-autoinst/backend/driver.pm line 85
backend::driver::start('backend::driver=HASH(0x57d5270)') called at /usr/lib/os-autoinst/backend/driver.pm line 48
backend::driver::new('backend::driver', 's390x') called at /usr/bin/isotovideo line 206
main::init_backend() called at /usr/bin/isotovideo line 271
last frame
05:40:34.2347 29771 sending magic and exit
and checking the source code of consoles/VNC.pm I see that update_framebuffer
is called on the socket which has been closed by the stall detection in send_update_request
so not a good idea. I think the stall detection is too aggressive in this case and I blame the magic number "4" here. Still, it's not a good idea to just close the socket while other methods (another thread?) access it.
@coolo what do you suggest, increase the "4" for this backend, check the socket existance and silently ignore and retry in update_framebuffer
or something else?