PDA

View Full Version : Very slow startup - update_prebinding?


kLy
12-14-2006, 01:51 AM
Hi

My Macbook Pro's been very slow to start up (after login) for the past while now. When I check, these two processes are being run at each startup:

/usr/bin/update_prebinding_core
/usr/bin/update_prebinding -root / -force

I know what prebinding is but surely it shouldn't be running at EVERY startup? Or is this common behaviour?

I'm not too sure what I did to the system for it to do this now but the latest haxie I installed was Shapeshifter 2.4

Can anyone verify this behaviour?

Thanks!

hayne
12-14-2006, 02:35 AM
1) First off, you need to distinguish between system startup and user login.
These two things get munged together if (as is the default case) you have your account set to auto-login since then the login proceeds immediately after system startup. So the first thing you should do is disable suto-login (in the Accounts preferences). Then you will be able to see how long it takes for the system to get to the point where it shows the login window (that asks for your username & password).

2) I'm surprised that anything is doing prebinding operations since this is obsolete (unneeded) since several system updates ago.

3) You should uninstall ShapeShifter and (more importantly) the APE frameworks (from Unsanity) while troubleshooting.

4) Note that unless you are rebooting in order to use Windows or something, there is no need to shutdown your MacBook. Most Apple laptop owners just put them to sleep and only restart them once a month or less often

kLy
12-15-2006, 01:11 AM
1. No it is definitely on LOGIN as I mentioned.

4. Wouldn't have any reason to reboot, but I'm a gamer so Windoze is unavoidable.

hayne
12-15-2006, 02:34 AM
1) Since the problem happens after you login, you should look to see what is in the login items list in your Accounts preferences.

2) You should try the standard troubleshooting suggestions:
http://www.apple.com/support/mac101/ (see the "My Mac needs help" section)
http://www.macosxhints.com/article.php?story=2004011205473937
http://forums.osxfaq.com/viewtopic.php?t=7269
http://www.thexlab.com/faqs/faqs.html

In particular, be sure to try logging in as a different user to see if the problem exists there. (Create a new user via the Accounts preference panel if you only have the one user account so far.)

Also be sure to do "Repair Disk" (different from "Repair Disk Permissions"!) in Disk Utility when booted from the Install CD/DVD. I.e. you restart from the Install CD/DVD, then run the version of Disk Utility that is available from one of the menus there.
See this Apple doc:
http://docs.info.apple.com/article.html?artnum=106214

kLy
12-15-2006, 03:21 AM
Okay, I tried a couple of things and here's what seems to be happening:

1. Disabling APE appears to make no difference

2. Creating a new user with nada login items still runs update_prebindings

So I'm thinking some sort of prebinding is possibly something that's supposed to occur at startup but for some reason takes a lot longer on my system? :(

Could someone try this for me -

Load either one of these IMMEDIATELY at login (so maybe let it open at login or put it in the dock):

1. Load up terminal and check using "ps -eaux | grep update_prebinding" or "top" for the processes /usr/bin/update_prebinding_core and /usr/bin/update_prebinding

or

2. Load up Activity Monitor and look for those same processes (maybe use the filter).

For me, they both show up at each login, though there are no login hooks for them. If it shows up for you, then it probably means it's standard OSX. Otherwise I can't think of a reason why they'd be loading up :(

Is there any other place where login items can reside?

LaunchAgents, LaunchDaemons and StartupItems (for /Library as well as /System/Library) don't have anything non-standard in them (though I believe StartupItems are loaded on system load, not user login. The other two I think can be either). Anywhere else these little startup things can reside?

Thanks!
kLy

kLy
12-15-2006, 03:24 AM
I know there's a tool for M$ windoze called Bootvis that lets you graphically log what's loading on system startup and how long each thing takes. Is there any equivalent for OSX

Thanks

hayne
12-15-2006, 12:24 PM
I looked in system.log and all of the saved older copies of system.log on my 10.4.8 iBook and I see no prebinding operations in the logs.

The following is a possibly incomplete list of the mechanisms that can be used to run software at system startup:

1) The script /etc/rc and the sub-scripts it invokes (especially /etc/rc.local)

2) Launchd (files in /System/Library/LaunchDaemons and /Library/LaunchDaemons)

3) "@reboot" entries in /etc/crontab (and possibly also in per-user crontabs)

4) bundles in /System/Library/SystemConfiguration

5) scripts in /System/Library/StartupItems and /Library/StartupItems

6) kernel extensions in /System/Library/Extensions

