Re: ibtool crash when run from root session (via a launch daemon)
Re: ibtool crash when run from root session (via a launch daemon)
- Subject: Re: ibtool crash when run from root session (via a launch daemon)
- From: Jonathan Hess <email@hidden>
- Date: Tue, 6 Jan 2009 17:40:45 -0800
Hey Shawn -
Running ibtool from a non-graphical session is supported. Do you
happen to have any crash logs for securityd along with the crashes for
ibtool? Also, you can reproduce the crash? Possibly by starting a
build, and then logging in and out of a graphical session on the
builder?
Jon Hess
On Jan 5, 2009, at 1:15 PM, Shawn Erickson wrote:
We have a couple of Xserve systems (running Mac OS X Server 10.5.6)
setup to do "official" builds, nightly builds, etc. On the Xserve
systems we have a 3rd party agent that gets fired up when the central
build management system connects to the system. This agent is launched
by launchd as a launch daemon (aka root session) using inetd
compatibility mode (inetdCompatibility, wait of false). The agent then
fires up a shell script that calls xcodebuild to build the requested
project.
This normally works great however since upgrading some of our projects
to use XIBs we are seeing ibtool simply abort when xcodebuild attempts
to run it (or when launched manually via an ssh session). The
following is the error messages we see in the system log when this
happens. Note this doesn't always happen (more on the below).
1/3/09 5:03:50 AM /Developer/usr/bin/ibtool[66353]
SessionGetInfo(0xffffffff) -> -2147418111
1/3/09 5:03:50 AM /Developer/usr/bin/ibtool[66353]
GetOurLSSessionIDInit(), returned error 0x80010001,
securitySessionID=0x0 attrs=0 uid=504 euid=504. cf Radar 5123589.
1/3/09 5:03:50 AM /Developer/usr/bin/ibtool[66353]
GetOurLSSessionIDInit(), returned error 0x80010001,
securitySessionID=0x0 attrs=0 uid=504 euid=504. cf Radar 5123589.
1/3/09 5:03:50 AM /Developer/usr/bin/ibtool[66353]
GetOurLSSessionIDInit(), returned error 0x80010001,
securitySessionID=0x0 attrs=0 uid=504 euid=504. cf Radar 5123589.
1/3/09 5:03:53 AM ReportCrash[66359] Formulating crash report for
process ibtool[66353]
1/3/09 5:03:54 AM ReportCrash[66359] Saved crashreport to
/Library/Logs/CrashReporter/ibtool_2009-01-03-050350_xserve1.crash
using uid: 0 gid: 0, euid: 0 egid: 0
Process: ibtool [66353]
Path: /Developer/usr/bin/ibtool
Identifier: ibtool
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: xcodebuild [64322]
Date/Time: 2009-01-03 05:03:50.632 -0800
OS Version: Mac OS X Server 10.5.6 (9G55)
Report Version: 6
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread: 0
Thread 0 Crashed:
0 libSystem.B.dylib 0x94179e42 __kill + 10
1 libSystem.B.dylib 0x941ec23a raise + 26
2 libSystem.B.dylib 0x941f8679 abort + 73
3 com.apple.LaunchServices 0x90620fb7 getProcessDispatchTable
() + 43
4 com.apple.LaunchServices 0x9062bbb3
LSClientSideSharedMemory::GetClientSideSharedMemory(LSSessionID, bool)
+ 145
5 com.apple.LaunchServices 0x9062ce51
_LSCopyApplicationInformation + 67
6 com.apple.HIServices 0x9014ad3e _RegisterApplication +
1545
7 com.apple.HIServices 0x9017eb5f SetApplicationIsDaemon
+ 99
8 ibtool 0x0000acbf 0x1000 + 40127
9 ibtool 0x0000b050 0x1000 + 41040
10 ibtool 0x000029d2 0x1000 + 6610
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x00000000 ebx: 0x941f8639 ecx: 0xbfffe98c edx: 0x94179e42
edi: 0x00000001 esi: 0x00000000 ebp: 0xbfffe9a8 esp: 0xbfffe98c
ss: 0x0000001f efl: 0x00000286 eip: 0x94179e42 cs: 0x00000007
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
cr2: 0x00619000
I do also see entries like the following loosely correlated with the
failure...
1/5/09 12:04:55 PM com.apple.launchd[1]
(com.apple.launchd.peruser.1569760354[88729]) Root Mach bootstrap
cannot be transferred.
We assume that the problem is that ibtool is using system libraries
that aren't daemon safe?? I noted above that ibtool does sometimes
work when run by the agent. We assume (not directly tested yet,
working on that now) that as long as the initial login session exists
ibtool will be happy (enough) when run under the context of the root
launchd instance and it will begin to fail if this session terminates.
...basically after a system reboot things are happy but after a while
things start to fail (likely after some one logs into the console and
out again).
Is it expected that ibtool has to be run from a graphical session
(aqua session)? ...or should I file a bug about this to see if
non-aqua session could be supported (likely file one anyway about it).
-Shawn
...version information...
$ ibtool --version
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.ibtool.version</key>
<dict>
<key>bundle-version</key>
<string>672</string>
<key>short-bundle-version</key>
<string>3.1.1</string>
</dict>
</dict>
</plist>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden