From source_changes at macosforge.org Wed Aug 1 08:38:51 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23324] trunk/launchd/src/launchctl.c Message-ID: <20070801153851.75452719964@cvs.opensource.apple.com> Revision: 23324 http://trac.macosforge.org/projects/launchd/changeset/23324 Author: zarzycki@apple.com Date: 2007-08-01 08:38:50 -0700 (Wed, 01 Aug 2007) Log Message: ----------- launchd unnecessarily logs a warning when there is nothing to load in StandardIO Modified Paths: -------------- trunk/launchd/src/launchctl.c Modified: trunk/launchd/src/launchctl.c =================================================================== --- trunk/launchd/src/launchctl.c 2007-07-30 22:05:14 UTC (rev 23323) +++ trunk/launchd/src/launchctl.c 2007-08-01 15:38:50 UTC (rev 23324) @@ -210,16 +210,21 @@ { "help", help_cmd, "This help output" }, }; -static bool istty = false; -static bool verbose = false; +static bool istty; +static bool verbose; +static bool is_managed; int main(int argc, char *const argv[]) { - int64_t is_managed = 0; + int64_t is_managed_val = 0; char *l; - if ((getuid() == 0) && (vproc_swap_integer(NULL, VPROC_GSK_IS_MANAGED, NULL, &is_managed) == NULL) && (is_managed == 0)) { + if (vproc_swap_integer(NULL, VPROC_GSK_IS_MANAGED, NULL, &is_managed_val) == NULL && is_managed_val) { + is_managed = true; + } + + if (getuid() && !is_managed) { mach_port_t root_bs = str2bsport("/"); task_set_bootstrap_port(mach_task_self(), root_bs); mach_port_deallocate(mach_task_self(), bootstrap_port); @@ -1719,11 +1724,13 @@ if (launch_data_array_get_count(lus.pass0) == 0 && launch_data_array_get_count(lus.pass1) == 0 && launch_data_array_get_count(lus.pass2) == 0) { - fprintf(stderr, "nothing found to %s\n", lus.load ? "load" : "unload"); + if (!is_managed) { + fprintf(stderr, "nothing found to %s\n", lus.load ? "load" : "unload"); + } launch_data_free(lus.pass0); launch_data_free(lus.pass1); launch_data_free(lus.pass2); - return 1; + return is_managed ? 0 : 1; } if (lus.load) { -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070801/183f1eeb/attachment.html From source_changes at macosforge.org Wed Aug 1 09:25:39 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23325] trunk/launchd/src/launchctl.c Message-ID: <20070801162539.513A37199FE@cvs.opensource.apple.com> Revision: 23325 http://trac.macosforge.org/projects/launchd/changeset/23325 Author: zarzycki@apple.com Date: 2007-08-01 09:25:38 -0700 (Wed, 01 Aug 2007) Log Message: ----------- Fix an editing error that inversed the logic. Modified Paths: -------------- trunk/launchd/src/launchctl.c Modified: trunk/launchd/src/launchctl.c =================================================================== --- trunk/launchd/src/launchctl.c 2007-08-01 15:38:50 UTC (rev 23324) +++ trunk/launchd/src/launchctl.c 2007-08-01 16:25:38 UTC (rev 23325) @@ -224,7 +224,7 @@ is_managed = true; } - if (getuid() && !is_managed) { + if (getuid() == 0 && !is_managed) { mach_port_t root_bs = str2bsport("/"); task_set_bootstrap_port(mach_task_self(), root_bs); mach_port_deallocate(mach_task_self(), bootstrap_port); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070801/a372af8a/attachment.html From source_changes at macosforge.org Wed Aug 1 15:11:19 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23326] tags/launchd-234/ Message-ID: <20070801221119.03AB971ABF7@cvs.opensource.apple.com> Revision: 23326 http://trac.macosforge.org/projects/launchd/changeset/23326 Author: zarzycki@apple.com Date: 2007-08-01 15:11:19 -0700 (Wed, 01 Aug 2007) Log Message: ----------- "Tagging launchd-234 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-234/ Copied: tags/launchd-234 (from rev 23325, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070801/1df6b0e0/attachment.html From source_changes at macosforge.org Thu Aug 2 13:29:03 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23327] trunk/launchd/src Message-ID: <20070802202903.338BC71C75A@cvs.opensource.apple.com> Revision: 23327 http://trac.macosforge.org/projects/launchd/changeset/23327 Author: zarzycki@apple.com Date: 2007-08-02 13:29:02 -0700 (Thu, 02 Aug 2007) Log Message: ----------- 9A509: screen hangs on launch in root shell Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/libvproc.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-01 22:11:19 UTC (rev 23326) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-02 20:29:02 UTC (rev 23327) @@ -5658,7 +5658,11 @@ */ } else if (strcmp(j->mgr->name, VPROCMGR_SESSION_AQUA) == 0) { + job_log(j, LOG_DEBUG, "Tried to move the Aqua session."); return 0; + } else if (strcmp(j->mgr->name, VPROCMGR_SESSION_BACKGROUND) == 0) { + job_log(j, LOG_DEBUG, "Tried to move the background session."); + return 0; } else { job_log(j, LOG_ERR, "Tried to initialize an already setup session!"); kr = BOOTSTRAP_NOT_PRIVILEGED; Modified: trunk/launchd/src/libvproc.c =================================================================== --- trunk/launchd/src/libvproc.c 2007-08-01 22:11:19 UTC (rev 23326) +++ trunk/launchd/src/libvproc.c 2007-08-02 20:29:02 UTC (rev 23327) @@ -111,7 +111,7 @@ return (vproc_err_t)_vprocmgr_move_subset_to_user; } - if (ldpid != 1) { + if (!is_bkgd && ldpid != 1) { if (lduid == getuid()) { return NULL; } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070802/6f31ffb6/attachment.html From source_changes at macosforge.org Thu Aug 2 13:29:24 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23328] tags/launchd-235/ Message-ID: <20070802202924.3667071C75E@cvs.opensource.apple.com> Revision: 23328 http://trac.macosforge.org/projects/launchd/changeset/23328 Author: zarzycki@apple.com Date: 2007-08-02 13:29:24 -0700 (Thu, 02 Aug 2007) Log Message: ----------- "Tagging launchd-235 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-235/ Copied: tags/launchd-235 (from rev 23327, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070802/ade24bd8/attachment.html From source_changes at macosforge.org Mon Aug 6 08:24:48 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23329] trunk/launchd/src/StartupItems.c Message-ID: <20070806152448.D196A723ECE@cvs.opensource.apple.com> Revision: 23329 http://trac.macosforge.org/projects/launchd/changeset/23329 Author: zarzycki@apple.com Date: 2007-08-06 08:24:48 -0700 (Mon, 06 Aug 2007) Log Message: ----------- 9A510: SystemStarter: shouldn't require user write bit on startup items Modified Paths: -------------- trunk/launchd/src/StartupItems.c Modified: trunk/launchd/src/StartupItems.c =================================================================== --- trunk/launchd/src/StartupItems.c 2007-08-02 20:29:24 UTC (rev 23328) +++ trunk/launchd/src/StartupItems.c 2007-08-06 15:24:48 UTC (rev 23329) @@ -229,10 +229,14 @@ syslog(LOG_WARNING, "\"%s\" failed security check: not a directory or regular file", aPath); r = false; } - if ((aStatBuf.st_mode & ALLPERMS) & ~(S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { - syslog(LOG_WARNING, "\"%s\" failed security check: permissions", aPath); + if (aStatBuf.st_mode & S_IWOTH) { + syslog(LOG_WARNING, "\"%s\" failed security check: world writable", aPath); r = false; } + if (aStatBuf.st_mode & S_IWGRP) { + syslog(LOG_WARNING, "\"%s\" failed security check: group writable", aPath); + r = false; + } if (aStatBuf.st_uid != 0) { syslog(LOG_WARNING, "\"%s\" failed security check: not owned by UID 0", aPath); r = false; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070806/3078b21b/attachment.html From source_changes at macosforge.org Tue Aug 7 09:29:30 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23330] trunk/launchd/src Message-ID: <20070807162930.E5530726269@cvs.opensource.apple.com> Revision: 23330 http://trac.macosforge.org/projects/launchd/changeset/23330 Author: zarzycki@apple.com Date: 2007-08-07 09:29:30 -0700 (Tue, 07 Aug 2007) Log Message: ----------- Bug 5321044 is rare. I suspect that the kernel is at fault, but I need more data from those few who experience it in the wild. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-06 15:24:48 UTC (rev 23329) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-07 16:29:30 UTC (rev 23330) @@ -3058,7 +3058,7 @@ job_log(j, LOG_DEBUG, "Watching Vnode: %d", si->fd); if (!job_assumes(j, kevent_mod(si->fd, EVFILT_VNODE, EV_ADD, fflags, 0, j) != -1)) { /* Extra logging for 5321044 */ - job_log(j, LOG_ERR, "Bug (5321044): si->fd == %d fflags = 0x%x j == %p", si->fd, fflags, j); + job_log(j, LOG_ERR, "Bug (5321044): si->why == %u si->fd == %d fflags = 0x%x j == %p", si->why, si->fd, fflags, j); } } Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2007-08-06 15:24:48 UTC (rev 23329) +++ trunk/launchd/src/launchd_runtime.c 2007-08-07 16:29:30 UTC (rev 23330) @@ -698,6 +698,7 @@ kevent_mod(uintptr_t ident, short filter, u_short flags, u_int fflags, intptr_t data, void *udata) { struct kevent kev; + int r; switch (filter) { case EVFILT_READ: @@ -708,6 +709,8 @@ break; } + flags |= EV_RECEIPT; + if (flags & EV_ADD && !launchd_assumes(udata != NULL)) { errno = EINVAL; return -1; @@ -715,7 +718,24 @@ EV_SET(&kev, ident, filter, flags, fflags, data, udata); - return kevent(mainkq, &kev, 1, NULL, 0, NULL); + r = kevent(mainkq, &kev, 1, &kev, 1, NULL); + +#define BUG_5321044_RESEARCH 1 +#if BUG_5321044_RESEARCH + if (r != 1) { + runtime_syslog(LOG_ERR, "Bug (5321044): kevent_mod() == %d", r); + return -1; + } + + if (launchd_assumes(kev.flags & EV_ERROR)) { + if ((flags & EV_ADD) && kev.data) { + runtime_syslog(LOG_ERR, "Bug (5321044): See next line."); + log_kevent_struct(LOG_ERR, &kev, 0); + } + } +#endif + + return r; } boolean_t -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070807/78d34d02/attachment.html From source_changes at macosforge.org Tue Aug 7 15:13:10 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23331] tags/launchd-236/ Message-ID: <20070807221310.D8FDB728310@cvs.opensource.apple.com> Revision: 23331 http://trac.macosforge.org/projects/launchd/changeset/23331 Author: zarzycki@apple.com Date: 2007-08-07 15:13:10 -0700 (Tue, 07 Aug 2007) Log Message: ----------- "Tagging launchd-236 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-236/ Copied: tags/launchd-236 (from rev 23330, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070807/c6170d3e/attachment.html From source_changes at macosforge.org Mon Aug 13 16:05:28 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23332] trunk/launchd/src/launchd_runtime.c Message-ID: <20070813230528.2160D7371DA@cvs.opensource.apple.com> Revision: 23332 http://trac.macosforge.org/projects/launchd/changeset/23332 Author: zarzycki@apple.com Date: 2007-08-13 16:05:27 -0700 (Mon, 13 Aug 2007) Log Message: ----------- Correctness. Modified Paths: -------------- trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2007-08-07 22:13:10 UTC (rev 23331) +++ trunk/launchd/src/launchd_runtime.c 2007-08-13 23:05:27 UTC (rev 23332) @@ -731,6 +731,8 @@ if ((flags & EV_ADD) && kev.data) { runtime_syslog(LOG_ERR, "Bug (5321044): See next line."); log_kevent_struct(LOG_ERR, &kev, 0); + errno = kev.data; + return -1; } } #endif -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070813/0a1e822a/attachment.html From source_changes at macosforge.org Tue Aug 14 09:06:10 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23333] trunk/launchd/src Message-ID: <20070814160610.625AE738442@cvs.opensource.apple.com> Revision: 23333 http://trac.macosforge.org/projects/launchd/changeset/23333 Author: zarzycki@apple.com Date: 2007-08-14 09:06:10 -0700 (Tue, 14 Aug 2007) Log Message: ----------- Bug: launchd_core_logic.c:3012 (23294):2: kevent_mod(si->fd, EVFILT_VNODE, EV_ADD, fflags, 0, j) != -1 Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-13 23:05:27 UTC (rev 23332) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-14 16:06:10 UTC (rev 23333) @@ -3044,22 +3044,31 @@ return; } - if (si->fd == -1) { - if ((si->fd = _fd(open(which_path, O_EVTONLY|O_NOCTTY))) == -1) { - which_path = parentdir_path; - si->fd = _fd(open(which_path, O_EVTONLY|O_NOCTTY)); + do { + if (si->fd == -1) { + if ((si->fd = _fd(open(which_path, O_EVTONLY|O_NOCTTY))) == -1) { + which_path = parentdir_path; + si->fd = _fd(open(which_path, O_EVTONLY|O_NOCTTY)); + } } - } - if (si->fd == -1) { - return job_log_error(j, LOG_ERR, "Watchpath monitoring failed on \"%s\"", which_path); - } + if (si->fd == -1) { + return job_log_error(j, LOG_ERR, "Watchpath monitoring failed on \"%s\"", which_path); + } - job_log(j, LOG_DEBUG, "Watching Vnode: %d", si->fd); - if (!job_assumes(j, kevent_mod(si->fd, EVFILT_VNODE, EV_ADD, fflags, 0, j) != -1)) { - /* Extra logging for 5321044 */ - job_log(j, LOG_ERR, "Bug (5321044): si->why == %u si->fd == %d fflags = 0x%x j == %p", si->why, si->fd, fflags, j); - } + job_log(j, LOG_DEBUG, "Watching Vnode: %d", si->fd); + + if (kevent_mod(si->fd, EVFILT_VNODE, EV_ADD, fflags, 0, j) == -1) { + /* + * The FD can be revoked between the open() and kevent(). + * This is similar to the inability for kevents to be + * attached to short lived zombie processes after fork() + * but before kevent(). + */ + job_assumes(j, runtime_close(si->fd) == 0); + si->fd = -1; + } + } while (si->fd == -1); } void Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2007-08-13 23:05:27 UTC (rev 23332) +++ trunk/launchd/src/launchd_runtime.c 2007-08-14 16:06:10 UTC (rev 23333) @@ -720,22 +720,17 @@ r = kevent(mainkq, &kev, 1, &kev, 1, NULL); -#define BUG_5321044_RESEARCH 1 -#if BUG_5321044_RESEARCH - if (r != 1) { - runtime_syslog(LOG_ERR, "Bug (5321044): kevent_mod() == %d", r); + if (!launchd_assumes(r == 1)) { return -1; } if (launchd_assumes(kev.flags & EV_ERROR)) { - if ((flags & EV_ADD) && kev.data) { - runtime_syslog(LOG_ERR, "Bug (5321044): See next line."); + if ((flags & EV_ADD) && !launchd_assumes(kev.data == 0)) { log_kevent_struct(LOG_ERR, &kev, 0); errno = kev.data; return -1; } } -#endif return r; } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070814/14a3c5f1/attachment.html From source_changes at macosforge.org Tue Aug 14 09:30:49 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23334] trunk/launchd/src/launchd_core_logic.c Message-ID: <20070814163049.60FE97384C5@cvs.opensource.apple.com> Revision: 23334 http://trac.macosforge.org/projects/launchd/changeset/23334 Author: zarzycki@apple.com Date: 2007-08-14 09:30:48 -0700 (Tue, 14 Aug 2007) Log Message: ----------- More sanity checks. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-14 16:06:10 UTC (rev 23333) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-14 16:30:48 UTC (rev 23334) @@ -985,11 +985,20 @@ if (!jobmgr_assumes(jm, anonpid != 0)) { return NULL; } + + if (!jobmgr_assumes(jm, anonpid < 100000)) { + /* The kernel current defines PID_MAX to be 99999, but that define isn't exported */ + return NULL; + } if (!jobmgr_assumes(jm, sysctl(mib, 4, &kp, &len, NULL, 0) != -1)) { return NULL; } + if (!jobmgr_assumes(jm, kp.kp_proc.p_comm[0] != '\0')) { + return NULL; + } + if (kp.kp_proc.p_stat == SZOMB) { jobmgr_log(jm, LOG_DEBUG, "Tried to create an anonymous job for zombie PID: %u", anonpid); zombie = "zombie"; @@ -1001,6 +1010,7 @@ break; case 1: if (getpid() != 1) { + /* we cannot possibly find a parent job_t that is useful in this function */ break; } /* fall through */ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070814/a05782d4/attachment.html From source_changes at macosforge.org Tue Aug 14 10:53:13 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23335] trunk/launchd/src/launchd_core_logic.c Message-ID: <20070814175313.C3525738614@cvs.opensource.apple.com> Revision: 23335 http://trac.macosforge.org/projects/launchd/changeset/23335 Author: zarzycki@apple.com Date: 2007-08-14 10:53:13 -0700 (Tue, 14 Aug 2007) Log Message: ----------- Sanity check. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-14 16:30:48 UTC (rev 23334) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-14 17:53:13 UTC (rev 23335) @@ -1843,7 +1843,7 @@ void job_mig_destructor(job_t j) { - if (j->unload_at_mig_return) { + if (j && j->unload_at_mig_return) { job_log(j, LOG_NOTICE, "Unloading PID %u at MIG return.", j->p); job_remove(j); } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070814/5ec32499/attachment.html From source_changes at macosforge.org Tue Aug 14 11:07:17 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23336] trunk/launchd/src/launchd_core_logic.c Message-ID: <20070814180717.EBFEE738667@cvs.opensource.apple.com> Revision: 23336 http://trac.macosforge.org/projects/launchd/changeset/23336 Author: zarzycki@apple.com Date: 2007-08-14 11:07:16 -0700 (Tue, 14 Aug 2007) Log Message: ----------- Safety. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-14 17:53:13 UTC (rev 23335) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-14 18:07:16 UTC (rev 23336) @@ -5157,6 +5157,10 @@ struct ldcred ldc; pid_t pid_to_log; + if (!launchd_assumes(j != NULL)) { + return BOOTSTRAP_NO_MEMORY; + } + if (getpid() != 1) { return BOOTSTRAP_NOT_PRIVILEGED; } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070814/f6b3da2c/attachment.html From source_changes at macosforge.org Tue Aug 14 13:13:00 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23337] trunk/launchd/src/launchd_core_logic.c Message-ID: <20070814201300.E1BB4738A0D@cvs.opensource.apple.com> Revision: 23337 http://trac.macosforge.org/projects/launchd/changeset/23337 Author: zarzycki@apple.com Date: 2007-08-14 13:13:00 -0700 (Tue, 14 Aug 2007) Log Message: ----------- Sanity checks. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-14 18:07:16 UTC (rev 23336) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-14 20:13:00 UTC (rev 23337) @@ -1832,7 +1832,7 @@ struct machservice *ms; LIST_FOREACH(ms, &port_hash[HASH_PORT(p)], port_hash_sle) { - if (ms->port == p) { + if (ms->recv && (ms->port == p)) { return ms->job; } } @@ -4342,7 +4342,7 @@ struct machservice *ms; LIST_FOREACH(ms, &port_hash[HASH_PORT(p)], port_hash_sle) { - if (ms->port == p) { + if (ms->recv && (ms->port == p)) { break; } } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070814/f4879e6d/attachment.html From source_changes at macosforge.org Tue Aug 14 14:13:59 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23338] trunk/launchd/src/launchctl.1 Message-ID: <20070814211359.43F73738B22@cvs.opensource.apple.com> Revision: 23338 http://trac.macosforge.org/projects/launchd/changeset/23338 Author: zarzycki@apple.com Date: 2007-08-14 14:13:58 -0700 (Tue, 14 Aug 2007) Log Message: ----------- Update the list of known sessions. Modified Paths: -------------- trunk/launchd/src/launchctl.1 Modified: trunk/launchd/src/launchctl.1 =================================================================== --- trunk/launchd/src/launchctl.1 2007-08-14 20:13:00 UTC (rev 23337) +++ trunk/launchd/src/launchctl.1 2007-08-14 21:13:58 UTC (rev 23338) @@ -43,7 +43,7 @@ to look for jobs in a different location when using the -D flag, and allows .Nm launchctl to restrict which jobs are loaded into which session types. Currently known -session types include: Aqua, X11 and tty. +session types include: Aqua, LoginWindow, Background, StandardIO and System. .It Fl D Ar domain Look for .Xr plist 5 files ending in *.plist in the domain given. Valid domains include -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070814/3e543971/attachment.html From source_changes at macosforge.org Tue Aug 14 14:14:14 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23339] tags/launchd-237/ Message-ID: <20070814211414.A3D9F738B26@cvs.opensource.apple.com> Revision: 23339 http://trac.macosforge.org/projects/launchd/changeset/23339 Author: zarzycki@apple.com Date: 2007-08-14 14:14:14 -0700 (Tue, 14 Aug 2007) Log Message: ----------- "Tagging launchd-237 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-237/ Copied: tags/launchd-237 (from rev 23338, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070814/853a8e2b/attachment.html From source_changes at macosforge.org Thu Aug 16 15:07:50 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23340] trunk/launchd/src/launchd_core_logic.c Message-ID: <20070816220750.049E873DCAE@cvs.opensource.apple.com> Revision: 23340 http://trac.macosforge.org/projects/launchd/changeset/23340 Author: zarzycki@apple.com Date: 2007-08-16 15:07:50 -0700 (Thu, 16 Aug 2007) Log Message: ----------- Server9A525(Install): Server doesn't bring Server Assistant after installation completed. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-14 21:14:14 UTC (rev 23339) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-16 22:07:50 UTC (rev 23340) @@ -3035,6 +3035,7 @@ semaphoreitem_watch(job_t j, struct semaphoreitem *si) { char parentdir_path[PATH_MAX], *which_path = si->what; + int saved_errno = 0; int fflags = 0; strlcpy(parentdir_path, dirname(si->what), sizeof(parentdir_path)); @@ -3054,6 +3055,7 @@ return; } + /* See 5321044 for why we do the do-while loop and 5415523 for why ENOENT is checked */ do { if (si->fd == -1) { if ((si->fd = _fd(open(which_path, O_EVTONLY|O_NOCTTY))) == -1) { @@ -3069,6 +3071,7 @@ job_log(j, LOG_DEBUG, "Watching Vnode: %d", si->fd); if (kevent_mod(si->fd, EVFILT_VNODE, EV_ADD, fflags, 0, j) == -1) { + saved_errno = errno; /* * The FD can be revoked between the open() and kevent(). * This is similar to the inability for kevents to be @@ -3078,7 +3081,7 @@ job_assumes(j, runtime_close(si->fd) == 0); si->fd = -1; } - } while (si->fd == -1); + } while ((si->fd == -1) && (saved_errno == ENOENT)); } void -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070816/a1c7ebbc/attachment.html From source_changes at macosforge.org Fri Aug 17 06:57:05 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23341] trunk/launchd/src/StartupItems.c Message-ID: <20070817135705.CEABE73F133@cvs.opensource.apple.com> Revision: 23341 http://trac.macosforge.org/projects/launchd/changeset/23341 Author: zarzycki@apple.com Date: 2007-08-17 06:57:05 -0700 (Fri, 17 Aug 2007) Log Message: ----------- StartupItem requiring "NIS" does not run Modified Paths: -------------- trunk/launchd/src/StartupItems.c Modified: trunk/launchd/src/StartupItems.c =================================================================== --- trunk/launchd/src/StartupItems.c 2007-08-16 22:07:50 UTC (rev 23340) +++ trunk/launchd/src/StartupItems.c 2007-08-17 13:57:05 UTC (rev 23341) @@ -159,6 +159,7 @@ CFSTR("Network"), CFSTR("TIM"), CFSTR("Disks"), + CFSTR("NIS"), NULL }; CFMutableArrayRef aList, aNewList; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070817/6aa1b7a5/attachment.html From source_changes at macosforge.org Fri Aug 17 06:57:22 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23342] tags/launchd-238/ Message-ID: <20070817135722.D56DD73F137@cvs.opensource.apple.com> Revision: 23342 http://trac.macosforge.org/projects/launchd/changeset/23342 Author: zarzycki@apple.com Date: 2007-08-17 06:57:22 -0700 (Fri, 17 Aug 2007) Log Message: ----------- "Tagging launchd-238 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-238/ Copied: tags/launchd-238 (from rev 23341, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070817/2c087f53/attachment.html From source_changes at macosforge.org Fri Aug 17 12:34:42 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:51 2007 Subject: [launchd-changes] [23343] trunk/launchd/src Message-ID: <20070817193442.F30CC73F7C6@cvs.opensource.apple.com> Revision: 23343 http://trac.macosforge.org/projects/launchd/changeset/23343 Author: zarzycki@apple.com Date: 2007-08-17 12:34:42 -0700 (Fri, 17 Aug 2007) Log Message: ----------- We need to make logging synchronous for now. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/protocol_job.defs Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-17 13:57:22 UTC (rev 23342) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-17 19:34:42 UTC (rev 23343) @@ -995,6 +995,10 @@ return NULL; } + if (!jobmgr_assumes(jm, len == sizeof(kp))) { + return NULL; + } + if (!jobmgr_assumes(jm, kp.kp_proc.p_comm[0] != '\0')) { return NULL; } Modified: trunk/launchd/src/protocol_job.defs =================================================================== --- trunk/launchd/src/protocol_job.defs 2007-08-17 13:57:22 UTC (rev 23342) +++ trunk/launchd/src/protocol_job.defs 2007-08-17 19:34:42 UTC (rev 23343) @@ -135,7 +135,7 @@ __flags : uint64_t; __service : name_t); -simpleroutine log( +routine log( __bs_port : job_t; __pri : integer_t; __err : integer_t; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070817/0067582e/attachment.html From source_changes at macosforge.org Fri Aug 17 12:48:43 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:52 2007 Subject: [launchd-changes] [23344] trunk/launchd/src/launchd_runtime.c Message-ID: <20070817194843.28A0A73F817@cvs.opensource.apple.com> Revision: 23344 http://trac.macosforge.org/projects/launchd/changeset/23344 Author: zarzycki@apple.com Date: 2007-08-17 12:48:42 -0700 (Fri, 17 Aug 2007) Log Message: ----------- Adjust some log levels for GM. Modified Paths: -------------- trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2007-08-17 19:34:42 UTC (rev 23343) +++ trunk/launchd/src/launchd_runtime.c 2007-08-17 19:48:42 UTC (rev 23344) @@ -725,8 +725,9 @@ } if (launchd_assumes(kev.flags & EV_ERROR)) { - if ((flags & EV_ADD) && !launchd_assumes(kev.data == 0)) { - log_kevent_struct(LOG_ERR, &kev, 0); + if ((flags & EV_ADD) && kev.data) { + runtime_syslog(LOG_DEBUG, "%s(): See the next line...", __func__); + log_kevent_struct(LOG_DEBUG, &kev, 0); errno = kev.data; return -1; } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070817/53ebea26/attachment.html From source_changes at macosforge.org Fri Aug 17 13:48:50 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:52 2007 Subject: [launchd-changes] [23345] tags/launchd-239/ Message-ID: <20070817204850.3606F73F9A1@cvs.opensource.apple.com> Revision: 23345 http://trac.macosforge.org/projects/launchd/changeset/23345 Author: zarzycki@apple.com Date: 2007-08-17 13:48:49 -0700 (Fri, 17 Aug 2007) Log Message: ----------- "Tagging launchd-239 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-239/ Copied: tags/launchd-239 (from rev 23344, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070817/bec45e01/attachment.html From source_changes at macosforge.org Fri Aug 24 14:31:25 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:52 2007 Subject: [launchd-changes] [23346] trunk/launchd/src/launchd_core_logic.c Message-ID: <20070824213125.6771274CD8B@cvs.opensource.apple.com> Revision: 23346 http://trac.macosforge.org/projects/launchd/changeset/23346 Author: zarzycki@apple.com Date: 2007-08-24 14:31:24 -0700 (Fri, 24 Aug 2007) Log Message: ----------- Cancelled FUS restart kills pre-login launchd agent Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-17 20:48:49 UTC (rev 23345) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-24 21:31:24 UTC (rev 23346) @@ -5614,7 +5614,9 @@ } SLIST_FOREACH(jmi, &root_jobmgr->submgrs, sle) { - if (strcasecmp(jmi->name, where) == 0) { + if (jmi->shutting_down) { + continue; + } else if (strcasecmp(jmi->name, where) == 0) { goto jm_found; } else if (strcasecmp(jmi->name, VPROCMGR_SESSION_BACKGROUND) == 0 && getpid() == 1) { SLIST_FOREACH(jmi2, &jmi->submgrs, sle) { @@ -5709,6 +5711,31 @@ SLIST_REMOVE(&j->mgr->parentmgr->submgrs, j->mgr, jobmgr_s, sle); j->mgr->parentmgr = background_jobmgr; SLIST_INSERT_HEAD(&j->mgr->parentmgr->submgrs, j->mgr, sle); + } else if (strcmp(session_type, VPROCMGR_SESSION_LOGINWINDOW) == 0) { + jobmgr_t jmi; + + /* + * 5330262 + * + * We're working around LoginWindow and the WindowServer. + * + * In practice, there is only one LoginWindow session. * Unfortunately, for certain + * scenarios, the WindowServer spawns loginwindow, and in those cases, it frequently + * spawns a replacement loginwindow session before cleaning up the previous one. + * + * We're going to use the creation of a new LoginWindow context as a clue that the + * previous LoginWindow context is on the way out and therefore we should just + * kick-start the shutdown of it. + */ + + SLIST_FOREACH(jmi, &root_jobmgr->submgrs, sle) { + if (jmi->shutting_down) { + continue; + } else if (strcasecmp(jmi->name, session_type) == 0) { + jobmgr_shutdown(jmi); + break; + } + } } jobmgr_log(j->mgr, LOG_DEBUG, "Renaming to: %s", session_type); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070824/ceb51e87/attachment.html From source_changes at macosforge.org Fri Aug 24 14:36:12 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:52 2007 Subject: [launchd-changes] [23347] trunk/launchd/src/launchd_core_logic.c Message-ID: <20070824213612.43D9274CDB3@cvs.opensource.apple.com> Revision: 23347 http://trac.macosforge.org/projects/launchd/changeset/23347 Author: zarzycki@apple.com Date: 2007-08-24 14:36:11 -0700 (Fri, 24 Aug 2007) Log Message: ----------- Typo. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-08-24 21:31:24 UTC (rev 23346) +++ trunk/launchd/src/launchd_core_logic.c 2007-08-24 21:36:11 UTC (rev 23347) @@ -5719,7 +5719,7 @@ * * We're working around LoginWindow and the WindowServer. * - * In practice, there is only one LoginWindow session. * Unfortunately, for certain + * In practice, there is only one LoginWindow session. Unfortunately, for certain * scenarios, the WindowServer spawns loginwindow, and in those cases, it frequently * spawns a replacement loginwindow session before cleaning up the previous one. * -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070824/bfcb461a/attachment.html From source_changes at macosforge.org Fri Aug 24 15:17:47 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:52 2007 Subject: [launchd-changes] [23348] trunk/launchd/src/launchctl.c Message-ID: <20070824221747.8E63874CE6A@cvs.opensource.apple.com> Revision: 23348 http://trac.macosforge.org/projects/launchd/changeset/23348 Author: zarzycki@apple.com Date: 2007-08-24 15:17:47 -0700 (Fri, 24 Aug 2007) Log Message: ----------- launchd should not create an empty utmp anymore Modified Paths: -------------- trunk/launchd/src/launchctl.c Modified: trunk/launchd/src/launchctl.c =================================================================== --- trunk/launchd/src/launchctl.c 2007-08-24 21:36:11 UTC (rev 23347) +++ trunk/launchd/src/launchctl.c 2007-08-24 22:17:47 UTC (rev 23348) @@ -1446,9 +1446,6 @@ assumes(fwexec(dirhelper_tool, true) != -1); } - // 775 root:daemon /var/run/StartupItems - - assumes(touch_file(_PATH_UTMP, DEFFILEMODE) != -1); assumes(touch_file(_PATH_UTMPX, DEFFILEMODE) != -1); assumes(touch_file(_PATH_VARRUN "/.systemStarterRunning", DEFFILEMODE) != -1); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070824/368827b8/attachment.html From source_changes at macosforge.org Fri Aug 24 15:17:58 2007 From: source_changes at macosforge.org (source_changes@macosforge.org) Date: Tue Oct 9 16:25:52 2007 Subject: [launchd-changes] [23349] tags/launchd-240/ Message-ID: <20070824221758.381C374CE6E@cvs.opensource.apple.com> Revision: 23349 http://trac.macosforge.org/projects/launchd/changeset/23349 Author: zarzycki@apple.com Date: 2007-08-24 15:17:58 -0700 (Fri, 24 Aug 2007) Log Message: ----------- "Tagging launchd-240 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-240/ Copied: tags/launchd-240 (from rev 23348, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070824/cc0322d6/attachment.html