mm-test crashed with dbus.exceptions.DBusException in call_blocking(): org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ModemManager was not provided by any .service files

Bug #1298546 reported by Daniel Manrique
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Checkbox Provider - Base
Fix Released
High
Unassigned
plainbox-provider-checkbox (Ubuntu)
Fix Released
High
Unassigned

Bug Description

This mm-test script was taken from ModemManager debugging instructions, upstream lives here:

http://cgit.freedesktop.org/ModemManager/ModemManager/plain/test/mm-test.py

The copy included with checkbox is throwing the attached trace when run on a Trusty system. I tried on a system with a modem and on one without a modem.

The script hasn't changed recently and was verified to work fine with Precise.

This script is used only to provide a resource to determine whether a system has a broadband wireless modem and run relevant tests if needed.

ProblemType: Crash
DistroRelease: Ubuntu 14.04
Package: plainbox-provider-checkbox 0.3-2ubuntu1
ProcVersionSignature: Ubuntu 3.13.0-19.39-generic 3.13.6
Uname: Linux 3.13.0-19-generic x86_64
ApportVersion: 2.13.3-0ubuntu1
Architecture: amd64
CrashCounter: 1
CurrentDesktop: Unity
Date: Thu Mar 27 14:38:20 2014
DbusErrorAnalysis: no service file providing org.freedesktop.ModemManager
EcryptfsInUse: Yes
ExecutablePath: /usr/lib/plainbox-providers-1/checkbox/bin/mm-test
InstallationDate: Installed on 2014-03-04 (22 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Alpha amd64 (20140304)
InterpreterPath: /usr/bin/python3.4
ProcCmdline: /usr/bin/python3 /usr/lib/plainbox-providers-1/checkbox/bin/mm-test
PythonArgs: ['/usr/lib/plainbox-providers-1/checkbox/bin/mm-test']
SourcePackage: plainbox-provider-checkbox
Title: mm-test crashed with dbus.exceptions.DBusException in call_blocking(): org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ModemManager was not provided by any .service files
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip libvirtd lpadmin plugdev sambashare sbuild sudo vboxusers

Related branches

Revision history for this message
Daniel Manrique (roadmr) wrote :
Changed in plainbox-provider-checkbox (Ubuntu):
status: New → Triaged
milestone: none → ubuntu-14.04
Revision history for this message
Daniel Manrique (roadmr) wrote :

ModemManager changed its interface names from blah.ModemManager to blah.ModemManager1, that's why mm-test can't find them anymore. However, to make things interesting, we still need to fall back to the old interface names since we still test on releases that don't have the new one (Saucy and older).

Changed in plainbox-provider-checkbox (Ubuntu):
importance: Undecided → High
tags: removed: need-duplicate-check
Daniel Manrique (roadmr)
Changed in checkbox:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Daniel Manrique (roadmr) wrote :

mm-test relied on modemManager's EnumerateDevices call, but that call has disappeared, in favor of using DBus Objectmanager.

Fortunately, ModemManager is very well documented, so we should be able to use this to fix the script.

Unfortunately, it will require some coding on the script to adapt to this new way of doing things :(

From ModemManager documentation:

http://www.freedesktop.org/software/ModemManager/api/latest/ch12.html#id-1.5.3.1

Listing available modems

The D-Bus name org.freedesktop.ModemManager1 on the system bus is the new name used by the ModemManager 1.0 daemon, and it implements several standard DBus interfaces, including the new org.freedesktop.DBus.ObjectManager interface, which allows to list available modem objects and get notifications where new ones are added or when existing ones are removed. There are therefore neither a custom method to enumerate devices as in the old 0.6 interface, nor custom signals to notify about added or removed modems.

Modems which are found but are not usable will be flagged with a MM_MODEM_STATE_FAILED state in the State property, and a more detailed reason about the failure will be given in the StateFailedReason property. The most common case of failure is to have the SIM missing in a modem which requires one for operation.

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

We have lots of code to manage dbus object manager collections, see plainbox-client for an example that is pretty much generic.

Revision history for this message
Daniel Manrique (roadmr) wrote :

We won't need to hack mm-test (which we took verbatim from modemmanager debugging pages).

Of course, we can use the new ObjectManager API to "hack" mm-test into supporting the new functionality. However when looking at the modemmanager debugging pages (which is how we learned of mm-test in the first place), I found that the recommended way to probe modemmanager is to use a new mmcli utility. This is available only on Trusty and newer, so we will need some simple shell logic to use mm-test in other releases, but if mmcli is available, we should default to use that.

This will be simpler than having two code paths in a hacked version of mm-test we'd have to start maintaining, and would have to know how to handle the old and new modemmanager APIs. This way the only code we really have to maintain is our glue shell scripting.

This will dump a detailed report of each modem found:

for i in `mmcli --simple-status -L | awk '/freedesktop\/ModemManager1\/Modem/ {print $1;}'`; do mmcli -m $i ; done

From this I still need to find out how to parse the modem's network capabilities. Apparently gsm has:

           | supported: 'gsm-umts'
           | current: 'gsm-umts'

I have no access to a CDMA modem so I don't know what that will say, research continues...

Zygmunt Krynicki (zyga)
no longer affects: checkbox
Zygmunt Krynicki (zyga)
information type: Private → Public
Revision history for this message
Daniel Manrique (roadmr) wrote :

Hi,

Unless we're dead-set on hacking our own copy of mm-test to support this, I'd mark this as Fix Released.

With 14.04 now out in the wild, I suspect the importance of the legacy mm-test script will diminish in favor of mmcli, so it should be safe to put mm-test on life support and eventually drop it, rather than having to maintain it for centuries in a vampirized, dual-purpose form.

Daniel Manrique (roadmr)
Changed in plainbox-provider-checkbox:
status: New → Fix Released
Changed in plainbox-provider-checkbox (Ubuntu):
milestone: ubuntu-14.04 → trusty-updates
Changed in plainbox-provider-checkbox:
importance: Undecided → High
Revision history for this message
Zygmunt Krynicki (zyga) wrote :

We won't backport this to trusty. This will be fixed in wily.

Changed in plainbox-provider-checkbox (Ubuntu):
status: Triaged → Won't Fix
Mathew Hodson (mhodson)
Changed in plainbox-provider-checkbox (Ubuntu):
milestone: trusty-updates → none
Mathew Hodson (mhodson)
Changed in plainbox-provider-checkbox (Ubuntu):
status: Won't Fix → Fix Committed
Changed in plainbox-provider-checkbox (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

Remote bug watches

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