Description of problem: After changing date to previous day and using stop/start commands to restart some upstart jobs I get a segfault in init task. Below is the backtrace from gdb. I can reproduce this pretty much 100% of the time and the backtrace looks always the same (only some pointer values are different). Version-Release number of selected component (if applicable): upstart-0.3.9-22.fc9.i386 How reproducible: 100% Steps to Reproduce: 1. Change date to previous day 2. stop 3. emit event which will trigger starting of Actual results: Message from syslogd@sonostation-usb26-eth at Mar 27 10:52:22 ... kernel:init[1]: segfault at c1 ip 08057d32 sp bf83b980 error 4 in init[8048000+20000] Expected results: No segfault, tasks started. Additional info: (gdb) bt full #0 0x00a9b416 in __kernel_vsyscall () No symbol table info available. #1 0x00c318ff in sigprocmask () from /lib/libc.so.6 No symbol table info available. #2 0x0804a4d5 in crash_handler (signum=11) at main.c:400 act = {__sigaction_handler = {sa_handler = 0, sa_sigaction = 0}, sa_mask = {__val = {0 }}, sa_flags = 0, sa_restorer = 0x4} limit = {rlim_cur = 4294967295, rlim_max = 4294967295} mask = {__val = {2147482623, 4294967294, 4294967295 }} err = loglevel = mask = {__val = {0, 0, 11121686, 115, 582, 3217000600, 123, 0, 0, 0, 3087986688, 15, 3087987304, 128, 1211428, 1748533395, 54641668, 3, 12627208, 13109375, 142491099, 142490795, 0, 0, 1, 1797, 3087987408, 3087986688, 134515571, 12663656, 13521706, 0}} oldmask = {__val = {14, 4294967295, 0, 12611584, 134618112, 3217001336, 3217001336, 4, 13455331, 2, 134598413, 4, 134615746, 1, 11121664, 17, 51, 3217000744, 11121664, 17, 51, 3228041216, 123, 123, 14073844, 8, 3217000744, 3217000600, 2, 0, 3217000780, 0}} __FUNCTION__ = "crash_handler" #3 No symbol table info available. #4 nih_str_array_append (array=0xbfbf8a48, parent=0x0, len=0xbfbf8a44, args=0x41) at string.c:534 c_len = 5 o_len = arg = (char * const *) 0x5 __FUNCTION__ = "nih_str_array_append" #5 0x0804bc61 in job_run_process (job=0x87e7f30, process=PROCESS_MAIN) at job.c:1368 statbuf = {st_dev = 59308975770263300, __pad1 = 61930, st_ino = 134616700, st_mode = 11, st_nlink = 0, st_uid = 13894081, st_gid = 142479368, st_rdev = 21617315872, __pad2 = 35248, st_size = -1077966368, st_blksize = 0, st_blocks = 13808947, st_atim = {tv_sec = 13890026, tv_nsec = 134616700}, st_mtim = {tv_sec = 11, tv_nsec = 14073844}, st_ctim = { tv_sec = 142508104, tv_nsec = 142507824}, __unused4 = 3217001048, __unused5 = 12760163} proc = (JobProcess *) 0x87e8560 argv = (char **) 0x887cea8 script = argc = 5 error = fds = {142479392, 134616700} __FUNCTION__ = "job_run_process" #6 0x0804c53c in job_change_state (job=0x87e7f30, state=JOB_SPAWNED) at job.c:856 old_state = __FUNCTION__ = "job_change_state" #7 0x0804cff2 in job_child_reaper (data=0x0, pid=6764, killed=0, status=0) at job.c:1729 job = process = PROCESS_PRE_START failed = 0 stop = 0 state = 1 __FUNCTION__ = "job_child_reaper" #8 0x0805959e in nih_child_poll () at child.c:158 iter = (NihList *) 0x87e1600 _iter = (NihList *) 0x87e15d0 pid = 6764 killed = 0 status = 0 info = {si_signo = 17, si_errno = 0, si_code = 1, _sifields = {_pad = {6764, 0 }, _kill = {si_pid = 6764, si_uid = 0}, _timer = {si_tid = 6764, si_overrun = 0, si_sigval = {sival_int = 0, sival_ptr = 0x0}}, _rt = {si_pid = 6764, si_uid = 0, si_sigval = {sival_int = 0, sival_ptr = 0x0}}, _sigchld = {si_pid = 6764, si_uid = 0, si_status = 0, si_utime = 0, si_stime = 0}, _sigfault = {si_addr = 0x1a6c}, _sigpoll = {si_band = 6764, si_fd = 0}}} #9 0x0805d09d in nih_main_loop () at main.c:606 timeout = {tv_sec = 4, tv_usec = 992000} ---Type to continue, or q to quit--- readfds = {fds_bits = {8, 0 }} writefds = {fds_bits = {32, 0 }} buf = "" ret = next_timer = (NihTimer *) 0x0 exceptfds = {fds_bits = {0 }} nfds = 7 #10 0x08049e42 in main (argc=5, argv=0x887cea8) at main.c:302 args = ret = 5