Project

General

Profile

Actions

action #28186

closed

VNC: Use of uninitialized value $encoding_type in pack

Added by michalnowak over 6 years ago. Updated about 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
Feature requests
Target version:
-
Start date:
2017-11-22
Due date:
% Done:

0%

Estimated time:

Description

openQA failed to read http://assam.suse.cz/tests/1223/file/autoinst-log.txt:

Use of uninitialized value $encoding_type in pack at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/consoles/VNC.pm line 941.
Use of uninitialized value $h in multiplication (*) at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/consoles/VNC.pm line 946.
DIE unexpected end of data at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/consoles/VNC.pm line 937.

 at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 80.
    backend::baseclass::die_handler('unexpected end of data at /home/newman/SUSE/projects/openQA/o...') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/consoles/VNC.pm line 802
    consoles::VNC::catch {...} ('unexpected end of data at /home/newman/SUSE/projects/openQA/o...') called at /usr/lib/perl5/vendor_perl/5.18.2/Try/Tiny.pm line 115
    Try::Tiny::try('CODE(0x7c7a698)', 'Try::Tiny::Catch=REF(0x7c71bd8)') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/consoles/VNC.pm line 804
    consoles::VNC::update_framebuffer('consoles::VNC=HASH(0x7e48808)') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/consoles/vnc_base.pm line 81
    consoles::vnc_base::request_screen_update('consoles::vnc_base=HASH(0x4f56da8)', undef) called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 536
    backend::baseclass::bouncer('backend::svirt=HASH(0x6a477d8)', 'request_screen_update', undef) called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 519
    backend::baseclass::request_screen_update('backend::svirt=HASH(0x6a477d8)') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 172
    eval {...} called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 156
    backend::baseclass::run_capture_loop('backend::svirt=HASH(0x6a477d8)', 1) called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 693
    backend::baseclass::wait_serial('backend::svirt=HASH(0x6a477d8)', 'HASH(0x7c67358)') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 75
    backend::baseclass::handle_command('backend::svirt=HASH(0x6a477d8)', 'HASH(0x7e48fa0)') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 436
    backend::baseclass::check_socket('backend::svirt=HASH(0x6a477d8)', 'IO::Handle=GLOB(0x601ff00)', 0) called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/svirt.pm line 236
    backend::svirt::check_socket('backend::svirt=HASH(0x6a477d8)', 'IO::Handle=GLOB(0x601ff00)', 0) called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 208
    eval {...} called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 156
    backend::baseclass::run_capture_loop('backend::svirt=HASH(0x6a477d8)') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/baseclass.pm line 129
    backend::baseclass::run('backend::svirt=HASH(0x6a477d8)', 6, 9) called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/driver.pm line 85
    backend::driver::start('backend::driver=HASH(0x60fd8d0)') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/backend/driver.pm line 48
    backend::driver::new('backend::driver', 'svirt') called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/isotovideo line 212
    main::init_backend() called at /home/newman/SUSE/projects/openQA/os-autoinst-distri-opensuse/os-autoinst/isotovideo line 281

The relevant code is:

        $socket->read(my $data, 12) || die 'unexpected end of data';
        my ($x, $y, $w, $h, $encoding_type) = unpack 'nnnnN', $data;

        # unsigned -> signed conversion
        $encoding_type = unpack 'l', pack 'L', $encoding_type;

Don't know if we can re-read in such cases.


Related issues 1 (0 open1 closed)

Related to openQA Project - action #60539: openQA remote-back-ends crashes with Xvnc >= 1.9.80Resolvedmkittler2019-12-03

Actions
Actions #1

Updated by coolo over 6 years ago

we may - but did you file a product bug about XEN ?

Actions #2

Updated by coolo over 6 years ago

if you can reproduce this, protect the access to the variables with an or OpenQA::Exception::VNCProtocolError->throw(error => 'short read for encoding_type');

Actions #3

Updated by okurz almost 5 years ago

  • Category changed from 132 to Feature requests
Actions #4

Updated by okurz over 4 years ago

  • Related to action #60539: openQA remote-back-ends crashes with Xvnc >= 1.9.80 added
Actions #5

Updated by okurz about 4 years ago

  • Status changed from New to Resolved

I think I have seen this myself but haven't seen this for long. I assume it's actually fixed but I could not pin-point a commit that could explain it.

Actions

Also available in: Atom PDF