From owner-freebsd-pkg@freebsd.org Fri Mar 3 13:30:32 2017 Return-Path: Delivered-To: freebsd-pkg@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DB57CF5EE1 for ; Fri, 3 Mar 2017 13:30:32 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id 7721C1379 for ; Fri, 3 Mar 2017 13:30:32 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 73850CF5EDF; Fri, 3 Mar 2017 13:30:32 +0000 (UTC) Delivered-To: pkg@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73247CF5EDE for ; Fri, 3 Mar 2017 13:30:32 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 617761378 for ; Fri, 3 Mar 2017 13:30:32 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v23DUUvo057602 for ; Fri, 3 Mar 2017 13:30:32 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: pkg@FreeBSD.org Subject: [Bug 213611] ports-mgmt/pkg: 1.9.1 pkgdb locking doesn't work on NFS Date: Fri, 03 Mar 2017 13:30:30 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Ports & Packages X-Bugzilla-Component: Individual Port(s) X-Bugzilla-Version: Latest X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: iz-rpi03@hs-karlsruhe.de X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: pkg@FreeBSD.org X-Bugzilla-Flags: maintainer-feedback? X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-pkg@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Binary package management and package tools discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Mar 2017 13:30:32 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213611 iz-rpi03@hs-karlsruhe.de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |iz-rpi03@hs-karlsruhe.de --- Comment #6 from iz-rpi03@hs-karlsruhe.de --- I am investigating the same problem. NFS lockd and statd are up an running. As far as I can tell sqlite uses the directory local.sqlite.lock in /var/db= /pkg for dotlocking /var/db/pkg/local.sqlite. But it never deletes it _there_. Doing "pkg-static info" on an unlocked database shows the expected output but leaves local.sqlite.lock in /var/db/pkg. Next time you call pkg or pkg-static you will get the "database is locked" error unless you are fast enough to remove /var/db/pkg/local.sqlite while pkg is running. The following part of ktrace/kdump shows the locking is done with a relative path. So it happens in /var/db/pkg. But the unlocking is done with a absolute path. An this path does not match the relative one used for locking. 95575 pkg-static CALL stat(0xbfbfe150,0xbfbfe0f0) 95575 pkg-static NAMI "/var/db/pkg" 95575 pkg-static STRU struct stat {dev=3D973143811, ino=3D913835, mode=3D= 040755, nlink=3D2, uid=3D0, gid=3D0, rdev=3D0, atime=3D1488515387.614408874, mtime=3D1488543581.397913666, ctime=3D1488543581.397913666, birthtime=3D-1, size=3D4096, blksize=3D4096, blocks=3D8, flags=3D0x0 } 95575 pkg-static RET stat 0 95575 pkg-static CALL eaccess(0xbfbfe150,0x4) 95575 pkg-static NAMI "/var/db/pkg" 95575 pkg-static RET eaccess 0 95575 pkg-static CALL stat(0xbfbfe150,0xbfbfe0f0) 95575 pkg-static NAMI "/var/db/pkg/local.sqlite" 95575 pkg-static STRU struct stat {dev=3D973143811, ino=3D913839, mode=3D= 0100644, nlink=3D1, uid=3D0, gid=3D0, rdev=3D0, atime=3D1488508880.607008273, mtime=3D1488508814.956928131, ctime=3D1488508814.956928131, birthtime=3D-1, size=3D64334848, blksize=3D4096, blocks=3D125672, flags=3D0x0 } 95575 pkg-static RET stat 0 95575 pkg-static CALL eaccess(0xbfbfe150,0x4) 95575 pkg-static NAMI "/var/db/pkg/local.sqlite" 95575 pkg-static RET eaccess 0 95575 pkg-static CALL=20 openat(AT_FDCWD,0x2880f0e0,0x120000) 95575 pkg-static NAMI "/var/db/pkg" 95575 pkg-static RET openat 4 95575 pkg-static CALL faccessat(0x4,0x83ecfb0,0x4,0x100) 95575 pkg-static NAMI "local.sqlite" 95575 pkg-static RET faccessat 0 95575 pkg-static CALL statfs(0x2880f0e0,0xbfbfe358) 95575 pkg-static NAMI "/var/db/pkg" 95575 pkg-static RET statfs 0 95575 pkg-static CALL lstat(0x2881f728,0xbfbfe390) 95575 pkg-static NAMI "local.sqlite" 95575 pkg-static RET lstat -1 errno 2 No such file or directory 95575 pkg-static CALL __getcwd(0x28848008,0x1ff) 95575 pkg-static NAMI "/root" 95575 pkg-static RET __getcwd 0 95575 pkg-static CALL getpid 95575 pkg-static RET getpid 95575/0x17557 95575 pkg-static CALL getpid 95575 pkg-static RET getpid 95575/0x17557 95575 pkg-static CALL fstatat(0x4,0x2884d206,0xbfbfdfe0,0) 95575 pkg-static NAMI "local.sqlite" 95575 pkg-static STRU struct stat {dev=3D973143811, ino=3D913839, mode=3D= 0100644, nlink=3D1, uid=3D0, gid=3D0, rdev=3D0, atime=3D1488508880.607008273, mtime=3D1488508814.956928131, ctime=3D1488508814.956928131, birthtime=3D-1, size=3D64334848, blksize=3D4096, blocks=3D125672, flags=3D0x0 } 95575 pkg-static RET fstatat 0 95575 pkg-static CALL=20 openat(0x4,0x2884d206,0x100202,0644) 95575 pkg-static NAMI "local.sqlite" 95575 pkg-static RET openat 5 95575 pkg-static CALL fstat(0x5,0xbfbfde88) 95575 pkg-static STRU struct stat {dev=3D973143811, ino=3D913839, mode=3D= 0100644, nlink=3D1, uid=3D0, gid=3D0, rdev=3D0, atime=3D1488508880.607008273, mtime=3D1488508814.956928131, ctime=3D1488508814.956928131, birthtime=3D-1, size=3D64334848, blksize=3D4096, blocks=3D125672, flags=3D0x0 } 95575 pkg-static RET fstat 0 95575 pkg-static CALL pread(0x5,0xbfbfe460,0x64,0,0) 95575 pkg-static GIO fd 5 read 100 bytes 0x0000 5351 4c69 7465 2066 6f72 6d61 7420 3300 0400 0101 0040 2020 0= 007 6598 0000 f56b 0000 766c 0000 1565 0000 1e32 |SQLite format 3......@=20 ..e....k..vl...e...2| [bytes are skipped] 95575 pkg-static RET pread 100/0x64 [lock the database] 95575 pkg-static CALL=20 mkdirat(0x4,0x2881f76e,0777) 95575 pkg-static NAMI "local.sqlite.lock" 95575 pkg-static RET mkdirat 0 95575 pkg-static CALL fstatat(0x4,0x2884d21a,0xbfbfe058,0) 95575 pkg-static NAMI "local.sqlite-journal" 95575 pkg-static RET fstatat -1 errno 2 No such file or directory 95575 pkg-static CALL fstat(0x5,0xbfbfe058) 95575 pkg-static STRU struct stat {dev=3D973143811, ino=3D913839, mode=3D= 0100644, nlink=3D1, uid=3D0, gid=3D0, rdev=3D0, atime=3D1488543655.118915624, mtime=3D1488508814.956928131, ctime=3D1488508814.956928131, birthtime=3D-1, size=3D64334848, blksize=3D4096, blocks=3D125672, flags=3D0x0 } 95575 pkg-static RET fstat 0 95575 pkg-static CALL fstatat(0x4,0x2884d235,0xbfbfe058,0) 95575 pkg-static NAMI "local.sqlite-wal" 95575 pkg-static RET fstatat -1 errno 2 No such file or directory 95575 pkg-static CALL fstat(0x5,0xbfbfe058) 95575 pkg-static STRU struct stat {dev=3D973143811, ino=3D913839, mode=3D= 0100644, nlink=3D1, uid=3D0, gid=3D0, rdev=3D0, atime=3D1488543655.118915624, mtime=3D1488508814.956928131, ctime=3D1488508814.956928131, birthtime=3D-1, size=3D64334848, blksize=3D4096, blocks=3D125672, flags=3D0x0 } 95575 pkg-static RET fstat 0 95575 pkg-static CALL pread(0x5,0x2889ce28,0x400,0,0) 95575 pkg-static GIO fd 5 read 1024 bytes 0x0000 5351 4c69 7465 2066 6f72 6d61 7420 3300 0400 0101 0040 2020 0= 007 6598 0000 f56b 0000 766c 0000 1565 0000 1e32 |SQLite format 3......@=20 ..e....k..vl...e...2| [bytes are skipped] 95575 pkg-static RET pread 1024/0x400 [unlock the database] 95575 pkg-static CALL rmdir(0x2881f768) 95575 pkg-static NAMI "/root/local.sqlite.lock" 95575 pkg-static RET rmdir -1 errno 2 No such file or directory 95575 pkg-static CALL utimes(0x2881f768,0) 95575 pkg-static NAMI "/root/local.sqlite.lock" 95575 pkg-static RET utimes -1 errno 2 No such file or directory 95575 pkg-static CALL fstatat(0x4,0x2884d21a,0xbfbfdf08,0) 95575 pkg-static NAMI "local.sqlite-journal" 95575 pkg-static RET fstatat -1 errno 2 No such file or directory 95575 pkg-static CALL fstat(0x5,0xbfbfdf08) Ralf --=20 You are receiving this mail because: You are the assignee for the bug.=