pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/pkgtools/pkg_install/files
Module Name: pkgsrc
Committed By: agc
Date: Fri Aug 5 07:04:28 UTC 2011
Modified Files:
pkgsrc/pkgtools/pkg_install/files/add: perform.c
pkgsrc/pkgtools/pkg_install/files/lib: version.h
Log Message:
Fix for pkg_delete on NFS from Anthony Mallet.
Problem analysis from Anthony:
On Wednesday, at 23:52, Anthony Mallet wrote:
> # rm -rf ~tmp && mkdir ~/tmp
> # pkg_add -K ~/tmp/var/db/pkg -p ~/tmp
/usr/pkgsrc/packages/All/digest-20080510.tgz
> # pkg_add -U -K ~/tmp/var/db/pkg -p ~/tmp
/usr/pkgsrc/packages/All/digest-20080510.tgz
> pkg_delete: Couldn't remove package directory in
`/home/tho/tmp/var/db/pkg/digest-20080510'
> Also, the dir var/db/pkg/digest-20080510.xxxxxxx is never cleaned.
>
> The problem apparently is that pkg_delete finds some stalled NFS
entries
> (.nfs*) in the var/db/pkg/digest-20080510 dir, so it does not delete
the
> directory. Is this due to pkg_add not correctly closing file
descriptors before
> exec'ing pkg_delete? For instance, I really don't understand the
logic in
> check_already_installed() (add/perform.c:375) regarding the open() of
+CONTENTS
> which is almost never closed (and never used as well...). Shouldn't
this be
> closed before running pkg_delete?
ktrace shows that the +CONTENTS file is open() by pkg_add, I believe
this is in
check_already_installed(), add/perform.c:381. Then pkg_delete is run
and when
it comes to deleting the pkgdir entry, it finds that .nfs file and
aborts.
Bump version to 20110805
To generate a diff of this commit:
cvs rdiff -u -r1.99 -r1.100 pkgsrc/pkgtools/pkg_install/files/add/perform.c
cvs rdiff -u -r1.161 -r1.162 pkgsrc/pkgtools/pkg_install/files/lib/version.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index