On Nov 15, 2007 5:28 PM, Dave Zarzycki <zarzycki@apple.com> wrote:
Traditionally, the kernel doesn't allow debuggers to attach to PID 1. As the author of launchd, I haven't felt strong enough to get the kernel team to change that policy. I've learned to live with logging. You can enable logging by adding "log level debug" to /etc/ launchd.conf and adjusting /etc/syslog.conf to capture the generated messages.
Thanks, will do.
Having said all that, based on the messages below, I'd be curious to figure how why those processes are running around with UID 166128603. Was that ever a valid UID on your system? For whatever it may be worth, getpwuid() is a shim around DirectoryService APIs and the DirectoryService daemon. I'd try to get in contact with them.
I should have explained the unusually high UID in my first message. The UID is generated by my Open Directory plugin. There's an algorithm that generates them for users authenticated via the plugin. High UIDs like that are also somewhat common in the AD plugin from what I understand. Anyway, these high UIDs haven't been a problem pre-Leopard GM. So, I'm a little suspicious about them. However, if I assign the user a low UID (something like 600) I can still reproduce the error. So, I've been spending quality time in the debugger trying to figure out if there's something in my plugin that would be causing getpwuid() to fail when/if it makes calls via DirectoryService. But, to this point, I haven't seen anything unusual. Like I said, the code was working fine from Panther to pre-Leopard GM. Cheers, Matt