ubus socket always in connecting status

When we try to transplant ubus to uclinux, ubusd can't run but "ubus list" will hang up.

1. netstat -anp

unix  2      [ ]         STREAM     CONNECTING         0 -                   /var/run/ubus.sock

2. client is blocked at read() system call

3. no any logs

solution:

perror() after connect() shows that there is some un-implemented function call.

Actually, connect() doesn't produce this error, it is produced by other call earlier.(not reset error before invoke connect() function).

Continue to backtrace this error, found that libubox.so call some methods of event poll (epoll), but our kernel doesn't enable this option.

 

Appendix:

Before resolve this question, if we chmod +s /sbin/ubusd and then test it again, we found that there would a more record:

unix  3      [ ]         STREAM     CONNECTED       2651 1938/ubus  

But client can't get any results still.

still understand how and why so. just for mark.

posted @ 2019-01-08 15:45  耕读编码  阅读(323)  评论(0编辑  收藏  举报