Bug 1585494 - NetworkManager-1.11.4-1.fc29 causes compose failure on aarch64
Summary: NetworkManager-1.11.4-1.fc29 causes compose failure on aarch64
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: NetworkManager
Version: 29
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Beniamino Galvani
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-06-03 16:27 UTC by Kevin Fenzi
Modified: 2019-11-27 19:23 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-11-27 19:23:34 UTC


Attachments (Terms of Use)
NetworkManager-journal (108.39 KB, text/plain)
2018-06-03 16:27 UTC, Kevin Fenzi
no flags Details
[PATCH] manager: fix failed assertion on user activations (1.36 KB, patch)
2018-06-04 08:45 UTC, Beniamino Galvani
no flags Details | Diff
[PATCH v2] manager: fix failed assertion on user activations (1.50 KB, patch)
2018-06-04 08:48 UTC, Beniamino Galvani
no flags Details | Diff

Description Kevin Fenzi 2018-06-03 16:27:17 UTC
Created attachment 1447204 [details]
NetworkManager-journal

See: https://koji.fedoraproject.org/koji/taskinfo?taskID=27388771

The x86_64 install worked ok, but the aarch64 one failed. 

Manually watching the console while doing another aarch64 compose to duplicate, anaconda starts up and then: 

 * shell is available on TTY2
 * if the graphical installation interface fails to start, try again with the  
   inst.text bootoption to start text installation                             
 * when reporting a bug add logs from /tmp as separate text/plain attachments  
Traceback (most recent call last):
  File "/sbin/anaconda", line 620, in <module>                                 
    networkInitialize(ksdata)
  File "/usr/lib64/python3.6/site-packages/pyanaconda/network.py", line 1518, in networkInitialize
    devnames = apply_kickstart(ksdata)
  File "/usr/lib64/python3.6/site-packages/pyanaconda/network.py", line 1498, in apply_kickstart
    nm.nm_activate_device_connection(dev_name, con_uuid)                       
  File "/usr/lib64/python3.6/site-packages/pyanaconda/nm.py", line 875, in nm_activate_device_connection
    nm_proxy.ActivateConnection('(ooo)', con_paths[0], device_path, "/")       
  File "/usr/lib64/python3.6/site-packages/gi/overrides/Gio.py", line 204, in __call__
    None)
GLib.Error: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.NoReply:
Message recipient disconnected from message bus without replying (4)           

Pane is dead (status 1, Sun Jun  3 16:03:57 2018)

anaconda hasn't changed any since the last working rawhide compose, so it seems like it must be NetworkManager. However, I have no idea why the x86_64 one works ok and aarch64 fails. ;( 

last lines in /tmp/anaconda.log: 

16:03:54,753 DBG network: devices found ['enp1s0']
16:03:54,793 DBG network: ensure single initramfs connections
16:03:54,967 DBG network: apply kickstart
16:03:55,269 DBG network: pre kickstart - updating settings of device enp1s0
16:03:55,524 DBG network: pre kickstart - activating connection dd3be478-c18f-4874-95a7-7aba610100b9 for enp1s0

attaching also 'journalctl -u NetworkManager -b -l' 

I am going to untag this NetworkManager build from f29 for now and see if we can get a rawhide compose, then we can sort out this issue.

Comment 1 Beniamino Galvani 2018-06-04 08:45:44 UTC
Created attachment 1447357 [details]
[PATCH] manager: fix failed assertion on user activations

Comment 2 Beniamino Galvani 2018-06-04 08:48:17 UTC
Created attachment 1447360 [details]
[PATCH v2] manager: fix failed assertion on user activations

Comment 3 Francesco Giudici 2018-06-04 13:52:00 UTC
(In reply to Beniamino Galvani from comment #2)
> Created attachment 1447360 [details]
> [PATCH v2] manager: fix failed assertion on user activations

Patch looks good, anyway why not just remove the 'gs_unref_object' in the var declaration?  We never need to free 'active' in impl_manager_activate_connection().
So we will have to remove the "g_steal_pointer" as in the patch but will not need to add it after the call to nm_active_connection_authorize().

Comment 4 Thomas Haller 2018-06-04 15:49:02 UTC
(In reply to Francesco Giudici from comment #3)
> (In reply to Beniamino Galvani from comment #2)
> > Created attachment 1447360 [details]
> > [PATCH v2] manager: fix failed assertion on user activations
> 
> Patch looks good, anyway why not just remove the 'gs_unref_object'

I think gs_unref_object is favorable. 

"We never need to free 'active' in impl_manager_activate_connection()." is IMO not true. At the "error:" label, we do need to unref @active (and do so).

gs_unref_object clearly ~documents~ that the @active variable owns a reference. At it also clearly documents the single place, where the ownership is passed on ("stolen").


patch lgtm.

Comment 5 Beniamino Galvani 2018-06-04 16:14:40 UTC
(In reply to Francesco Giudici from comment #3)
> (In reply to Beniamino Galvani from comment #2)
> > Created attachment 1447360 [details]
> > [PATCH v2] manager: fix failed assertion on user activations
> 
> Patch looks good, anyway why not just remove the 'gs_unref_object' in the
> var declaration?  We never need to free 'active' in
> impl_manager_activate_connection().
> So we will have to remove the "g_steal_pointer" as in the patch but will not
> need to add it after the call to nm_active_connection_authorize().

Yes, this is a possible alternative, I just wanted to keep the patch closer to what previous code did (+ what Thomas said). Applied to master:

https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=7696e6c1fa871236832a1e4eb6671c406efba867

Comment 6 Francesco Giudici 2018-06-05 10:00:07 UTC
(In reply to Thomas Haller from comment #4)
> (In reply to Francesco Giudici from comment #3)
> > (In reply to Beniamino Galvani from comment #2)
> > > Created attachment 1447360 [details]
> > > [PATCH v2] manager: fix failed assertion on user activations
> > 
> > Patch looks good, anyway why not just remove the 'gs_unref_object'
> 
> I think gs_unref_object is favorable. 
> 
> "We never need to free 'active' in impl_manager_activate_connection()." is
> IMO not true. At the "error:" label, we do need to unref @active (and do so).

What I mean, is that when we arrive at the "error:" label, @active is NULL. So there is nothing to unref.
Either @active is already NULL after _new_active_connection () and we jump to "error:" or we have a reference on @active and we make it NULL (leaving it to nm_active_connection_authorize() ) to prevent the gs_unref to be applied when falling back to "error:".
So, looked a bit weird putting gs_unref and then taking care that it never happens... but patch is ok.

> 
> gs_unref_object clearly ~documents~ that the @active variable owns a
> reference. At it also clearly documents the single place, where the
> ownership is passed on ("stolen").

Yeah, I can understand your point of view.

> 
> 
> patch lgtm.

Comment 7 Jan Kurik 2018-08-14 11:18:54 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 29 development cycle.
Changing version to '29'.

Comment 8 Ben Cotton 2019-10-31 20:44:17 UTC
This message is a reminder that Fedora 29 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 29 on 2019-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '29'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 29 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 9 Ben Cotton 2019-11-27 19:23:34 UTC
Fedora 29 changed to end-of-life (EOL) status on 2019-11-26. Fedora 29 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.