Bug 57029 - [PATCH] pkg_install: make more robust against corrupted package database
Summary: [PATCH] pkg_install: make more robust against corrupted package database
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 5.1-CURRENT
Hardware: Any Any
: Normal Affects Only Me
Assignee: Oliver Eikemeier
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-09-20 04:40 UTC by Oliver Eikemeier
Modified: 2004-08-13 18:11 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Eikemeier 2003-09-20 04:40:09 UTC
If the package info files in /var/db/pkg/<packagename> become corrupted,
pkg_info and pkg_version react with various unhelpful error messages,
see also PR 57016

Fix: 

A patch is available on
  ftp://ftp.fillmore-labs.com/pub/FreeBSD/patches/patch-pkg_install-20030917_3.gz
MD5 (patch-pkg_install-20030917_3.gz) = 29ce1c8dd938fba5b3f68d8f2def5551

It fixes pkg_info, pkg_delete and gives more helpful messages for pkg_version:

# pkg_version -v
pkg_version: the package info for package 'corrupt_pkg_1.0' is corrupt

# cd /usr/ports/sysutils/pkg_install; make install
[...]
===>  Installing for pkg_install-20030714_1
===>   Generating temporary packing list
===>  Checking if sysutils/pkg_install already installed
[...]
===>   Registering installation for pkg_install-20030714_1

# pkg_delete corrupt_pkg_1.0
pkg_delete: the package info for package 'corrupt_pkg_1.0' is corrupt (use -f to force removal)

# pkg_delete -f corrupt_pkg_1.0
pkg_delete: the package info for package 'corrupt_pkg_1.0' is corrupt (but I'll delete it anyway)
pkg_delete: couldn't completely deinstall package 'corrupt_pkg_1.0',
only the log entry in /var/db/pkg/corrupt_pkg_1.0 was removed

This patch build on the patches in PR 56961 and PR 56989, which fix additional bugs described there.
How-To-Repeat: 
# mkdir /var/db/pkg/corrupt_pkg_1.0
# touch /var/db/pkg/corrupt_pkg_1.0/+REQUIREMENTS

# pkg_version -v
pkg_version: unable to open +CONTENTS file

# cd /usr/ports/sysutils/pkg_install; make install
[...]
===>  Installing for pkg_install-20030714_1
===>   Generating temporary packing list
===>  Checking if sysutils/pkg_install already installed
*** Error code 1

Stop in /usr/ports/sysutils/pkg_install.

# pkg_delete -f corrupt_pkg_1.0
pkg_delete: no such package 'corrupt_pkg_1.0' installed
Comment 1 Oliver Eikemeier freebsd_committer freebsd_triage 2004-06-29 20:30:57 UTC
State Changed
From-To: open->patched

Awaiting MFC 


Comment 2 Oliver Eikemeier freebsd_committer freebsd_triage 2004-06-29 20:30:57 UTC
Responsible Changed
From-To: freebsd-bugs->eik

Handle my own PRs
Comment 3 Oliver Eikemeier freebsd_committer freebsd_triage 2004-08-13 18:10:38 UTC
State Changed
From-To: patched->closed

MFCed
Comment 4 Oliver Eikemeier freebsd_committer freebsd_triage 2004-08-13 18:10:38 UTC
State Changed
From-To: patched->closed

MFCed
Comment 5 Oliver Eikemeier freebsd_committer freebsd_triage 2004-08-13 18:10:38 UTC
State Changed
From-To: patched->closed

MFCed