Bug 1524125 - gobject tests fail in Rawhide: gjs_byte_array_get_proto assertion failed
Summary: gobject tests fail in Rawhide: gjs_byte_array_get_proto assertion failed
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gjs
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Colin Walters
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-12-10 09:13 UTC by Richard W.M. Jones
Modified: 2018-05-02 11:14 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2018-05-02 11:14:47 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Richard W.M. Jones 2017-12-10 09:13:36 UTC
Description of problem:

Tests in the gobject directory currently fail in Rawhide with:

run-live-tests: info: you can skip this test by setting SKIP_RUN_LIVE_TESTS=1
**
Gjs:ERROR:gjs/byteArray.cpp:824:JSObject* gjs_byte_array_get_proto(JSContext*): assertion failed: (((void) "gjs_" "byte_array" "_define_proto() must be called before " "gjs_" "byte_array" "_get_proto()", !v_proto.isUndefined()))
./run-live-tests: line 26: 11146 Aborted                 (core dumped) $GJS $srcdir/tests-misc.js
FAIL run-live-tests (exit status: 134)

I've not investigated further, this is a placeholder.

Version-Release number of selected component (if applicable):

libguestfs 1.35.37

How reproducible:

100%

Comment 1 Richard W.M. Jones 2017-12-10 14:10:57 UTC
This commit added the assert:

https://bug614413.bugzilla-attachments.gnome.org/attachment.cgi?id=349966
(from https://bugzilla.gnome.org/show_bug.cgi?id=614413)

but I have absolutely no clue what it's going or how to change
the affected code so far.

Comment 2 Richard W.M. Jones 2017-12-10 14:17:59 UTC
Thread 1 (Thread 0x7ff613bedf80 (LWP 18919)):
#0  0x00007ff60e0fe56b in raise () at /lib64/libc.so.6
#1  0x00007ff60e0ff921 in abort () at /lib64/libc.so.6
#2  0x00007ff610f6569d in g_assertion_message () at /lib64/libglib-2.0.so.0
#3  0x00007ff610f6572a in g_assertion_message_expr ()
    at /lib64/libglib-2.0.so.0
#4  0x00007ff613785696 in gjs_byte_array_get_proto(JSContext*) (cx=cx@entry=0x55d875795900) at gjs/byteArray.cpp:824
#5  0x00007ff613787099 in gjs_byte_array_from_byte_array(JSContext*, GByteArray*) (context=0x55d875795900, array=0x55d875a87a80) at gjs/byteArray.cpp:738
#6  0x00007ff6137623d0 in gjs_value_from_g_argument(JSContext*, JS::MutableHandleValue, GITypeInfo*, GArgument*, bool) (context=context@entry=0x55d875795900, value_p=value_p@entry=..., type_info=type_info@entry=0x55d875a87c00, arg=arg@entry=0x7ffe77cf44c8, copy_structs=copy_structs@entry=true) at gi/arg.cpp:2921
#7  0x00007ff613764c97 in boxed_field_getter(JSContext*, unsigned int, JS::Value*) (context=0x55d875795900, argc=<optimized out>, vp=0x7ffe77cf4640)
    at gi/boxed.cpp:666
#8  0x00007ff60fe0307d in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) () at /lib64/libmozjs-52.so.0
#9  0x00007ff60fe032a9 in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) ()
    at /lib64/libmozjs-52.so.0
#10 0x00007ff60fe03361 in js::CallGetter(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-52.so.0
#11 0x00007ff60fe03443 in CallGetter(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<js::Shape*>, JS::MutableHandle<JS::Value>) ()
    at /lib64/libmozjs-52.so.0
#12 0x00007ff60fe037a6 in js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-52.so.0
#13 0x00007ff60fe0531f in js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) ()
    at /lib64/libmozjs-52.so.0
#14 0x00007ff60fdf564a in Interpret(JSContext*, js::RunState&) ()
    at /lib64/libmozjs-52.so.0
#15 0x00007ff60fe029f6 in js::RunScript(JSContext*, js::RunState&) ()
    at /lib64/libmozjs-52.so.0
#16 0x00007ff60fe02fcf in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) () at /lib64/libmozjs-52.so.0
#17 0x00007ff60fe032a9 in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) ()
    at /lib64/libmozjs-52.so.0
#18 0x00007ff60fc94614 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-52.so.0
#19 0x00007ff613795db6 in gjs_call_function_value(JSContext*, JS::HandleObject, JS::HandleValue, JS::HandleValueArray const&, JS::MutableHandleValue) (context=context@entry=0x55d875795900, obj=obj@entry=..., fval=fval@entry=..., args=..., rval=..., rval@entry=...) at gjs/jsapi-util.cpp:644
#20 0x00007ff6137673f5 in gjs_closure_invoke(GClosure*, JS::HandleValueArray const&, JS::MutableHandleValue) (closure=closure@entry=0x55d875a93d80, args=..., retval=retval@entry=...) at gi/closure.cpp:215
#21 0x00007ff613785015 in closure_marshal(GClosure*, GValue*, guint, GValue const*, gpointer, gpointer) (closure=0x55d875a93d80, return_value=0x0, n_param_values=2, param_values=0x7ffe77cf5680, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gi/value.cpp:272
#22 0x00007ff61121773d in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#23 0x00007ff61122a4de in signal_emit_unlocked_R ()
    at /lib64/libgobject-2.0.so.0
#24 0x00007ff611232d05 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#25 0x00007ff61123366f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#26 0x00007ff5f8162297 in event_callback (g=<optimized out>, opaque=0x55d875a93380, event=64, event_handle=<optimized out>, flags=<optimized out>, buf=<optimized out>, buf_len=6, array=0x0, array_len=0) at src/session.c:127
#27 0x00007ff5ab5826d7 in guestfs_int_call_callbacks_message (g=0x55d875a933b0, event=64, buf=0x55d875a87a60 "launch", buf_len=6) at events.c:117
#28 0x00007ff5ab56c1c0 in guestfs_int_trace_send_line (g=g@entry=0x55d875a933b0, tb=tb@entry=0x7ffe77cf5a20) at actions-support.c:100
#29 0x00007ff5ab521ece in guestfs_launch (g=g@entry=0x55d875a933b0)
    at actions-3.c:507
#30 0x00007ff5f81740ed in guestfs_session_launch (session=<optimized out>, err=0x7ffe77cf5cf0) at src/session.c:15804
#31 0x00007ff611c05d1e in ffi_call_unix64 () at /lib64/libffi.so.6
#32 0x00007ff611c0568f in ffi_call () at /lib64/libffi.so.6
#33 0x00007ff61376ced8 in gjs_invoke_c_function(JSContext*, Function*, JS::HandleObject, JS::HandleValueArray const&, mozilla::Maybe<JS::MutableHandle<JS::Value> >, GIArgument*) (context=context@entry=0x55d875795900, function=function@entry=0x55d875a87710, obj=..., 
    obj@entry=..., args=..., js_rval=..., r_value=r_value@entry=0x0)
    at gi/function.cpp:1033
