You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
there is two ways to reproduce:
a).type commond "/etc/init.d/network restart" when device power on and starting network.(small chance to reproduce in this way)
b). type commond "/etc/init.d/network restart;/etc/init.d/network restart".(always reproduce in this way)
I fllowed codes and find the reason:
netifd can not be terminate by "ubus call service delete '{"name":"network"}'"
there are multiple netifd processing:
5962 ? S 0:02 [kworker/0:0]
7576 ttymxc0 Ss 0:00 -ash
8708 ? S 0:00 /sbin/netifd
8723 ? S 0:00 [kworker/0:1]
8965 ? S 0:00 /sbin/netifd
9011 ? S 0:00 /sbin/netifd
9054 ? S 0:00 /sbin/netifd
9125 ? S 0:00 /sbin/netifd
9212 ? S 0:00 /sbin/netifd
9317 ? S 0:00 /sbin/netifd
9392 ? S 0:00 /sbin/netifd
the reason of netifd can not be killed is:
netifd reseived TERM signal and run uloop_end() before uloop_run()
so uloop_cancelled(in libubox) is reset to false when uloop_run()
my solution:
delete the line:
uloop_cancelled = false; --> in void uloop_run(void) --> in uloop.c --> in libubox-2015-11-08(new version libubox have this line too)
uloop_cancelled is already init by "bool uloop_cancelled = false;",it is no need reset to false by uloop_run() again.
The text was updated successfully, but these errors were encountered:
wengzuyang:
Software versions
Chaos Calmer
there is two ways to reproduce:
a).type commond "/etc/init.d/network restart" when device power on and starting network.(small chance to reproduce in this way)
b). type commond "/etc/init.d/network restart;/etc/init.d/network restart".(always reproduce in this way)
I fllowed codes and find the reason:
netifd can not be terminate by "ubus call service delete '{"name":"network"}'"
there are multiple netifd processing:
5962 ? S 0:02 [kworker/0:0]
7576 ttymxc0 Ss 0:00 -ash
8708 ? S 0:00 /sbin/netifd
8723 ? S 0:00 [kworker/0:1]
8965 ? S 0:00 /sbin/netifd
9011 ? S 0:00 /sbin/netifd
9054 ? S 0:00 /sbin/netifd
9125 ? S 0:00 /sbin/netifd
9212 ? S 0:00 /sbin/netifd
9317 ? S 0:00 /sbin/netifd
9392 ? S 0:00 /sbin/netifd
the reason of netifd can not be killed is:
netifd reseived TERM signal and run uloop_end() before uloop_run()
so uloop_cancelled(in libubox) is reset to false when uloop_run()
my solution:
delete the line:
uloop_cancelled = false; --> in void uloop_run(void) --> in uloop.c --> in libubox-2015-11-08(new version libubox have this line too)
uloop_cancelled is already init by "bool uloop_cancelled = false;",it is no need reset to false by uloop_run() again.
The text was updated successfully, but these errors were encountered: