2c27b9f1b5
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 |
||
---|---|---|
.. | ||
files | ||
DESCR | ||
INSTALL | ||
Makefile | ||
MESSAGE | ||
options.mk | ||
PLIST |