Hello all,

CC'ing Thomas, maybe he has some idea about this. Thomas, please see [0] for
the python-dbusmock failure that triggered this bug report.

Adrian Bunk [2021-02-12 16:22 +0200]:
> https://ci.debian.net/data/autopkgtest/testing/amd64/p/python-dbusmock/10412779/log.gz
> test_one_wifi_with_accesspoints (__main__.TestNetworkManager) ... **
> libnm:ERROR:libnm/nm-client.c:2863:_dbus_handle_obj_changed_dbus: assertion 
> failed: (dbobj->obj_state >= NML_DBUS_OBJ_STATE_ON_DBUS)
> Bail out! libnm:ERROR:libnm/nm-client.c:2863:_dbus_handle_obj_changed_dbus: 
> assertion failed: (dbobj->obj_state >= NML_DBUS_OBJ_STATE_ON_DBUS)
> ERROR

I enabled tests on Debian unstable upstream now [1] to reproduce the failure 
[2].

I first ran a bisect between tags 1.28.0 (which works) and 1.30-rc1 (which is
release 1.29.90, and fails). Curiously that came out as "release: bump version
to 1.29.0 (development) is the first bad commit".

It turns out that the 1.29.0-dev branch got based off 1.28-rc1, not 1.28.0, and
`git shortlog 1.28-rc1..1.28.0` has a good deal of changes. I confirmed that
1.28-rc1 itself also has that failure (otherwise I'd really be 🤯), and so does
1.28-rc2.

Then I ran a bisect between 1.28-rc2 and 1.28.0, and again it resulted in the
first bad version being "release: bump version to 1.28.0" [3] (which is again
trivial). I used a test script [4] which builds everything from a clean git
tree, and I uninstalled network-manager from the container that I'm running
this in, so there are no stale files between builds.

The NM dbusmock [5] does not have any version check or other version sensitive
code.

So this is some weird NM build system issue that breaks something for any tag
(i.e. minor/micro version in configure.ac) >= 1.28.0. Note that the 1.28-rc* 
tags
have version 1.27.x.

I grepped the NM source for '1_28' and '\b1\b.*\b28\b', but that did not spot
anything obvious. I also checked for '\b1\b.*\b27\b' (just in case there is
some condition on <= 1.27), but that does not hit anything relevant.

So at the moment I'm totally stumped about this. Thomas, are you aware of any
version sensitive magic in NM's build?

Thanks!

Martin

[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982613#5
[1] https://github.com/martinpitt/python-dbusmock/commit/8350ab65eb
[2] https://github.com/martinpitt/python-dbusmock/actions/runs/565487941
[3] 
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/6f32c5c10736

[4]
#!/bin/sh
set -eux
cd /tmp/NetworkManager
git clean -ffdx
./autogen.sh --with-crypto=gnutls --with-iptables=/usr/sbin/iptables
make -j4 clients/cli/nmcli

cd /source
PATH=/tmp/NetworkManager/clients/cli:$PATH PYTHONPATH=. python3 
tests/test_networkmanager.py TestNetworkManager.test_one_wifi_with_accesspoints

[5] 
https://github.com/martinpitt/python-dbusmock/blob/master/dbusmock/templates/networkmanager.py

Reply via email to