Skip to main content

Prelink cache - friend or foe?

Ran in to a very bothersome issue over the weekend.

Pushed a package installation automatically via Satellite to ALL of my Linux hosts at 11pm on Sunday evening.  Around 9am on Monday I was invited to a bridge to discuss some Oracle issue where no new connections were allowed to the database on the Listener.  The fun begins...
So - we discuss what changes had been applied recently and my software push is mentioned.  I had tested this software push on all our non-prod hosts 8 weeks prior - and everything has been fine.  So.. what the hell happened.

As it turns out the number of hosts affected were less than 1% - However, the way the problem was communicated made the problem sound much worse.  So - at this point I assume that the approved deployment to ALL our hosts broke EVERY.SINGLE.BOX in our environment.

I start to review the actual output of the software push and I notice a package that had been updated which was not included in my testing 8 weeks ago.  PCRE...  So, I pull that RPM down and look at the scripts and I notice that it runs ldconfig.  I also check all files that were updated in /etc (using find) and notice that /etc/prelink.cache had been updated.  I review the prelink cache and everything appears fine, but.. that file is just a collection of "paths" in a binary/data file.

We find a Red Hat article indicating that if you have an Oracle host, with and SGA greater than 200GB... that you should disable prelink cache.  Huh?

I uninstall all the packages from the night before - problem persists.  Ugg..
I then disable the prelink cache
# prelink -ua
# ls -l /etc | grep prelink

Problem goes away.  Progress... sort of?
I recreate the cache...

# prelink -va
# ls -l /etc | grep prelink

Still no issue.  Hmm.. So, I re-install all the packages from the earlier deployment.  Still no issue.

Summary:  Somehow the /etc/prelink.cache file became invalid, it would seem.  I'm not sure if there was a special character in there.. or if the path was screwed up by a new package installation (making Oracle find a binary in the wrong order).

Anyhow - I recommend Google Searching whether prelinking is a good/bad thing.  It's quite a spectacle to see all the discussions out there.  I'm still on the fence - but I'm leaning towards thinking that the prelinking is a good thing.

Comments

Popular posts from this blog

Sun USS 7100 foo

TIP: put ALL of your LUNs into a designated TARGET and INITIATOR group when you create them.  If you leave them in the "default" group, then everything that does an discovery against the array will find them :-( I'm struggling to recognize a reason that a default should even be present on the array. Also - who, exactly, is Sun trying to kid.  The USS is simply a box.. running Solaris .. with IPMP and ZFS.  Great.  If you have ever attempted to "break-in" or "p0wn" your IBM HMC, you know that there are people out there that can harden a box - then.. there's Sun.  After a recent meltdown at the office I had to get quite intimate with my USS 7110 and learned quite a bit.  Namely: there's a shell ;-) My current irritation is how they attempt to "warn you" away from using the shell (my coverage expired a long time ago to worry about that) and then how they try to hide things, poorly. I was curious as to what version of SunOS it ...

PXE boot a LiveCD image

Summary: I have wanted to build a kickstart environment which hosted a "rescue CD" or LiveCD to allow you to boot over the network after you blew your stuff up and needed to repair a few things.  Today I have worked through a method of doing so, with the help of the people who published a succinct script with the Red Hat Enterprise Virtualization Hypervisor.  (the script will be at the bottom of this post - if I have somehow not followed the GPL, please let me know and I will correct whatever is necessary) NOTE/Warning: The boot will fail due the initrd being too large (645mb).  I'm not sure how to proceed.  This procedure worked for RHEVh, because it is quite a bit smaller.  Hopefully I can report back with progress on this? :-$ Procedure: download your LiveCD image to /export/isos/RESCUE/Fedora-16-i686-Live-Desktop.iso # cd /var/tmp # vi livecd-iso-to-pxeboot (populate the file with the script shown below) # chmod 754 ./livecd-iso-to-pxeb...

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)"

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)" One issue that may cause this to arise is if you managed to break your /etc/fstab We had an engineer add a line with the intended options of "nfsvers=3" but instead added "-onfsvers=3" and it broke the system fairly catastrophically.