test_internal_fs_allowed crashes with SIGABRT

Bug #1585382 reported by Martin Pitt on 2016-05-24
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
udisks2 (Ubuntu)
Medium
Martin Pitt

Bug Description

udisks2's tests now often fail with

test_internal_fs_allowed (__main__.Polkit)
Create FS on internal drive (allowed) ... Aborted (core dumped)

See http://autopkgtest.ubuntu.com/packages/u/udisks2/yakkety/amd64/

Martin Pitt (pitti) on 2016-05-24
Changed in udisks2 (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → Martin Pitt (pitti)
Martin Pitt (pitti) on 2016-11-25
Changed in udisks2 (Ubuntu):
status: Triaged → In Progress
Martin Pitt (pitti) wrote :

This does not reproduce locally or with autopkgtest-virt-qemu.

Martin Pitt (pitti) wrote :

I ran it five times on the production infrastructure and it does not reproduce there either, so a nasty heisenbug :-(

I instead changed the test to archive a core dump if the test crashes, so that this can be debugged post-mortem: https://anonscm.debian.org/cgit/pkg-utopia/udisks2.git/commit/?id=5a7601a8

Martin Pitt (pitti) wrote :

http://autopkgtest.ubuntu.com/packages/udisks2/zesty/i386 now has two failures with core dumps. I extracted the stack trace from the topmost one.

This one is interesting:

        f = Frame 0xb662ccec, for file src/tests/test_polkitd.py, line 184, in spawn (allowed_actions=['org.freedesktop.udisks2.modify-device-system', 'org.freedesktop.udisks2.modify-device'], on_bus=None, pid=18994, bus=<BusConnection(_signal_recipients_by_object_path={}, _Connection__call_on_disconnection=[], _signals_lock=<_thread.lock at remote 0xb6330a10>, _signal_sender_matches={}, _dbus_Connection_initialized=1, _bus_names=<WeakValueDictionary(_iterating=set(), _remove=<function at remote 0xb633a4f4>, data={}, _pending_removals=[]) at remote 0xb50c038c>) at remote 0xb634683c>, timeout=49)

that suggests it hits this code path in src/tests/test_polkitd.py:

    for timeout in range(50):
        try:
            p = dbus.Interface(bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus'),
                               'org.freedesktop.DBus').GetConnectionUnixProcessID(
                                   bus.get_name_owner('org.freedesktop.PolicyKit1'))
        except dbus.exceptions.DBusException:
            continue
        if p == pid:
            break
        time.sleep(0.1)
    else:
        sys.stderr.write('test polkitd failed to start up\n')
        os.abort()

i. e. it timed out waiting for the mocked polkit to appear on the bus.

Martin Pitt (pitti) wrote :
Changed in udisks2 (Ubuntu):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package udisks2 - 2.1.8-1git1

---------------
udisks2 (2.1.8-1git1) zesty; urgency=medium

  Upload current Debian packaging git head to fix autopkgtest.

  * test_polkitd.py: Fix waiting for mock polkit to start (LP: #1585382)
  * Mark udisks2-doc as Multi-Arch: foreign

 -- Martin Pitt <email address hidden> Fri, 02 Dec 2016 10:50:57 +0100

Changed in udisks2 (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments