test_internal_fs_allowed crashes with SIGABRT

Bug #1585382 reported by Martin Pitt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
udisks2 (Ubuntu)
Fix Released
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)
Changed in udisks2 (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → Martin Pitt (pitti)
Martin Pitt (pitti)
Changed in udisks2 (Ubuntu):
status: Triaged → In Progress
Revision history for this message
Martin Pitt (pitti) wrote :

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

Revision history for this message
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

Revision history for this message
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.

Revision history for this message
Martin Pitt (pitti) wrote :
Changed in udisks2 (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.