wwan: previous connections apn missing when enabling panel
Enabling Mobile Network panel just after starting GNOME Settings does not show previous connections in access point names. Restarting GNOME Settings produces the Access Point Names dialog to be properly filled.
Prerequisites
- Last time GNOME Settings was closed, Mobile Network panel must have been in disabled state.
- Verify that previous wwan connections exist in network manager (for example, with nmcli or network-manager-applet).
Steps to reproduce
- Start GNOME Settings and enable Mobile Network panel.
- Open Access Point Names dialog. It is filled with the default APNs. None of them is marked as the
default_apn
. - Close GNOME Settings.
- Open GNOME Settings and go to Mobile Network panel
- Open Access Point Names dialog. Now, in addition to the previous APNs, the APNs corresponding to network manager connections also appear on the list. If a previous data connection had existed, one of the APNs will also be marked as the
default_apn
.
Setup information
- OS: postmarketOS edge/Alpine linux edge
- GNOME Control Center version: 41.0 locally built from commit 40fffb25
Debugging hints
It seems like the list of APNs created from wwan_data_update_apn_list
is only filled while creating the panel. Therefore, if by the time the panel is created, it is disabled, network manager connections are not considered. It is only after the restart with the panel enabled that the network manager connections are considered in wwan_data_update_apn_list
.
Further consequences
If a new APN is selected in the first start of GNOME Settings, then a new network manager connection identical to the previous ones is created. Repeating this process multiple times (for example, due to disabling the modem at nights) produces an unbounded growth in the number of connections managed by network manager, which is quite an inconvenience.
@pksadiq mentioning you as owner of the panel. I hope the steps to reproduce are clear. If you have issues reproducing the bug, I could record a video to show the problem I am experimenting.