Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jul 2014 13:00:14 +0200
From:      Stefan Esser <se@freebsd.org>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        pkg@freebsd.org
Subject:   Re: [BUG?] pkg: Cannot get a read lock on a database, it is locked by another process
Message-ID:  <53D62D3E.2000004@freebsd.org>
In-Reply-To: <20140728094609.GO50802@ivaldir.etoilebsd.net>
References:  <53D511D6.7040108@freebsd.org> <53D619AB.5080101@freebsd.org> <20140728094609.GO50802@ivaldir.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 28.07.2014 um 11:46 schrieb Baptiste Daroussin:
> On Mon, Jul 28, 2014 at 11:36:43AM +0200, Stefan Esser wrote:
>> Hi Baptiste,
>> 
>> my mail to the ports maillist has not been answered, but I think 
>> what I describe is a real issue: Simultaneous "pkg" commands can 
>> lock-out each other in such a way, that one of the commands
>> fails.
>> 
>> This is not expected in existing scripts (e.g. portmaster),
>> which assume a permanent failure, when in fact the cause was a
>> temporary access restriction.
>> 
>> I do not like the fact, that read operations (from the point of 
>> view of the user, e.g. "pkg info") now fails when other
>> processes are also only reading the database.
>> 
>> But I think that aborted updates to the package database (e.g.
>> if a package has been installed, but cannot be registered due to
>> other pkg commands having a read lock) are a bigger problem,
>> since they may leave a system in an inconsistent state.
>> 
>> Shall I open a PR on this topic or is it already on your to-do
>> list?
>> 
>> Regards, STefan
>> 
> This is fixed with pkg 1.3 :)

Hi Bapt,

thank you for your reply, but I waited for 1.3.0 to be released
(had tested pkg-devel and noticed this effect, but thought it
might be a temporary problem) before posting to the ports@ list.

I just retried with pkg-1.3.2:

# pkg check -Bs
^Z
[1]+  Stopped              pkg check -Bs
# pkg info
pkg: Cannot get a read lock on a database, it is locked by another process

I never hit this problem with pkg-1.2.x ...

But it makes it impossible to e.g. run "pkg check -B" (or pkg_libchk)
in one window and issue "portmaster $PORT_WITH_MISSING_LIB" in
another. Not that this is required functionality, but in the same
way other scripted uses of pkg collide with each other ...

> btw usually to hit more people on pkg adding pkg@ in CC is a good
> idea.

Thanks, I did not know that list existed. CC is added and I'll
subscribe to the list ...

Regards, STefan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53D62D3E.2000004>