Hi,

I got the following g_warn with current git-master:


#0  0x0000003370c504e9 in g_logv () from /lib64/libglib-2.0.so.0
No symbol table info available.
#1  0x0000003370c5063f in g_log () from /lib64/libglib-2.0.so.0
No symbol table info available.
#2  0x0000003370c50956 in g_warn_message () from /lib64/libglib-2.0.so.0
No symbol table info available.
#3  0x0000000000439962 in carrier_changed (device=0x1d94300, carrier=1) at 
devices/nm-device.c:1021
        priv = 0x1d94090
        __FUNCTION__ = "carrier_changed"
        __PRETTY_FUNCTION__ = "carrier_changed"
#4  0x0000000000488f12 in carrier_changed (device=0x1d94300, carrier=1) at 
devices/nm-device-ethernet.c:1646
No locals.
#5  0x0000000000434c94 in nm_device_set_carrier (device=device@entry=0x1d94300, 
carrier=1) at devices/nm-device.c:1104
        priv = 0x1d94090
        klass = 0x1d87440
        state = NM_DEVICE_STATE_UNMANAGED
        iface = <optimized out>
        __FUNCTION__ = "nm_device_set_carrier"
#6  0x0000000000434dd5 in check_carrier (device=device@entry=0x1d94300) at 
devices/nm-device.c:1298
        ifindex = 2
#7  0x0000000000434ef8 in constructed (object=0x1d94300) at 
devices/nm-device.c:550
        dev = 0x1d94300
        priv = 0x1d94090
        __FUNCTION__ = "constructed"
#8  0x0000003371c15d87 in g_object_new_internal () from 
/lib64/libgobject-2.0.so.0
No symbol table info available.
#9  0x0000003371c17814 in g_object_new_valist () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#10 0x0000003371c17c11 in g_object_new () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#11 0x000000000048bc2e in nm_device_ethernet_new 
(platform_device=platform_device@entry=0x1d82e58) at 
devices/nm-device-ethernet.c:336
        __PRETTY_FUNCTION__ = "nm_device_ethernet_new"
#12 0x000000000047c600 in platform_link_added (self=0x1d70150, 
ifindex=ifindex@entry=2, plink=plink@entry=0x1d82e58, 
reason=reason@entry=NM_PLATFORM_REASON_INTERNAL) at nm-manager.c:1954
        parent_ifindex = -1
        parent = <optimized out>
        priv = <optimized out>
        device = 0x0
        iter = 0x0
        error = 0x0
        __PRETTY_FUNCTION__ = "platform_link_added"
        __FUNCTION__ = "platform_link_added"
#13 0x000000000047c7db in platform_link_cb (platform=<optimized out>, 
ifindex=2, plink=0x1d82e58, change_type=<optimized out>, 
reason=NM_PLATFORM_REASON_INTERNAL, user_data=0x1d70150) at nm-manager.c:2038
No locals.
#14 0x0000003371805d8c in ffi_call_unix64 () from /lib64/libffi.so.6
No symbol table info available.
#15 0x00000033718056bc in ffi_call () from /lib64/libffi.so.6
No symbol table info available.
#16 0x0000003371c10ad8 in g_cclosure_marshal_generic () from 
/lib64/libgobject-2.0.so.0
No symbol table info available.
#17 0x0000003371c10298 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#18 0x0000003371c2235d in signal_emit_unlocked_R () from 
/lib64/libgobject-2.0.so.0
No symbol table info available.
#19 0x0000003371c2a0f2 in g_signal_emit_valist () from 
/lib64/libgobject-2.0.so.0
No symbol table info available.
#20 0x0000003371c2a3af in g_signal_emit () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#21 0x000000000044f6ba in nm_platform_query_devices () at 
platform/nm-platform.c:330
        links_array = 0x7fb878007580
        links = 0x1d82e10
        i = 1
#22 0x000000000047de4c in nm_manager_start (self=0x1d70150) at nm-manager.c:4025
        priv = 0x1d70000
        i = 3
---Type <return> to continue, or q <return> to quit---
        __FUNCTION__ = "nm_manager_start"