#34 0x00007ff61376e7b4 in function_call(JSContext*, unsigned int, JS::Value*) (context=0x55d875795900, js_argc=0, vp=0x55d8759d44b8) at gi/function.cpp:1351
#35 0x00007ff60fe0318c in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) () at /lib64/libmozjs-52.so.0
#36 0x00007ff60fdfd668 in Interpret(JSContext*, js::RunState&) ()
    at /lib64/libmozjs-52.so.0
#37 0x00007ff60fe029f6 in js::RunScript(JSContext*, js::RunState&) ()
    at /lib64/libmozjs-52.so.0
#38 0x00007ff60fe09690 in js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::AbstractFramePtr, JS::Value*) ()
    at /lib64/libmozjs-52.so.0
#39 0x00007ff60fe097a0 in js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) () at /lib64/libmozjs-52.so.0
#40 0x00007ff60fc82d13 in ExecuteScript(JSContext*, JS::AutoObjectVector&, JS::Handle<JSScript*>, JS::Value*) () at /lib64/libmozjs-52.so.0
#41 0x00007ff613796576 in gjs_eval_with_scope(JSContext*, JS::HandleObject, char const*, ssize_t, char const*, JS::MutableHandleValue) (context=0x55d875795900, object=object@entry=..., script=<optimized out>, 
    script@entry=0x55d875791b40 "// libguestfs miscellaneous gobject binding tests\n// Copyright (C) 2012 Red Hat Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it under the terms of the GNU General"..., script_len=script_len@entry=2185, filename=filename@entry=0x55d875791b20 "./tests-misc.js", retval=retval@entry=...) at gjs/jsapi-util.cpp:876
#42 0x00007ff613788621 in gjs_context_eval(GjsContext*, char const*, gssize, char const*, int*, GError**) (js_context=0x55d8757956c0, script=0x55d875791b40 "// libguestfs miscellaneous gobject binding tests\n// Copyright (C) 2012 Red Hat Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it under the terms of the GNU General"..., script_len=2185, filename=0x55d875791b20 "./tests-misc.js", exit_status_p=0x7ffe77cf6bd0, error=0x7ffe77cf6b88)
    at gjs/context.cpp:701
#43 0x000055d87450be11 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at gjs/console.cpp:284

Comment 3 Richard W.M. Jones 2018-01-26 12:52:43 UTC
Upstream bug:
https://gitlab.gnome.org/GNOME/gjs/issues/39

Comment 4 Richard W.M. Jones 2018-05-02 11:12:15 UTC
Fixed upstream in:
https://gitlab.gnome.org/GNOME/gjs/commit/ab1ddf50153f6fb41c64208d0de91ad5ff4aed4b

Comment 5 Richard W.M. Jones 2018-05-02 11:14:47 UTC
Actually I see this fix has already been included in 1.52.2.


Note You need to log in before you can comment on or make changes to this bug.