Project

General

Profile

action #11816

Openqa jobs won't start after updating perl-json-xs to verison 3.02

Added by mkravec over 6 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Feature requests
Target version:
-
Start date:
2016-05-06
Due date:
% Done:

100%

Estimated time:
Difficulty:

Description

New job fail to start with following error in autoinst-log:

json at /usr/lib/os-autoinst/backend/driver.pm line 195.
backend::driver::send_json(backend::driver=HASH(0x474c260), HASH(0x5a92898)) called at /usr/lib/os-autoinst/backend/driver.pm line 181
backend::driver::
ANON_(backend::driver=HASH(0x474c260)) called at /usr/lib/os-autoinst/bmwqemu.pm line 357
bmwqemu::alive() called at /usr/bin/isotovideo line 149
hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this) at /usr/lib/os-autoinst/backend/driver.pm line 197.
Perl exited with active threads:
1 running and unjoined
0 finished and unjoined
0 running and detached

From changelog: https://metacpan.org/release/JSON-XS

  • allow_nonref now affects booleans

Jobs worked again after reverting to perl-json-xs 3.01.

History

#1 Updated by nadvornik over 6 years ago

  • Assignee set to nadvornik

It seems to be a bug in JSON-XS-3.02 related to threads: on XS.xs:338 it uses global variable bool_stash and on XS.xs:1987 it sets this variable to zero when a new thread is created.

It may work with the workaround - setting allow_nonref, but I think that the best fix is to replace perl threads with normal fork().

#2 Updated by okurz over 6 years ago

  • Status changed from New to In Progress

https://github.com/os-autoinst/os-autoinst/pull/497 is said to fix it but I don't want to decide if that is really true ;-) PR is merged.

#3 Updated by nadvornik over 6 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 100

yes, it really fixes it :)

Also available in: Atom PDF