From eikemeier@fillmore-labs.com  Fri Sep 19 20:36:27 2003
Return-Path: <eikemeier@fillmore-labs.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id AB3BD16A4B3
	for <FreeBSD-gnats-submit@FreeBSD.org>; Fri, 19 Sep 2003 20:36:27 -0700 (PDT)
Received: from mx2.fillmore-labs.com (lima.fillmore-labs.com [62.138.193.83])
	by mx1.FreeBSD.org (Postfix) with ESMTP id B315843FAF
	for <FreeBSD-gnats-submit@FreeBSD.org>; Fri, 19 Sep 2003 20:36:26 -0700 (PDT)
	(envelope-from eikemeier@fillmore-labs.com)
Received: from pd951a746.dip.t-dialin.net
	([217.81.167.70] helo=fillmore-labs.com ident=cpor3v3k2f2x3qrs)
	by mx2.fillmore-labs.com with asmtp (TLSv1:AES256-SHA:256)
	(Exim 4.23; FreeBSD 4.9)
	id 1A0YXp-000PVX-FQ
	for FreeBSD-gnats-submit@FreeBSD.org; Sat, 20 Sep 2003 05:36:25 +0200
Message-Id: <3F6BCB37.4050107@fillmore-labs.com>
Date: Sat, 20 Sep 2003 05:36:23 +0200
From: Oliver Eikemeier <eikemeier@fillmore-labs.com>
To: FreeBSD-gnats-submit@FreeBSD.org
Subject: [PATCH] pkg_install: make more robust against corrupted package database

>Number:         57029
>Category:       bin
>Synopsis:       [PATCH] pkg_install: make more robust against corrupted package database
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    eik
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 19 20:40:09 PDT 2003
>Closed-Date:    Fri Aug 13 17:11:33 GMT 2004
>Last-Modified:  Fri Aug 13 17:11:33 GMT 2004
>Originator:     Oliver Eikemeier
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
Fillmore Labs - http://www.fillmore-labs.com
>Environment:
System: FreeBSD nuuk.fillmore-labs.com 5.1-CURRENT

>Description:

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

>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

>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.


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->patched 
State-Changed-By: eik 
State-Changed-When: Tue Jun 29 21:30:57 CEST 2004 
State-Changed-Why:  
Awaiting MFC 


Responsible-Changed-From-To: freebsd-bugs->eik 
Responsible-Changed-By: eik 
Responsible-Changed-When: Tue Jun 29 21:30:57 CEST 2004 
Responsible-Changed-Why:  
Handle my own PRs 

http://www.freebsd.org/cgi/query-pr.cgi?pr=57029 
State-Changed-From-To: patched->closed 
State-Changed-By: eik 
State-Changed-When: Fri Aug 13 19:10:38 CEST 2004 
State-Changed-Why:  
MFCed 

http://www.freebsd.org/cgi/query-pr.cgi?pr=56961 
State-Changed-From-To: patched->closed 
State-Changed-By: eik 
State-Changed-When: Fri Aug 13 19:10:38 CEST 2004 
State-Changed-Why:  
MFCed 

http://www.freebsd.org/cgi/query-pr.cgi?pr=56989 
State-Changed-From-To: patched->closed 
State-Changed-By: eik 
State-Changed-When: Fri Aug 13 19:10:38 CEST 2004 
State-Changed-Why:  
MFCed 

http://www.freebsd.org/cgi/query-pr.cgi?pr=57029 
>Unformatted:
