delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; q=dns; s= | |
default; b=HA/q3u/4r5OUBGdYPcaNrY0gf6VQzA8YHo97ZdJOw7CYfuNaBaB9c | |
IWhb4XGnPYHClAFcGadBYRBCOgnNEGTC6yW735v+/2m586sN7Z4eqBaPhyzh74Gk | |
8GhipljVYuzR+FIC0EZ1PA2tKyDrxK5oU+vLVsPYHs0j52tIFMIil0= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; s=default; | |
bh=VGy6u+jvqcVwUrjUEG214FmXz20=; b=XCDkEsJhhm804A57wADvwBUXscpl | |
S9LtTgmRq/J8kX21He6b7Bcj79BNESWwNiFdlTWW8uivchLi07pj9aMagdffZSNS | |
+gW1mKrHVSuW5otyjulqp5sC5xNG9GFEsbNagnEa7WCmVpfGkHVeapOD276UuV/1 | |
40tdANXeuHN2n3Y= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
X-Spam-SWARE-Status: | No, score=-1.8 required=5.0 tests=AWL,BAYES_00,TW_FC autolearn=ham version=3.3.1 |
Date: | Tue, 4 Jun 2013 10:41:28 +0200 |
From: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> |
To: | cygwin AT cygwin DOT com |
Subject: | Re: [TEST] sqlite3-3.7.17-1 (Cygwin 1.7.19 locking feature) |
Message-ID: | <20130604084128.GB19572@calimero.vinschen.de> |
Reply-To: | cygwin AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
References: | <51ACF886 DOT 10301 AT etr-usa DOT com> <51AD3BB4 DOT 2010601 AT acm DOT org> |
MIME-Version: | 1.0 |
In-Reply-To: | <51AD3BB4.2010601@acm.org> |
User-Agent: | Mutt/1.5.21 (2010-09-15) |
On Jun 3 17:58, David Rothenberger wrote: > On 6/3/2013 1:11 PM, Warren Young wrote: > > This is a big-push attempt at a version of Cygwin SQLite that will make > > everyone happy (ha!) whether they want POSIX advisory locking behavior > > or Windows mandatory locking behavior. My part of the effort is being > > stubborn on this point and doing the basic testing and packaging. The > > real magic was added by Corinna to yesterday's 1.7.19 cygwin1.dll snapshot. > > Thank you (and thank you Corinna!) for all your hard work and > perseverance with this issue. > > Unfortunately... > > > - By default, it requests mandatory locking using the feature added in > > yesterday's Cygwin 1.7.19 snapshot. This should make it cooperate with > > native Windows programs also using SQLite despite running in Unix mode. > > > > - This mandatory-locks-by-default feature of this SQLite build can be > > disabled by setting the new CYGWIN_SQLITE_LOCKING environment variable > > to "posix". > > ... initial results with the Subversion test suite (for 1.8.0-rc2) show > that most tests fail with a "sqlite: database is locked (S5)" error > unless CYGWIN_SQLITE_LOCKING=posix. The question now is: Why? The problem here is that the semantics of POSIX locks and Windows locks is so very different. I guess that sqlite, when build in POSIX mode, (rightfully) assumes that the POSIX locks behave like POSIX locks and so uses them accordingly. This collides with the way Windows locks work. If so, mandatory locking via fcntl locks is pretty much useless in this scenario. The application using it has to know that the semantics are different and so create another code path which respects the annoying Windows lock behaviour (like the fact that a write lock blocks another write lock even if both are requested by the same process using the same HANDLE). A potential workaround is to use BSD flock locks in sqlite. Given that they lock the entire file, the behaviour is not so prone to the problems of Windows locks. It's easy enough to add that to Cygwin, so I'll do that within the hour. That requires another sqlite test release, obviouly. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |