Wifi bug

e9hack e9hack at gmail.com
Sun Sep 26 05:48:27 PDT 2021


Am 26.09.2021 um 12:54 schrieb Hannu Nyman:
> e9hack kirjoitti 26.9.2021 klo 10.02:
>> Am 24.09.2021 um 22:04 schrieb e9hack:
>>> In the past (a few days ago), it was possible to disable or shut-down wifi by introduce the command 'wifi down'. This doesn't work currently. After some seconds, wifi is start again.
>>
>> It may be related to a page fault of netifd. Netifd is restart afterwards:
>>
>> [  236.658379] do_page_fault(): sending SIGSEGV to netifd for invalid write access to 77cdd048
>> [  236.666942] epc = 77d7ded5 in libubox.so.20210819[77d78000+18000]
>> [  236.673212] ra  = 77d7dec9 in libubox.so.20210819[77d78000+18000]
>>
>> This occurs after 'wifi down'.
> 
> 
> Wifi coming up again happens also with R7800 (ipq806x, ath10k), master build from two days ago.
> 
> 
> System log shoes wifi goes down, then the whole network stack gets restarted (?), and finally wifi comes back up.
> 
> 
>   OpenWrt SNAPSHOT, r17581-2c9a07ed28
>   -----------------------------------------------------
> root at router1:~# wifi down; logread -f
> Sun Sep 26 13:42:39 2021 daemon.notice hostapd: Remove interface 'wlan0'
> Sun Sep 26 13:42:39 2021 daemon.notice hostapd: wlan0: interface state ENABLED->DISABLED

Do you see a page fault from netifd in the log? If it does crash, it is restarted by procd. This does restart the network stack. If I start netifd with strace, I got this lines immediately before the page fault:

unlink("/tmp/resolv.conf.d/resolv.conf.auto.tmp") = -1 ENOENT (No such file or directory)
open("/tmp/resolv.conf.d/resolv.conf.auto.tmp", O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 14
ioctl(14, TIOCGWINSZ, 0x7f717a74)       = -1 ENOTTY (Not a tty)
_llseek(14, 0, [0], SEEK_SET)           = 0
readv(14, [{iov_base="", iov_len=1023}, {iov_base="", iov_len=1024}], 2) = 0
close(14)                               = 0
open("/tmp/resolv.conf.d/resolv.conf.auto", O_RDONLY|O_LARGEFILE) = 14
readv(14, [{iov_base="", iov_len=1023}, {iov_base="", iov_len=1024}], 2) = 0
close(14)                               = 0
unlink("/tmp/resolv.conf.d/resolv.conf.auto.tmp") = 0
munmap(0x77d61000, 8192)                = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x77d61038} ---
+++ killed by SIGSEGV +++

The part 0x77d61... does change on several starts. The offset 0x.....038 is the same.

Regards,
Hartmut



More information about the openwrt-devel mailing list