virsystemdtest segfault on ppc64

I'm seeing failures building libvirt 6.8.0 rpm on fedora 32, 33, and rawhide. virsystemdtest is segfaulting on ppc64. https://kojipkgs.fedoraproject.org//work/tasks/5494/52595494/build.log The output from the failed tests: 74/160 libvirt / virsystemdtest FAIL 0.44s (killed by signal 11 SIGSEGV) --- command --- 17:14:09 abs_srcdir='/builddir/build/BUILD/libvirt-6.8.0/tests' abs_top_srcdir='/builddir/build/BUILD/libvirt-6.8.0' VIR_TEST_EXPENSIVE='1' LIBVIRT_AUTOSTART='0' abs_top_builddir='/builddir/build/BUILD/libvirt-6.8.0/ppc64le-redhat-linux-gnu' LC_ALL='C' abs_builddir='/builddir/build/BUILD/libvirt-6.8.0/ppc64le-redhat-linux-gnu/tests' /builddir/build/BUILD/libvirt-6.8.0/ppc64le-redhat-linux-gnu/tests/virsystemdtest --- stderr --- TEST: virsystemdtest (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.137: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed ..... (process:3397099): GLib-CRITICAL **: 17:14:09.138: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.138: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.138: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . (process:3397099): GLib-CRITICAL **: 17:14:09.138: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed . ------- Full log written to /builddir/build/BUILD/libvirt-6.8.0/ppc64le-redhat-linux-gnu/meson-logs/testlog.txt RPM build errors: error: Bad exit status from /var/tmp/rpm-tmp.Yh8pF5 (%check) Bad exit status from /var/tmp/rpm-tmp.Yh8pF5 (%check) Child return code was: 1 Thanks, Cole

On 10/1/20 7:52 PM, Cole Robinson wrote:
I'm seeing failures building libvirt 6.8.0 rpm on fedora 32, 33, and rawhide. virsystemdtest is segfaulting on ppc64.
https://kojipkgs.fedoraproject.org//work/tasks/5494/52595494/build.log
Ah, I can reproduce on my x86 when I tell glib to make errors fatal: G_DEBUG=fatal-warnings ./virsystemdtest and it looks like the problem is that g_dbus_connection_call_sync() consumes the message parameters so transitively virGDBusCallMethod() consumes the mssage (the last argument) and therefore we should not unref it afterwards. I'm testing a fix as we speak. Michal

On Fri, 2020-10-02 at 09:11 +0200, Michal Prívozník wrote:
On 10/1/20 7:52 PM, Cole Robinson wrote:
I'm seeing failures building libvirt 6.8.0 rpm on fedora 32, 33, and rawhide. virsystemdtest is segfaulting on ppc64.
https://kojipkgs.fedoraproject.org//work/tasks/5494/52595494/build.log
Ah, I can reproduce on my x86 when I tell glib to make errors fatal:
G_DEBUG=fatal-warnings ./virsystemdtest
Should we set that environment variable unconditionally when running the test suite? It looks like it might catch some actual bugs. -- Andrea Bolognani / Red Hat / Virtualization

On 10/2/20 10:11 AM, Andrea Bolognani wrote:
On Fri, 2020-10-02 at 09:11 +0200, Michal Prívozník wrote:
On 10/1/20 7:52 PM, Cole Robinson wrote:
I'm seeing failures building libvirt 6.8.0 rpm on fedora 32, 33, and rawhide. virsystemdtest is segfaulting on ppc64.
https://kojipkgs.fedoraproject.org//work/tasks/5494/52595494/build.log
Ah, I can reproduce on my x86 when I tell glib to make errors fatal:
G_DEBUG=fatal-warnings ./virsystemdtest
Should we set that environment variable unconditionally when running the test suite? It looks like it might catch some actual bugs.
Yeah, good idea. I'll post it as a separate patch in my series. Michal

On 10/2/20 4:11 AM, Michal Prívozník wrote:
On 10/1/20 7:52 PM, Cole Robinson wrote:
I'm seeing failures building libvirt 6.8.0 rpm on fedora 32, 33, and rawhide. virsystemdtest is segfaulting on ppc64.
https://kojipkgs.fedoraproject.org//work/tasks/5494/52595494/build.log
Ah, I can reproduce on my x86 when I tell glib to make errors fatal:
G_DEBUG=fatal-warnings ./virsystemdtest
Hm, does this mean that we are using different settings when building in a ppc64 environment? Or pPerhaps glib default settings are more restrictive in ppc64 .... Anyway, thanks for the quick fix! DHB
and it looks like the problem is that g_dbus_connection_call_sync() consumes the message parameters so transitively virGDBusCallMethod() consumes the mssage (the last argument) and therefore we should not unref it afterwards. I'm testing a fix as we speak.
Michal
participants (4)
-
Andrea Bolognani
-
Cole Robinson
-
Daniel Henrique Barboza
-
Michal Prívozník