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:message-id:date:from:mime-version:to:subject | |
:references:in-reply-to:content-type:content-transfer-encoding; | |
q=dns; s=default; b=WFYYy4A8kjY2bfDNVcaHIRcfB7RBkDSOwkyMsmGRT/6 | |
Eppg+65KChcUtYgy7wD9huQtVS29y1tDqUPpr3gOWFCJn0IoPAbX279+Nc7QseE9 | |
uL7LZv542VveHsOdnHybV41Pg8DQQ2e5Qrm+zFz4B8DhHe8xjb82zix3Ui1kvLwk | |
= | |
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:message-id:date:from:mime-version:to:subject | |
:references:in-reply-to:content-type:content-transfer-encoding; | |
s=default; bh=HoyiZpzNG7l+TfjhoIlSqOrPWU4=; b=jW+U0lXJDm8ay6l3f | |
Wcu0iozqZMm2ESlfVR/LDGDwL6AnHfDOe7oZ6TndMrobp2MbEY20gytEbJmPkkJV | |
K5RACnWRzbBSzsnq7nUovgJtPEKMsKxIABLAbopevyrnJl+B/185+EFV34hH02gL | |
t+zUorEVvWjkDJEeEgA0eqqtDk= | |
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=-4.0 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RP_MATCHES_RCVD autolearn=ham version=3.3.1 |
Message-ID: | <51AF968E.1060707@etr-usa.com> |
Date: | Wed, 05 Jun 2013 13:50:38 -0600 |
From: | Warren Young <warren AT etr-usa DOT com> |
User-Agent: | Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130509 Thunderbird/17.0.6 |
MIME-Version: | 1.0 |
To: | cygwin AT cygwin DOT com |
Subject: | Re: [TEST] sqlite3-3.7.17-1 (Cygwin 1.7.19 locking feature) |
References: | <51ACF886 DOT 10301 AT etr-usa DOT com> <51AD3BB4 DOT 2010601 AT acm DOT org> <20130604084128 DOT GB19572 AT calimero DOT vinschen DOT de> |
In-Reply-To: | <20130604084128.GB19572@calimero.vinschen.de> |
On 6/4/2013 02:41, Corinna Vinschen wrote: > On Jun 3 17:58, David Rothenberger wrote: >> >> ... 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. This is certainly true. We may well end up deciding that, ugly as it is, the Win32-specific code in SQLite's unhacked Cygwin build actually makes sense after all, insofar as it encodes the correct way to do locking on Windows *for SQLite*. If that ends up being the case, I may be able to exploit SQLite's VFS fallback mechanism to get a SQLite build with both the preexisting Cygwin Win32 locking VFS as well as the POSIX locking VFS in a single executable. That would let me switch between them at run time using the environment variable I've already defined. > It's easy enough to add that to Cygwin, so I'll do that within the hour. > That requires another sqlite test release, obviouly. Okay, I've just released a set of -2 packages. It required a spelunking expedition, complete with yak wagons and a team of five sherpas, one of which had to be left behind with a broken leg, but I figured out how to compile in the BSD locking VFS without disabling the POSIX one, then how to make SQLite switch between them at runtime. (This is what gives me hope for Plan C, above.) The CYGWIN_SQLITE_LOCKING variable now has three possible states: CYGWIN_SQLITE_LOCKING=posix -- same as before CYGWIN_SQLITE_LOCKING=posixmand -- equivalent to leaving it undefined in the 3.7.17-1 build CYGWIN_SQLITE_LOCKING=AnythingElse -- BSD flock() based mandatory locking. (Yes, this means there's no way to make it use BSD advisory locks. I couldn't come up with a good reason to add that fourth code path, but if it's needed, I'll add it.) Same download path as before: http://etr-usa.com/cygwin/sqlite3/ -- 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 |