I am little bit clueless now. After few minutes on my Archer C7 v4, running OpenWrt Git master, the ubusd stops working. When I want to run
ubus list, it writes
Failed to connect to ubus. I am not able to get
logread (same error) unless it was running early from startup. I tried to debug it to get the point where it is stuck, so I added unstripped
/sbin/ubusd libraries, but backtrace shows:
root@master-c7:/etc/config# gdb /sbin/ubusd 606 GNU gdb (GDB) 8.3.1 Copyright (C) 2019 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 "mips-openwrt-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /sbin/ubusd... Attaching to program: /sbin/ubusd, process 606 Reading symbols from /lib/ld-musl-mips-sf.so.1... 0x77ea3718 in __syscall6 (n=4313, f=16, e=0, d=1, c=10, b=2011685896, a=4) at ./arch/mips/syscall_arch.h:114 114 ./arch/mips/syscall_arch.h: No such file or directory. (gdb) bt #0 0x77ea3718 in __syscall6 (n=4313, f=16, e=0, d=1, c=10, b=2011685896, a=4) at ./arch/mips/syscall_arch.h:114 #1 epoll_pwait (fd=4, ev=0x77e7e408, cnt=10, to=1, sigs=0x77e86030) at src/linux/epoll.c:27 #2 0x77ea37a4 in epoll_wait (warning: GDB can't find the start of the function at 0x5557afff. GDB is unable to find the start of the function at 0x5557afff and thus can't determine the size of that function's stack frame. This means that GDB may be unable to access that stack frame, or the frames below it. This problem is most likely caused by an invalid program counter or stack pointer. However, if you think GDB should simply search farther back from 0x5557afff for code which looks like the beginning of a function, you can increase the range of the search using the `set heuristic-fence-post' command. fd=<optimized out>, ev=<optimized out>, cnt=<optimized out>, to=<optimized out>) at src/linux/epoll.c:36 #3 0x5557b000 in ?? ()
So basically nothing interresting. Ubusd unfortunatelly has no logging, so how to actually debug this? Why ubusd could be rejecting connections?