Nixpkgs: network-manager-applet does not prompt for wifi passphrase when selecting a new network

Created on 15 Apr 2018  Â·  11Comments  Â·  Source: NixOS/nixpkgs

Issue description

networkmanagerapplet (a.k.a. nm-applet) does not prompt for wifi passphrase when selecting a new network.

The problem can be circumvented by with services.gnome3.gnome-keyring.enable = true; or by using nmtui instead of nm-applet.

This started happening with 8dc518c2dfb58e986d5ea2ddc5a630862725276f which removed the dependency of nm-applet on gnome3.libgnome-keyring (among other things).

@jtojnar made two good points:

  1. nm-applet can used other keyrings (https://github.com/NixOS/nixpkgs/commit/8dc518c2dfb58e986d5ea2ddc5a630862725276f#r28366386)
  2. the fact that nm-applet silently fails when no keyring is available is an upstream bug (https://github.com/NixOS/nixpkgs/commit/8dc518c2dfb58e986d5ea2ddc5a630862725276f#r28369001)

I commented on the upstream bug: https://bugzilla.gnome.org/show_bug.cgi?id=750290#c3 but that bug has been open for 3 years now, so not holding my breath.

From the user's perspective, this is a pretty big regression: Consider the case of a user using the XFCE desktop manager, or nm-applet with i3. When upgrading from 17.09 to 18.03, this user will no longer be able to punch in wifi passphrases when s/he join new networks.

Unless someone has a better idea, I'd suggest adding back the dependency of on gnome3.libgnome-keyring in networkmanagerapplet (and/or any other dependency that's required to fix this issue).

Cc @jtojnar (and @volth / @yegortimoshenko who seem to be doing lots of XFCE work)

Steps to reproduce

  1. Install NixOS 18.03 or unstable with XFCE desktop manager.
  2. Attempt to join a new Wifi network secured by a PSK
  3. The popup window prompting for the key never appears
regression

Most helpful comment

Other than that, if upstream is unable to reproduce it, we could try to find the offending codepath ourselves.

Very nice effort on the debugging. I learned a few tricks reading that comment, so thanks.

A note in release notes is friendly enough for me.

I must say I wholeheartedly disagree. I understand that NixOS targets power-users but finding yourself with a host that you can't get on the network after install/upgrade without any obvious error messages is one of the most frustrating experience we could give to our users.

I've confirmed that the following fixes the issue:

--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {

   nativeBuildInputs = [ meson ninja intltool pkgconfig wrapGAppsHook gobjectIntrospection gtk-doc docbook_xsl libxml2 ];

-  propagatedUserEnvPkgs = [ hicolor-icon-theme ];
+  propagatedUserEnvPkgs = [ hicolor-icon-theme gnome3.gnome-keyring ];

   NIX_CFLAGS = [
     ''-DMOBILE_BROADBAND_PROVIDER_INFO=\"${mobile-broadband-provider-info}/share/mobile-broadband-provider-info/serviceproviders.xml\"''

Also, the additional closure is quite small:

$ nix-store -qR $(nix-build --no-out-link -E '(with import <nixpkgs> {}; gnome3.gnome-keyring)') | sort -u > keyring
$ nix-store -qR $(nix-build --no-out-link -E '(with import <nixpkgs> {}; networkmanagerapplet)') | sort -u > nm-applet
$ diff keyring nm-applet | grep ^\< | cut -f 2 -d \  | xargs du -csm | sort -rn
28  total
11  /nix/store/hk521cvcfcr4h86294xpsrq417141rkz-gnupg-2.2.5
6   /nix/store/yjad1cam4bxfncdp0sb4192flyaaalrz-openssh-7.6p1
6   /nix/store/qn7mp31l6c4dx69k5296lsf2gixg5i9n-gnome-keyring-3.28.0.2
4   /nix/store/bfl18g64b6pgyjr9l2nkskkfkg9g2hgd-gcr-3.28.0
2   /nix/store/p4kn6rx7akmnh5vps2pg9ag1i8419cgb-libgnome-keyring-3.12.0
1   /nix/store/xhx7fr3x4jzkv8s726ddncvfdrd93j40-pcsclite-1.8.23
1   /nix/store/rl35hp1q42ngxgdhv8awd681z6x7j7wk-libedit-20160903-3.1
1   /nix/store/pjw5r8xfxsf90qa6jl8zxcm837hvif7r-npth-1.5
1   /nix/store/f2l76817cjfm20894h4wzipbkaq4kqvb-libassuan-2.5.1
1   /nix/store/9b8aqmbivy7i0b5mzsf08wd2rws2p59i-libksba-1.3.5

I'd argue that unless we can find a better solution, adding this dependency is better than keeping the silent failure. Upstream has been unresponsive for years but if they ever wake up it's easy enough for us to revert the workaround.

Other than Gnome Keyring, what other backends to libsecrets are there? I could only find KWallet and greping into nixpkgs suggests that KDE doesn't even use networkmanagerapplet, at least unless a user explicitly installs it.

All 11 comments

is it related to gnome-keyring?
I see WiFi passwords are saved in plain-text in /etc/NetworkManager/system-connections/

And the dialog does prompt for WiFi password (it does not for VPN, but that is another bug related to insufficient privileges):

Ah, sorry.
I'm using master from 2018-03-20, a bit before merging https://github.com/NixOS/nixpkgs/pull/36893 which caused the regression

Do you have a configuration.nix to reproduce this in QEMU? Perhaps with mac80211_hwsim.

Ok, here comes the repro (on 48d4cef9d31):

{ config, pkgs, ... }:

{
  boot.kernelModules = [ "mac80211_hwsim" ];

  networking.networkmanager.enable = true;
  services.xserver.enable = true;
  services.xserver.libinput.enable = true;
  services.xserver.displayManager.lightdm.enable = true;
  services.xserver.desktopManager.xfce.enable = true;
  # services.gnome3.gnome-keyring.enable = true;

  users.extraUsers.guest = {
    isNormalUser = true;
    uid = 1000;
    initialPassword = "";
    extraGroups = ["users" "wheel" "networkmanager"];
  };
}

Then the usual:

nix-build -E '(with import <nixpkgs/nixos> { configuration = import ./configuration.nix; }; vm)' &&
    rm -vf nixos.qcow2 &&
    ./result/bin/run-nixos-vm

And finally inside the VM:

nmcli dev wifi hotspot ifname wlan1 ssid Test\ Wifi password testitnow123

(I wasn't able to get hostapd to work)

From there, you'll see the network appear in the menu but won't be able to connect. Will work fine with nmtui.

Uncomment the services.gnome3.gnome-keyring.enable line in the config and the password prompt now works fine.

Cool. When I kill nm-applet and then run it in a terminal, I can see the following output:

** Message: 07:33:19.892 Remote error from secret service: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files

The message seems to come from libsecret itself.

@jtojnar, so this confirms your theory but how do we fix this in a way that's user friendly?

A note in release notes is friendly enough for me.

Other than that, if upstream is unable to reproduce it, we could try to find the offending codepath ourselves.

I tried running gdb --pid=$(pidof nm-applet) with

{
  …
nixpkgs.config.packageOverrides = super: {
    libsecret = enableDebugging (super.libsecret.overrideAttrs (super: {
      patches = [
        (pkgs.writeText "trap.patch" ''
          --- a/libsecret/secret-util.c
          +++ b/libsecret/secret-util.c
          @@ -125,7 +125,7 @@
            remote = g_dbus_error_get_remote_error (*error);
            if (remote) {
                if (g_dbus_error_strip_remote_error (*error)) {
          -         g_message ("Remote error from secret service: %s: %s",
          +         g_error ("Remote error from secret service: %s: %s",
                               remote, (*error)->message);
                }
                g_free (remote);
        '')
      ];
    }));
    networkmanager = enableDebugging super.networkmanager;
    networkmanagerapplet = enableDebugging super.networkmanagerapplet;
  };

  environment.enableDebugInfo = true;

  environment.systemPackages = with pkgs; [
    gdb
  ];
}

It trapped correctly after creating the hotspot and typing continue. backtrace produced the following:

#0  0x00007fa9e3311321 in _g_log_abort () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#1  0x00007fa9e33125fb in g_logv () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#2  0x00007fa9e331274f in g_log () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#3  0x00007fa9e2b88f7f in _secret_util_strip_remote_error (error=0x7fff79f1cbe8) at libsecret/secret-util.c:128
#4  0x00007fa9e2b88fa8 in _secret_util_propagate_error (async=async@entry=0x174bc30, error=error@entry=0x7fff79f1cbe8) at libsecret/secret-util.c:113
#5  0x00007fa9e2b853f8 in secret_service_search_for_dbus_paths_finish (self=<optimized out>, result=result@entry=0x174bc30, unlocked=unlocked@entry=0x7fff79f1cbf0, locked=locked@entry=0x0, 
    error=error@entry=0x7fff79f1cbe8) at libsecret/secret-paths.c:583
#6  0x00007fa9e2b7a8ac in on_delete_searched (source=0x15ab5e0, result=0x174bc30, user_data=<optimized out>) at libsecret/secret-methods.c:1627
#7  0x00007fa9e38a4b76 in g_simple_async_result_complete () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#8  0x00007fa9e2b82d33 in on_search_items_complete (source=0x15ab5e0, result=0x7fa9c80045e0, user_data=<optimized out>) at libsecret/secret-paths.c:316
#9  0x00007fa9e38b6c13 in g_task_return_now () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#10 0x00007fa9e38b7636 in g_task_return () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#11 0x00007fa9e38f5fc9 in reply_cb () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#12 0x00007fa9e38b6c13 in g_task_return_now () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#13 0x00007fa9e38b7636 in g_task_return () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#14 0x00007fa9e38eaae9 in g_dbus_connection_call_done () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#15 0x00007fa9e38b6c13 in g_task_return_now () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#16 0x00007fa9e38b6c49 in complete_in_idle_cb () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#17 0x00007fa9e330b7e5 in g_main_context_dispatch () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#18 0x00007fa9e330bbb0 in g_main_context_iterate.isra () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#19 0x00007fa9e330bc3c in g_main_context_iteration () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#20 0x00007fa9e38cc95d in g_application_run () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#21 0x00000000004108c7 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:81

Unfortunately, it is not very helpful due to all the threads and services. Not sure how to debug it better.

Other than that, if upstream is unable to reproduce it, we could try to find the offending codepath ourselves.

Very nice effort on the debugging. I learned a few tricks reading that comment, so thanks.

A note in release notes is friendly enough for me.

I must say I wholeheartedly disagree. I understand that NixOS targets power-users but finding yourself with a host that you can't get on the network after install/upgrade without any obvious error messages is one of the most frustrating experience we could give to our users.

I've confirmed that the following fixes the issue:

--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {

   nativeBuildInputs = [ meson ninja intltool pkgconfig wrapGAppsHook gobjectIntrospection gtk-doc docbook_xsl libxml2 ];

-  propagatedUserEnvPkgs = [ hicolor-icon-theme ];
+  propagatedUserEnvPkgs = [ hicolor-icon-theme gnome3.gnome-keyring ];

   NIX_CFLAGS = [
     ''-DMOBILE_BROADBAND_PROVIDER_INFO=\"${mobile-broadband-provider-info}/share/mobile-broadband-provider-info/serviceproviders.xml\"''

Also, the additional closure is quite small:

$ nix-store -qR $(nix-build --no-out-link -E '(with import <nixpkgs> {}; gnome3.gnome-keyring)') | sort -u > keyring
$ nix-store -qR $(nix-build --no-out-link -E '(with import <nixpkgs> {}; networkmanagerapplet)') | sort -u > nm-applet
$ diff keyring nm-applet | grep ^\< | cut -f 2 -d \  | xargs du -csm | sort -rn
28  total
11  /nix/store/hk521cvcfcr4h86294xpsrq417141rkz-gnupg-2.2.5
6   /nix/store/yjad1cam4bxfncdp0sb4192flyaaalrz-openssh-7.6p1
6   /nix/store/qn7mp31l6c4dx69k5296lsf2gixg5i9n-gnome-keyring-3.28.0.2
4   /nix/store/bfl18g64b6pgyjr9l2nkskkfkg9g2hgd-gcr-3.28.0
2   /nix/store/p4kn6rx7akmnh5vps2pg9ag1i8419cgb-libgnome-keyring-3.12.0
1   /nix/store/xhx7fr3x4jzkv8s726ddncvfdrd93j40-pcsclite-1.8.23
1   /nix/store/rl35hp1q42ngxgdhv8awd681z6x7j7wk-libedit-20160903-3.1
1   /nix/store/pjw5r8xfxsf90qa6jl8zxcm837hvif7r-npth-1.5
1   /nix/store/f2l76817cjfm20894h4wzipbkaq4kqvb-libassuan-2.5.1
1   /nix/store/9b8aqmbivy7i0b5mzsf08wd2rws2p59i-libksba-1.3.5

I'd argue that unless we can find a better solution, adding this dependency is better than keeping the silent failure. Upstream has been unresponsive for years but if they ever wake up it's easy enough for us to revert the workaround.

Other than Gnome Keyring, what other backends to libsecrets are there? I could only find KWallet and greping into nixpkgs suggests that KDE doesn't even use networkmanagerapplet, at least unless a user explicitly installs it.

I think Qt based desktop managers would use KWallet.

I agree, that adding it with a FIXME comment with link here should be good enough for now, though.

Other threads are completely useless:


GDB session

(gdb) c
Continuing.
[Thread 0x7f0b6eb43700 (LWP 1023) exited]
[New Thread 0x7f0b6eb43700 (LWP 1128)]

Thread 1 ".nm-applet-wrap" received signal SIGTRAP, Trace/breakpoint trap.
0x00007f0b88662321 in _g_log_abort () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
(gdb) info threads
  Id   Target Id         Frame 
* 1    Thread 0x7f0b8ab0b9c0 (LWP 962) ".nm-applet-wrap" 0x00007f0b88662321 in _g_log_abort () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
  2    Thread 0x7f0b75887700 (LWP 981) "gmain" 0x00007f0b874f0a91 in __GI___poll (fds=0x26f7560, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
  3    Thread 0x7f0b75086700 (LWP 982) "gdbus" 0x00007f0b874f0a91 in __GI___poll (fds=0x2708a20, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
  4    Thread 0x7f0b6f54b700 (LWP 992) "dconf worker" 0x00007f0b874f0a91 in __GI___poll (fds=0x7f0b64001320, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
  6    Thread 0x7f0b6eb43700 (LWP 1128) "pool" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
(gdb) thread 
apply  find   name   
(gdb) bt
#0  0x00007f0b88662321 in _g_log_abort () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#1  0x00007f0b8866334c in g_log_default_handler () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#2  0x00007f0b886635dd in g_logv () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#3  0x00007f0b8866374f in g_log () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#4  0x00007f0b87ed9f5e in _secret_util_strip_remote_error (error=0x7ffd34b7acc8) at libsecret/secret-util.c:128
#5  0x00007f0b87ed9fa8 in _secret_util_propagate_error (async=async@entry=0x28a1f20, error=error@entry=0x7ffd34b7acc8) at libsecret/secret-util.c:113
#6  0x00007f0b87ed63f8 in secret_service_search_for_dbus_paths_finish (self=<optimized out>, result=result@entry=0x28a1f20, unlocked=unlocked@entry=0x7ffd34b7acd0, locked=locked@entry=0x0, 
    error=error@entry=0x7ffd34b7acc8) at libsecret/secret-paths.c:583
#7  0x00007f0b87ecb8ac in on_delete_searched (source=0x270a2a0, result=0x28a1f20, user_data=<optimized out>) at libsecret/secret-methods.c:1627
#8  0x00007f0b88bf5b76 in g_simple_async_result_complete () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#9  0x00007f0b87ed3d33 in on_search_items_complete (source=0x270a2a0, result=0x7f0b68004440, user_data=<optimized out>) at libsecret/secret-paths.c:316
#10 0x00007f0b88c07c13 in g_task_return_now () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#11 0x00007f0b88c08636 in g_task_return () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#12 0x00007f0b88c46fc9 in reply_cb () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#13 0x00007f0b88c07c13 in g_task_return_now () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#14 0x00007f0b88c08636 in g_task_return () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#15 0x00007f0b88c3bae9 in g_dbus_connection_call_done () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#16 0x00007f0b88c07c13 in g_task_return_now () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#17 0x00007f0b88c07c49 in complete_in_idle_cb () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#18 0x00007f0b8865c7e5 in g_main_context_dispatch () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#19 0x00007f0b8865cbb0 in g_main_context_iterate.isra () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#20 0x00007f0b8865cc3c in g_main_context_iteration () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#21 0x00007f0b88c1d95d in g_application_run () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#22 0x00000000004108c7 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:81
(gdb) thread 2
[Switching to thread 2 (Thread 0x7f0b75887700 (LWP 981))]
#0  0x00007f0b874f0a91 in __GI___poll (fds=0x26f7560, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29  in ../sysdeps/unix/sysv/linux/poll.c
(gdb) bt
#0  0x00007f0b874f0a91 in __GI___poll (fds=0x26f7560, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f0b8865cb29 in g_main_context_iterate.isra () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#2  0x00007f0b8865cc3c in g_main_context_iteration () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#3  0x00007f0b8865cc81 in glib_worker_main () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#4  0x00007f0b886844f5 in g_thread_proxy () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#5  0x00007f0b877c32a7 in start_thread (arg=0x7f0b75887700) at pthread_create.c:465
#6  0x00007f0b874fa57f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) thread 3
[Switching to thread 3 (Thread 0x7f0b75086700 (LWP 982))]
#0  0x00007f0b874f0a91 in __GI___poll (fds=0x2708a20, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29  in ../sysdeps/unix/sysv/linux/poll.c
(gdb) bt
#0  0x00007f0b874f0a91 in __GI___poll (fds=0x2708a20, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f0b8865cb29 in g_main_context_iterate.isra () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#2  0x00007f0b8865cec2 in g_main_loop_run () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#3  0x00007f0b88c49a96 in gdbus_shared_thread_func () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libgio-2.0.so.0
#4  0x00007f0b886844f5 in g_thread_proxy () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#5  0x00007f0b877c32a7 in start_thread (arg=0x7f0b75086700) at pthread_create.c:465
#6  0x00007f0b874fa57f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) thread 4
[Switching to thread 4 (Thread 0x7f0b6f54b700 (LWP 992))]
#0  0x00007f0b874f0a91 in __GI___poll (fds=0x7f0b64001320, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29  in ../sysdeps/unix/sysv/linux/poll.c
(gdb) bt
#0  0x00007f0b874f0a91 in __GI___poll (fds=0x7f0b64001320, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f0b8865cb29 in g_main_context_iterate.isra () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#2  0x00007f0b8865cc3c in g_main_context_iteration () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#3  0x00007f0b6fbe50ed in dconf_gdbus_worker_thread () from /nix/store/rv9vbbp5dapas5i5991ifcvp63ap4l4s-dconf-0.28.0-lib/lib/gio/modules/libdconfsettings.so
#4  0x00007f0b886844f5 in g_thread_proxy () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#5  0x00007f0b877c32a7 in start_thread (arg=0x7f0b6f54b700) at pthread_create.c:465
#6  0x00007f0b874fa57f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) thread 6
[Switching to thread 6 (Thread 0x7f0b6eb43700 (LWP 1128))]
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
38  ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or directory.
(gdb) bt
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f0b886a267a in g_cond_wait_until () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#2  0x00007f0b8862fb81 in g_async_queue_pop_intern_unlocked () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#3  0x00007f0b88684e94 in g_thread_pool_thread_proxy () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#4  0x00007f0b886844f5 in g_thread_proxy () from /nix/store/dqlc8y4phlg1hmdbwkhqfwhnxcac88d1-glib-2.56.0/lib/libglib-2.0.so.0
#5  0x00007f0b877c32a7 in start_thread (arg=0x7f0b6eb43700) at pthread_create.c:465
#6  0x00007f0b874fa57f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

It would be nice to be able to set break point to nma_wifi_dialog_new.

Apparently, you can just use break nma_wifi_dialog_new and it will find the correct function. After removing the libsecret patch, I verified that the function never gets called – at least the breakpoint does not seem to get triggered.

Was this page helpful?
0 / 5 - 0 ratings