From owner-freebsd-bugs@FreeBSD.ORG Fri Sep 12 07:00:06 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 274871065675 for ; Fri, 12 Sep 2008 07:00:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 011FE8FC17 for ; Fri, 12 Sep 2008 07:00:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m8C705td006422 for ; Fri, 12 Sep 2008 07:00:05 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m8C705js006421; Fri, 12 Sep 2008 07:00:05 GMT (envelope-from gnats) Date: Fri, 12 Sep 2008 07:00:05 GMT Message-Id: <200809120700.m8C705js006421@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Garrett Cooper" Cc: Subject: Re: bin/125932: pkg_add(1) doesn't prompt for root credentials and then fails badly X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Garrett Cooper List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Sep 2008 07:00:06 -0000 The following reply was made to PR bin/125932; it has been noted by GNATS. From: "Garrett Cooper" To: "Bruce Cran" Cc: bug-followup@freebsd.org Subject: Re: bin/125932: pkg_add(1) doesn't prompt for root credentials and then fails badly Date: Thu, 11 Sep 2008 23:24:33 -0700 On Tue, Sep 9, 2008 at 1:23 PM, Bruce Cran wrote: > On Thu, 24 Jul 2008 11:18:31 -0700 > "Garrett Cooper" wrote: > >> On Thu, Jul 24, 2008 at 6:48 AM, Bruce Cran wrote: >> >>How-To-Repeat: >> > Run pkg_add -r as a non-root user. >> >>Fix: >> >> The issue isn't the fact that you're running as non-root; it's that >> someone's not checking to see whether or not a fetch init succeeded >> (filehandle's open, writing's being done) before continuing. >> >> I'll fix this later on tonight when I get back from San Jose. >> > > Did you make any progress with this? I thought I made a comment about this earlier, but apparently I didn't send it out or it wasn't recorded: Symptom: The issue is caused by tar in the PUSHOUT macro in add/extract.c as identified below, during the extract. If and when the tar stuff is replaced with libarchive, this issue will fail sooner (and this should be done because this would save a lot of time and resources when extracting large packages like openoffice): #define PUSHOUT(todir) /* push out string */ \ if (where_count > (int)sizeof(STARTSTRING)-1) { \ strcat(where_args, "|/usr/bin/tar --unlink -xpPf - -C "); \ strcat(where_args, todir); \ if (system(where_args)) { \ /*** XXX: FAILS HERE ***/ cleanup(0); \ errx(2, "%s: can not invoke %ld byte tar pipeline: %s", \ __func__, (long)strlen(where_args), where_args); \ } \ Real problem: The actual problem is that the master and slave pkg_add processes aren't communicating properly with one another, s.t. the slave instances aren't breaking the master execution at the first sign of failure. HTH, -Garrett