Re: nm_netlink_monitor_attach seg fault v0.9.4.0



Dan,

Thanks for the quick response.

Versions of nl on the failing set up:

Source: libnl3
Version: 3.2.7-4

Source: libnl
Version: 1.1-7

The live cd was debian 8 so much newer.  However I've been running Wheezy fine for 4 months, so not sure what has changed... NetworkManager seq faults as soon as it starts after boot, and its a laptop which i have been rebooting almost every day, with no issues until yesterday.

Valgrind does not really shed any more light
==1438== Invalid read of size 8
==1438==    at 0x46182E: nm_netlink_monitor_attach (nm-netlink-monitor.c:477)
==1438==    by 0x462513: nm_netlink_monitor_get (nm-netlink-monitor.c:822)
==1438==    by 0x425356: main (main.c:544)
==1438==  Address 0xf000059e092b4120 is not stack'd, malloc'd or (recently) free'd

Address is different on each run so it looks like self->parent.g_type_instance.g_class is used uninitialized.

Thanks,
Nick

On 14 May 2015 at 16:17, Dan Williams <dcbw redhat com> wrote:
On Thu, 2015-05-14 at 13:19 +0100, Nick Carter wrote:
> Hi,
>
> NetworkManager is seg faulting for me on Debian Wheezy network-manager
> v0.9.4.0.   Is this a known issue ?
>
> (gdb) p *self->parent.g_type_instance.g_class
> Cannot access memory at address 0x23802f89006fea00
>
> If i boot off a live cd, all is fine, so I dont think I have h/w issue.
> If i use /etc/network/interfaces then networking is fine.

Can you compare the version of the 'libnl' and 'libnl-3' packages on the
livecd and the normal install?  Also if possible, could you run
NetworkManager under valgrind in the normal install to see if it turns
up any memory errors?

0.9.4 is unfortunately over 3 years old at this point and not maintained
any more, but if it's an easy fix perhaps the Debian folks could add the
patch to Wheezy.

Dan

> Thanks
> Nick
>
> ncarter ###:~/network-manager-0.9.4.0/src$ sudo gdb -args
> /usr/sbin/NetworkManager --no-daemon
> [sudo] password for ncarter:
> GNU gdb (GDB) 7.4.1-debian
> Copyright (C) 2012 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
> >
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /usr/sbin/NetworkManager...Reading symbols from
> /usr/lib/debug/usr/sbin/NetworkManager...done.
> done.
> (gdb) run
> Starting program: /usr/sbin/NetworkManager --no-daemon
> warning: no loadable sections found in added symbol-file system-supplied
> DSO at 0x7ffff7ffa000
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> NetworkManager[12169]: <info> NetworkManager (version 0.9.4.0) is
> starting...
> NetworkManager[12169]: <info> Read config file
> /etc/NetworkManager/NetworkManager.conf
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x000000000046182e in nm_netlink_monitor_attach (self=0x6f5cc0)
>     at nm-netlink-monitor.c:477
>     477     g_return_if_fail (NM_IS_NETLINK_MONITOR (self));
>
> gdb) bt
> #0  0x000000000046182e in nm_netlink_monitor_attach (self=0x6f5cc0)
>         at nm-netlink-monitor.c:477
> #1  0x0000000000462514 in nm_netlink_monitor_get ()
>             at nm-netlink-monitor.c:822
> #2  0x0000000000425357 in main (argc=1, argv=0x7fffffffe6a8) at main.c:544
>             (gdb) f 1
> #1  0x0000000000462514 in nm_netlink_monitor_get ()
>                 at nm-netlink-monitor.c:822
>                 822             nm_netlink_monitor_attach (singleton);
>
> (gdb) p self
> $23 = (NMNetlinkMonitor *) 0x6f5cc0
> (gdb) p *self
> $24 = {parent = {g_type_instance = {g_class = 0x23802f89006fea00},
>     ref_count = 1, qdata = 0x0}}
> (gdb) p self->parent
>     $25 = {g_type_instance = {g_class = 0x23802f89006fea00}, ref_count = 1,
>         qdata = 0x0}
> (gdb) p self->parent.g_type_instance
>     $26 = {g_class = 0x23802f89006fea00}
> (gdb) p self->parent.g_type_instance.g_class
>     $27 = (GTypeClass *) 0x23802f89006fea00
> (gdb) p *self->parent.g_type_instance.g_class
> Cannot access memory at address 0x23802f89006fea00
>
> . so i assume this is the crash ?
> #  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
> #    GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean
> __r; \
> #      if (!__inst) \
> #          __r = FALSE; \
> #            else if (__inst->g_class && __inst->g_class->g_type == __t) \
> #
> _______________________________________________
> networkmanager-list mailing list
> networkmanager-list gnome org
> https://mail.gnome.org/mailman/listinfo/networkmanager-list





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]