7) entries in the file /Library/Preferences/com.apple.SystemLoginItems.plist (an undocumented mechanism)

8) plist files in /etc/mach_init.d or /etc/mach_init_per_user.d
(deprecated and possibly limited to certain "Apple-specific" items in 10.4, but will work generally in 10.3)

9) mount entries in /etc/fstab
(Can be used to mount filesystems which might trigger other software to run.)

See also Apple's developer docs on the system startup:
http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/index.html

kLy
12-15-2006, 12:34 PM
Hmm... nothing seems suspicious in any of those places :(

Also, no update_prebind etc. show up in my system.log either but it's definitely being run at login. Did it not show up in the Activity Monitor for you?

Thanks a lot for the help

hayne
12-15-2006, 01:31 PM
Also, no update_prebind etc. show up in my system.log either but it's definitely being run at login.
I would have expected this to show up in system.log but if it is being done by a user-initiated program maybe it won't get logged - or will be in console.log

Did it not show up in the Activity Monitor for you?
I don't usually restart my Mac more than once a month (or less) and so I'm not likely to do so just to look for this.

You should put Activity Monitor in "hierarchic" mode so you can see what the parent process of those prebinding processes is. That might tell you who/what is doing it.

itistoday
12-15-2006, 09:31 PM
Yeah, I'm also experiencing this problem on my MacBook Pro C2D, it's very frustrating.

hayne
12-15-2006, 09:49 PM
Yeah, I'm also experiencing this problem on my MacBook Pro C2D
Are you also seeing the 'update_prebinding' processes mentioned above?

itistoday
12-16-2006, 12:04 AM
Each time I login, whether or not it's right after my machine boots, these processes are launched:

root 311 4.5 3.6 760288 37528 ?? U 11:58PM 0:02.00 /usr/bin/update_prebinding_core /usr/lib/libSystem.B.dylib /Sy
root 310 0.0 0.0 27292 380 ?? S 11:58PM 0:00.01 /usr/bin/update_prebinding -root / -force

As you can see they're most likely launched by the same program/script because their PIDs are sequential. This is highly aggravating.

itistoday
12-16-2006, 12:24 AM
(addendum to my previous post)

Woah, it's actually a lot longer than that, here's *part* of the second full command that is running:

/usr/bin/update_prebinding_core /usr/lib/libSystem.B.dylib /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices...

It goes on like that for a while, pretty much listing every single framework and dylib it can find. This in turn is caused by this command:
update_prebinding -root / -force

hayne
12-16-2006, 01:03 AM
As you can see they're most likely launched by the same program/script because their PIDs are sequential.
You should try to find out what the parent process is by using Activity Monitor in hierarchic mode, or via the command-line with 'ps' - for example:

ps -p 310 -o pid,command,ppid

kLy
12-16-2006, 01:22 AM
Parent process is launchd which doesn't help (since that's the parent of everything and everything minus the kernel and extensions). update_prebinding actually forks update_prebinding_core so the former is its parent and why the pids are sequential.

I did manage to fix it though: totally kill ALL of APE, including /System/Library/SystemConfiguration/Application Enhancer.bundle which it throws into /System (naughty naughty!)

Seemed to fix it for me. I think the latest version of Shapeshifter installed a new version of APE (2.0.2) which stuffed this up as I have been running APE before but without this problem

hayne
12-16-2006, 03:41 AM
I did manage to fix it though: totally kill ALL of APE, including /System/Library/SystemConfiguration/Application Enhancer.bundle
Glad you found the problem.

I note that you had reported (post #5) that disabling APE didn't make any difference.

I had recommended (post #2) uninstalling APE, and I didn't catch that you merely disabled it without uninstalling it as recommended.

kLy
12-16-2006, 04:56 AM
Thanks!

Did this fix it for you itistoday?

itistoday
12-16-2006, 08:29 AM
Yes it did! :-)

We should send a bug report to Unsanity about this. Thanks kLy and hayne for all your help! (edit: I sent them an email, hopefully they'll get back to me).

itistoday
12-19-2006, 05:18 PM
Got a response from Unsanity:

Hi,

Application Enhancer does this as a way to fix problems with Rosetta. We plan to make it optional in a future version.

Thanks!

Sincerely yours,
Brian - Unsanity

Ult
12-27-2006, 05:45 PM
great thread. I had the same problem, update_prebinding was running at start and taking an immense amount of CPU. It took going to Unsanity's site to download the image in order to run the uninstaller for it to completely remove all AE. After reboot it was all smooth again.