[pca] --stop option not stopping?

Martin Paul martin at par.univie.ac.at
Tue Apr 7 12:21:42 CEST 2009


Hi,

> .. or a prominent warning somewhere in the man page?

I've at least added a note to the descriptions of --stop and --ignore in 
the man page now.

> The patches are the minimum patch requirements for Live Upgrade in a
> Solaris 10 SPARC environment [1]. That's why i have a explicit patch list.

Ok, that's not uncommon.

> 118833 gets pulled in by pca as a dependency and requires an immediate
> reboot afterwards. From what i understand there would be no harm done
> with subsequent patchadds run w/o reboot, because the patchadd utilities
> are lofs-overmounted with noops after applying 118833. I just wanted to
> tell pca "don't even try it" :)

118833/118855 are a very special case, but pca already knows about that. 
The next paragraph is an excerpt from a private mail I wrote:

Anyway, I got curious now, and wanted to find out what's really behind 
118833-36 (and 118855-36). Took me some time to find out that it's the
postpatch script from those patches which does unusual things - it
replaces /usr/lib/patch/pdo (which is used by the patch* commands) with
a script it created (/var/run/nopatch), and it does this by mounting the
script over /usr/lib/patch/pdo. Never seen that, but actually quite
elegant; on the next reboot, the mount will be gone, and /var/run is
cleaned up, so the patch utils will start to behave normally again.
The good thing is that a fix for pca is simple - just test for 
/var/run/nopatch after any patch installation, and stop (and show a
message) if it exists.

So, the bottom line is that pca will always stop installing patches 
after 118833/118855. It's not possible to install further patches in 
this situation before a reboot, as patchadd will be disabled.

These two patches are the only ones which show this behaviour, BTW. Sun 
uses deferred activation patching with later kernel patches.

> That's what i did in the meantime. I just manually split the patch_order
> list in two lists.

That's probably the best thing to do. pca alone is probably not the best 
tool if you want to make sure a fixed list of patch IDs including 
revisions is installed. If you ask it to install 123456-78, it will 
always try to install it, even if it is already installed. Once again, 
it assumes you know what you're doing, feeding to it a specific patch ID 
plus revision.

Martin.



More information about the pca mailing list