I see I did not read far enough - as you found the reference to slibclean.
In it's defense I expect the IBM install program is using slibclean during
it's installation of files - or, the files are being moved to something
like /usr/lpp/lpp.name/save (it has been a long long time since I have
studied how the installp recover option works) and the remove is only
actually performed after the new files have been put into position.


On Mon, May 5, 2014 at 8:14 AM, Michael Felt <mamf...@gmail.com> wrote:

> Well, my patch is at the end, leaving the rm in place. However, I could
> examine looking at using slibclean (shared library clean) - which is the
> program to remove outstanding (loaded, but not active) shared library code.
>
> And - thinking through - if the remove is not done, and the .so file is
> not copied - the old .so copy remains - but you "expect" it to be updated.
> For these cases, rather than remove I would move the file to a dated pid
> (mv $TARGET $TARGET.$today.$$) - and if all fails move it back, otherwise
> remove (and slibclean again, for certainty). I have been quite perturbed in
> the past when I was installing "live" and it failed. My previous installed
> php was now broken.
>
> re: slibclean - the program has been around "forever" - at least since
> since AIX 4.X (starting in 1994-1995). No idea if it has been tested before
> for php and/or instdso.sh.
>
> However, to work, slibclean still needs the previous version to be
> stopped. I assume that is the same as unlink() of a file - the inode is not
> actually cleared until both the link count is 0 and there are no open
> connections to the inode. That is, I do not expect that slibclean is
> removing "open" routines - but it might.
>
> Finally, In my case, as I am "packaging" to a temp directory (installing
> to $INSTALL_ROOT/*)  this should never be an issue. The other issue I run
> into is the -a argument - because when packaging (
>
>
> On Sun, May 4, 2014 at 11:54 PM, Victor J. Orlikowski <
> victor.j.orlikow...@alumni.duke.edu> wrote:
>
>> On May 4, 2014, at 5:46 PM, Victor J. Orlikowski <
>> victor.j.orlikow...@alumni.duke.edu> wrote:
>>
>> My only comment to that would be: has AIX resolved the issue wherein it
>> is required that the file backing a previously-loaded module has to be
>> rm’d, in order to ensure that the in-memory copy is released?
>>
>>
>> Responding to myself, after a quick consult with the Googlemonster:
>> Seems you need to call a utility called slibclean, to remove the memory
>> references to the shared object.
>>
>> And, sometimes, that still doesn’t work - so you have to rm it anyway. :/
>>
>> Anyhoo - it seems to me that the real problem is that we’re deleting the
>> newly generated .so, rather than the *target* into which we’re trying to
>> copy (which is what would be what has the in-memory references).
>>
>> Best,
>> Victor
>>  --
>> Victor J. Orlikowski <> victor.j.orlikow...@alumni.duke.edu
>>
>>
>

Reply via email to