#23 0x0000000000429d31 in main (argc=1, argv=0x7fffb4c31628) at main.c:654
        opt_ctx = <optimized out>
        opt_log_level = 0x0
        opt_log_domains = 0x0
        become_daemon = 1
        run_from_build_dir = 0
        debug = 1
        g_fatal_warnings = 0
        pidfile = 0x1cdf280 
"/opt/test/var/run/NetworkManager/NetworkManager.pid"
        state_file = 0x1cdf3b0 
"/opt/test/var/lib/NetworkManager/NetworkManager.state"
        wifi_enabled = 1
        net_enabled = 1
        wwan_enabled = 1
        wimax_enabled = 1
        success = 0
        show_version = 0
        i = <optimized out>
        manager = 0x1d70150
        vpn_manager = <optimized out>
        dns_mgr = <optimized out>
        dbus_mgr = 0x1cecf40
        sup_mgr = <optimized out>
        dhcp_mgr = <optimized out>
        fw_mgr = <optimized out>
        settings = <optimized out>
        config = <optimized out>
        session_monitor = <optimized out>
        error = 0x0
        wrote_pidfile = 0
        bad_domains = 0x0
        options = {{long_name = 0x4c7dd9 "version", short_name = 86 'V', flags 
= 0, arg = G_OPTION_ARG_NONE, arg_data = 0x7fffb4c314dc, description = 0x4ab3a8 
"Print NetworkManager version and exit", arg_description = 0x0}, {
            long_name = 0x4aba70 "no-daemon", short_name = 110 'n', flags = 4, 
arg = G_OPTION_ARG_NONE, arg_data = 0x7fffb4c3150c, description = 0x4aba7a 
"Don't become a daemon", arg_description = 0x0}, {long_name = 0x4af9eb "debug", 
            short_name = 100 'd', flags = 0, arg = G_OPTION_ARG_NONE, arg_data 
= 0x7fffb4c31504, description = 0x4ab3d0 "Don't become a daemon, and log to 
stderr", arg_description = 0x0}, {long_name = 0x4aba90 "log-level", 
            short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_STRING, 
arg_data = 0x7fffb4c31518, description = 0x1cdd9c0 "Log level: one of 
[DEBUG,INFO,WARN,ERR]", arg_description = 0x4abab1 "INFO"}, {
            long_name = 0x4abab6 "log-domains", short_name = 0 '\000', flags = 
0, arg = G_OPTION_ARG_STRING, arg_data = 0x7fffb4c31510, 
            description = 0x1cddb00 "Log domains separated by ',': any 
combination of 
[DEFAULT,NONE,PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,DHCP,PPP,WIFI_SCAN,IP4,IP6,IP,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,COR"...,
 arg_description = 0x4abac2 "PLATFORM,RFKILL,WIFI"}, {long_name = 0x4abad7 
"g-fatal-warnings", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, 
arg_data = 0x7fffb4c31500, description = 0x4abae8 "Make all warnings fatal", 
            arg_description = 0x0}, {long_name = 0x4abb00 "pid-file", 
short_name = 112 'p', flags = 0, arg = G_OPTION_ARG_FILENAME, arg_data = 
0x7fffb4c314f8, description = 0x4ab438 "Specify the location of a PID file", 
            arg_description = 0x4abb09 "filename"}, {long_name = 0x4abb12 
"state-file", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_FILENAME, 
arg_data = 0x7fffb4c314f0, description = 0x4abb1d "State file location", 
            arg_description = 0x4abb31 "/path/to/state.file"}, {long_name = 
0x4abb45 "run-from-build-dir", short_name = 0 '\000', flags = 0, arg = 
G_OPTION_ARG_NONE, arg_data = 0x7fffb4c31508, 
            description = 0x4abb58 "Run from build directory", arg_description 
= 0x0}, {long_name = 0x0, short_name = 0 '\000', flags = 0, arg = 
G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
        __FUNCTION__ = "main"




print *priv
$2 = {disposed = 0, initialized = 1, in_state_changed = 0, state = 
NM_DEVICE_STATE_UNMANAGED, state_reason = NM_DEVICE_STATE_REASON_NONE, 
queued_state = {state = NM_DEVICE_STATE_UNKNOWN, reason = 
NM_DEVICE_STATE_REASON_NONE, id = 0}, 
  queued_ip_config_id = 0, pending_actions = 0x0, udi = 0x1d87c30 
"/sys/devices/pci0000:00/0000:00:19.0/net/em1", path = 0x0, iface = 0x1d87c70 
"em1", ifindex = 2, is_software = 0, ip_iface = 0x0, ip_ifindex = 0, 
  type = NM_DEVICE_TYPE_ETHERNET, type_desc = 0x1d87cd0 "Ethernet", 
capabilities = 3, driver = 0x1d87c90 "e1000e", driver_version = 0x1d87cb0 
"2.3.2-k", firmware_version = 0x1d87cf0 "0.13-3", rfkill_type = 
RFKILL_TYPE_UNKNOWN, 
  firmware_missing = 0Python Exception <class 'gdb.error'> There is no member 
named keys.: 
, available_connections = 0x1d90800, hw_addr = "<\227\016b\332%", '\000' 
<repeats 13 times>, hw_addr_len = 6, physical_port_id = 0x0, unmanaged_flags = 
NM_UNMANAGED_NONE, is_nm_owned = 0, 
  delete_on_deactivate_data = 0x0, ip4_address = 0, queued_act_request = 0x0, 
act_request = 0x0, act_source_id = 0, act_source_func = 0x0, act_source6_id = 
0, act_source6_func = 0x0, link_connected_id = 0, link_disconnected_id = 0, 
  carrier_defer_id = 0, carrier = 1, carrier_wait_id = 0, ignore_carrier = 0, 
mtu = 0, dhcp_timeout = 0, dhcp_anycast_address = 0x0, ip4_config = 0x0, 
ip4_state = IP_NONE, dev_ip4_config = 0x0, ext_ip4_config = 0x0, dhcp4_client = 
0x0, 
  dhcp4_state_sigid = 0, dhcp4_timeout_sigid = 0, dhcp4_config = 0x0, 
vpn4_config = 0x0, arp_round2_id = 0, gw_ping = {log_domain = 0, timeout = 0, 
watch = 0, pid = 0}, dnsmasq_manager = 0x0, dnsmasq_state_id = 0, 
  fw_manager = 0x7fb8780050e0, fw_call = 0x0, aipd_pid = 0, aipd_watch = 0, 
aipd_timeout = 0, ip6_config = 0x0, ip6_state = IP_NONE, vpn6_config = 0x0, 
ext_ip6_config = 0x0, rdisc = 0x0, rdisc_config_changed_sigid = 0, 
  rdisc_use_tempaddr = NM_SETTING_IP6_CONFIG_PRIVACY_DISABLED, ac_ip6_config = 
0x0, Python Exception <class 'gdb.error'> There is no member named keys.: 
linklocal6_timeout_id = 0, ip6_saved_properties = 0x1d90860, dhcp6_client = 
0x0, dhcp6_mode = NM_RDISC_DHCP_LEVEL_UNKNOWN, dhcp6_state_sigid = 0, 
  dhcp6_timeout_sigid = 0, dhcp6_config = 0x0, dhcp6_ip6_config = 0x0, 
autoconnect = 1, master = 0x0, enslaved = 0, master_ready_id = 0, is_master = 
0, slaves = 0x0, con_provider = 0x0}



how about the attached patch?


Thomas

Attachment: log.txt.gz
Description: application/gzip

From e36096b3a4ff0239f40513aa25d81364cfe2e9c4 Mon Sep 17 00:00:00 2001
From: Thomas Haller <[email protected]>
Date: Mon, 2 Jun 2014 13:00:51 +0200
Subject: [PATCH 1/1] core: properly handle carrier_changed() for devices in
 state UNMANAGED

Fixes the following g_warn():
    #0  0x0000003370c504e9 in g_logv () from /lib64/libglib-2.0.so.0
    #1  0x0000003370c5063f in g_log () from /lib64/libglib-2.0.so.0
    #2  0x0000003370c50956 in g_warn_message () from /lib64/libglib-2.0.so.0
    #3  0x0000000000439962 in carrier_changed (device=0x1d94300, carrier=1) at devices/nm-device.c:1021
    #4  0x0000000000488f12 in carrier_changed (device=0x1d94300, carrier=1) at devices/nm-device-ethernet.c:1646
    #5  0x0000000000434c94 in nm_device_set_carrier (device=device@entry=0x1d94300, carrier=1) at devices/nm-device.c:1104
    #6  0x0000000000434dd5 in check_carrier (device=device@entry=0x1d94300) at devices/nm-device.c:1298
    #7  0x0000000000434ef8 in constructed (object=0x1d94300) at devices/nm-device.c:550
    #8  0x0000003371c15d87 in g_object_new_internal () from /lib64/libgobject-2.0.so.0
    #9  0x0000003371c17814 in g_object_new_valist () from /lib64/libgobject-2.0.so.0
    #10 0x0000003371c17c11 in g_object_new () from /lib64/libgobject-2.0.so.0
    #11 0x000000000048bc2e in nm_device_ethernet_new (platform_device=platform_device@entry=0x1d82e58) at devices/nm-device-ethernet.c:336
    #12 0x000000000047c600 in platform_link_added (self=0x1d70150, ifindex=ifindex@entry=2, plink=plink@entry=0x1d82e58, reason=reason@entry=NM_PLATFORM_REASON_INTERNAL) at nm-manager.c:1954
    #13 0x000000000047c7db in platform_link_cb (platform=<optimized out>, ifindex=2, plink=0x1d82e58, change_type=<optimized out>, reason=NM_PLATFORM_REASON_INTERNAL, user_data=0x1d70150) at nm-manager.c:2038
    #14 0x0000003371805d8c in ffi_call_unix64 () from /lib64/libffi.so.6
    #15 0x00000033718056bc in ffi_call () from /lib64/libffi.so.6
    #16 0x0000003371c10ad8 in g_cclosure_marshal_generic () from /lib64/libgobject-2.0.so.0
    #17 0x0000003371c10298 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
    #18 0x0000003371c2235d in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
    #19 0x0000003371c2a0f2 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
    #20 0x0000003371c2a3af in g_signal_emit () from /lib64/libgobject-2.0.so.0
    #21 0x000000000044f6ba in nm_platform_query_devices () at platform/nm-platform.c:330
    #22 0x000000000047de4c in nm_manager_start (self=0x1d70150) at nm-manager.c:4025
    #23 0x0000000000429d31 in main (argc=1, argv=0x7fffb4c31628) at main.c:654

Signed-off-by: Thomas Haller <[email protected]>
---
 src/devices/nm-device.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 6a7ec5e..4e5c9dc 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -989,6 +989,9 @@ carrier_changed (NMDevice *device, gboolean carrier)
 	if (!nm_device_get_managed (device))
 		return;
 
+	if (priv->state <= NM_DEVICE_STATE_UNMANAGED)
+		return;
+
 	nm_device_recheck_available_connections (device);
 
 	/* ignore-carrier devices ignore all carrier-down events */
@@ -1018,8 +1021,6 @@ carrier_changed (NMDevice *device, gboolean carrier)
 	}
 
 	if (carrier) {
-		g_warn_if_fail (priv->state >= NM_DEVICE_STATE_UNAVAILABLE);
-
 		if (priv->state == NM_DEVICE_STATE_UNAVAILABLE) {
 			nm_device_queue_state (device, NM_DEVICE_STATE_DISCONNECTED,
 			                       NM_DEVICE_STATE_REASON_CARRIER);
@@ -1032,8 +1033,6 @@ carrier_changed (NMDevice *device, gboolean carrier)
 			nm_device_emit_recheck_auto_activate (device);
 		}
 	} else {
-		g_return_if_fail (priv->state >= NM_DEVICE_STATE_UNAVAILABLE);
-
 		if (priv->state == NM_DEVICE_STATE_UNAVAILABLE) {
 			if (nm_device_queued_state_peek (device) >= NM_DEVICE_STATE_DISCONNECTED)
 				nm_device_queued_state_clear (device);
-- 
1.9.3

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to