#22098: procd can not change state from STATE_INIT to STATE_RUNNING causing
reboot
failed
---------------------------------+--------------------------------
Reporter: winsonoreo@… | Owner: developers
Type: defect | Status: new
Priority: high | Milestone:
Component: base system | Version: Chaos Calmer 15.05
Keywords: procd, fork, reboot |
---------------------------------+--------------------------------
During system boot up, procd failed to change from STATE_INIT to
STATE_RUNNING leading to reboot failed.
By adding some debug output, when this happened, it turns out that in
function q_initd_run(), fork() may failed, and the errno is 89.
Digging in kernel function do_fork(), it failed in copy_process()
...
/*
* Process group and session signals need to be delivered to just the
* parent before the fork or both the parent and the child after the
* fork. Restart if a signal comes in before we add the new process to
* it's process group.
* A fatal signal pending means that current will exit, so the new
* thread can't slip out of an OOM kill (or normal SIGKILL).
*/
recalc_sigpending();
if (signal_pending(current)) {
spin_unlock(¤t->sighand->siglock);
write_unlock_irq(&tasklist_lock);
retval = -ERESTARTNOINTR;
goto bad_fork_free_pid;
}
...
kernel version is 2.6.36 and arch is mips, I reproduce it by rebooting the
system.
--
Ticket URL: <https://dev.openwrt.org/ticket/22098>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets