Hi Ondrej,
Regarding #15, I'm not sure this is correct. As you say, when the job
process terminates, job_process_terminated() gets called. This calls
log_handle_unflushed() and that function calls log_read_watch(), which
ultimately calls write(2). However, even if the write is successful
before 'initctl notify-disk-writeable' gets called, if you look at
log_handle_unflushed()...
743 log_handle_unflushed (void *parent, Log *log)
744 {
745 NihListEntry *elem;
746
747 nih_assert (log);
748 nih_assert (log->detached == 0);
749
750 log_read_watch (log);
751
752 if (! log->unflushed->len)
753 return 1;
So, if the write is successful and log->unflushed->len becomes zero, the
function returns 1 (meaning "log does not need to be added to the
unflushed list") and crucially the log is not added to the unflushed
list.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1447756
Title:
segfault in log.c code causes phone reboot loops
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1447756/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs