Wifi bug

Hannu Nyman hannu.nyman at iki.fi
Mon Sep 27 08:45:46 PDT 2021


Felix Fietkau kirjoitti 27.9.2021 klo 13.59:
> On a crash, it should drop a .core file to /tmp. Please copy that to
> your build host and use ./scripts/remote-gdb to obtain a backtrace from
> it. I'd like to know, which line of code in netifd it crashes on, so I
> can fix it. So far the bug has not shown up in my own tests...
>
> - Felix


This is probably what you are looking for...
To me it looks like it might actually be a list handling bug in libubox.


perus at ub2104:/Openwrt/r7800$ 
./build_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-11.2.0_musl_eabi/gdb-10.1/gdb/gdb 
./staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/sbin/netifd 
netifd.1632756907.1577.11.core
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
...
Type "apropos word" to search for commands related to "word"...
Reading symbols from 
./staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/sbin/netifd...

warning: Can't open file /sbin/netifd during file-backed mapping note processing
...
warning: Can't open file /lib/libc.so during file-backed mapping note processing
[New LWP 1577]

warning: Could not load shared library symbols for 8 libraries, e.g. 
/lib/libubox.so.20210819.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
Core was generated by `/sbin/netifd'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0xb6ea058c in ?? ()
(gdb) bt
#0  0xb6ea058c in ?? ()
#1  0x0001edc0 in device_broadcast_cb (ctx=<optimized out>, list=<optimized out>)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/netifd-2021-09-21-08e954e1/device.c:497
#2  0xb6f2f228 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) set solib-search-path 
./staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/
host/         packages/     pkginfo/      root-ipq806x/ stamp/        usr/
(gdb) set solib-search-path 
./staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib/
Reading symbols from 
/Openwrt/r7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib/libubox.so.20210819...
Reading symbols from 
/Openwrt/r7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib/libubus.so.20210630...
Reading symbols from 
/Openwrt/r7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib/libuci.so...
Reading symbols from 
/Openwrt/r7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib/libjson-c.so.5.1.0...
Reading symbols from 
/Openwrt/r7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib/libblobmsg_json.so.20210819...
Reading symbols from 
/Openwrt/r7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib/libnl-tiny.so...
(gdb) bt
#0  0xb6ea058c in __safe_list_del_iterator (i=0xbee1ed0c)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/libubox-2021-08-19-d716ac4b/safe_list.c:49
#1  __safe_list_move_iterator (i=0xbee1ed0c, list=0xb6f2f220)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/libubox-2021-08-19-d716ac4b/safe_list.c:58
#2  safe_list_for_each (head=head at entry=0xb6f2f220, cb=cb at entry=0x1ed94 
<device_broadcast_cb>, ctx=0xbee1ed3c,
     ctx at entry=0xbee1ed34)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/libubox-2021-08-19-d716ac4b/safe_list.c:73
#3  0x000210d0 in device_broadcast_event (dev=0xb6f2f200, ev=<optimized out>)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/netifd-2021-09-21-08e954e1/device.c:506
#4  0x000289a4 in handle_hotplug_msg (size=<optimized out>, data=<optimized out>)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/netifd-2021-09-21-08e954e1/system-linux.c:777
#5  handle_hotplug_event (u=0x46ea4 <hotplug_event>, events=<optimized out>)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/netifd-2021-09-21-08e954e1/system-linux.c:793
#6  0xb6e9e9f4 in uloop_run_events (timeout=<optimized out>)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/libubox-2021-08-19-d716ac4b/uloop.c:198
#7  uloop_run_timeout (timeout=timeout at entry=-1)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/libubox-2021-08-19-d716ac4b/uloop.c:555
#8  0x00013ae8 in uloop_run ()
     at 
/Openwrt/r7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include/libubox/uloop.h:111
#9  main (argc=1, argv=<optimized out>)
     at 
/Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/netifd-2021-09-21-08e954e1/main.c:339
(gdb)



There is also a few seconds' gap in the system log, when netifd starts again:


Mon Sep 27 18:35:06 2021 kern.warn kernel: [  178.272585] ath10k_pci 
0000:01:00.0: peer-unmap-event: unknown peer id 0
Mon Sep 27 18:35:06 2021 kern.warn kernel: [  178.272647] ath10k_pci 
0000:01:00.0: peer-unmap-event: unknown peer id 0
Mon Sep 27 18:35:07 2021 daemon.notice netifd: Network device 'wlan0' link is 
down
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: bonding
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: 8021ad
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: 8021q
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: macvlan
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: veth
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: bridge
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: Network device
Mon Sep 27 18:35:12 2021 user.notice : Added device handler type: tunnel
Mon Sep 27 18:35:12 2021 kern.info kernel: [  184.243388] br-lan: port 
1(eth1.1) entered disabled state
Mon Sep 27 18:35:12 2021 kern.info kernel: [  184.250759] device eth1.1 left 
promiscuous mode
Mon Sep 27 18:35:12 2021 kern.info kernel: [  184.250779] device eth1 left 
promiscuous mode
Mon Sep 27 18:35:12 2021 kern.info kernel: [  184.254230] br-lan: port 
1(eth1.1) entered disabled state
Mon Sep 27 18:35:13 2021 daemon.err odhcp6c[1865]: Failed to send RS 
(Permission denied)
Mon Sep 27 18:35:13 2021 daemon.err odhcp6c[1865]: Failed to send RELEASE 
message to ff02::1:2 (Permission denied)
Mon Sep 27 18:35:13 2021 kern.info kernel: [  184.415654] ipq806x-gmac-dwmac 
37200000.ethernet eth0: Link is Down

Hannu





More information about the openwrt-devel mailing list