You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Barry Scott <ba...@barrys-emacs.org> on 2011/10/10 21:11:34 UTC

Problem with checkout for 1.7.0-rc4

I'm trying to build subversion 1.7.0-rc4 on Mac OS X 10.7.
And I'm guessing that got something in the build/install wrong.

I see the following error from svn checkout:

$ /usr/local/svn-1.7.0-rc4/bin/svn checkout file:///Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/repos/trunk /Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/wc1
svn: E200029: Couldn't perform atomic initialization
svn: E200030: Could not initialize SQLite shared cache

Does anyone know what can cause this, or point me to the area of code to check?

Barry


Re: Problem with checkout for 1.7.0-rc4

Posted by Philip Martin <ph...@wandisco.com>.
Philip Martin <ph...@wandisco.com> writes:

> I was looking at the source code repository on sqlite.org, but today I can't
> identify which branch/tag I looked at yesterday :-(

I followed this link:
http://www.sqlite.org/cgi/src/timeline
then
http://www.sqlite.org/cgi/src/info/db5b7b778c
then
http://www.sqlite.org/cgi/src/artifact/05e72174ea58476dc71db4bb6816f5b79a100f76

It's the apple-osx-377 branch in the sqlite repository.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Re: Problem with checkout for 1.7.0-rc4

Posted by Barry Scott <ba...@barrys-emacs.org>.
On 11 Oct 2011, at 09:57, Philip Martin wrote:

> Philip Martin <ph...@wandisco.com> writes:
> 
>> sqlite-3.6.18, our minimum version, has SQLITE_OPEN_SHAREDCACHE.  I
>> suppose we could start using that instead of sqlite3_enable_shared_cache.
> 
> Barry, would you try this patch to confirm it works on OS X 10.7:

Yes this patch works. Applies 133 lines offset against 1.7.0 tarball source.

With this in place my regressions test are passing for pysvn.

Thanks for your help.

Barry


> 
> Index: subversion/libsvn_subr/sqlite.c
> ===================================================================
> --- subversion/libsvn_subr/sqlite.c	(revision 1181650)
> +++ subversion/libsvn_subr/sqlite.c	(working copy)
> @@ -637,12 +637,6 @@
> 
> #endif /* APR_HAS_THRADS */
> 
> -  /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
> -     environment. This allows sharing cached data when we open a database
> -     more than once (Very common in the current pre-single-database state) */
> -  SQLITE_ERR_MSG(sqlite3_enable_shared_cache(TRUE),
> -                 _("Could not initialize SQLite shared cache"));
> -
>   return SVN_NO_ERROR;
> }
> 
> @@ -673,6 +667,11 @@
>     flags |= SQLITE_OPEN_NOMUTEX;
> #endif
> 
> +    /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
> +       environment. This allows sharing cached data when we open a database
> +       more than once (Very common in the current pre-single-database state) */
> +    flags |= SQLITE_OPEN_SHAREDCACHE;
> +
>     /* Open the database. Note that a handle is returned, even when an error
>        occurs (except for out-of-memory); thus, we can safely use it to
>        extract an error message and construct an svn_error_t. */
> 
> -- 
> uberSVN: Apache Subversion Made Easy
> http://www.uberSVN.com
> 


Re: Problem with checkout for 1.7.0-rc4

Posted by Konstantin Kolinko <kn...@gmail.com>.
2011/10/11 Philip Martin <ph...@wandisco.com>:
> Philip Martin <ph...@wandisco.com> writes:
>
>> +    /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
>> +       environment. This allows sharing cached data when we open a database
>> +       more than once (Very common in the current pre-single-database state) */
>
> This comment is out of date, wcng is single-db.

The "Very common in the current pre-single-database state" phrase in
the comment above is indeed outdated,  but still I would not say that
current svn is "single-db".

There are directory externals, that have their own .svn/wc.db files.

There also are operations that may access several working copies, e.g.
svn copy between two different WCs.

Though I admit that I do not know much about SQLite cache sharing.

>  I suppose it may still
> apply to simultaneous operations on the same working copy, and we will
> open the server-side rep-cache database multiple times.

Best regards,
Konstantin Kolinko

Re: Problem with checkout for 1.7.0-rc4

Posted by Philip Martin <ph...@wandisco.com>.
Philip Martin <ph...@wandisco.com> writes:

> +    /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
> +       environment. This allows sharing cached data when we open a database
> +       more than once (Very common in the current pre-single-database state) */

This comment is out of date, wcng is single-db.  I suppose it may still
apply to simultaneous operations on the same working copy, and we will
open the server-side rep-cache database multiple times.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Re: Problem with checkout for 1.7.0-rc4

Posted by Philip Martin <ph...@wandisco.com>.
Philip Martin <ph...@wandisco.com> writes:

> sqlite-3.6.18, our minimum version, has SQLITE_OPEN_SHAREDCACHE.  I
> suppose we could start using that instead of sqlite3_enable_shared_cache.

Barry, would you try this patch to confirm it works on OS X 10.7:

Index: subversion/libsvn_subr/sqlite.c
===================================================================
--- subversion/libsvn_subr/sqlite.c	(revision 1181650)
+++ subversion/libsvn_subr/sqlite.c	(working copy)
@@ -637,12 +637,6 @@
 
 #endif /* APR_HAS_THRADS */
 
-  /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
-     environment. This allows sharing cached data when we open a database
-     more than once (Very common in the current pre-single-database state) */
-  SQLITE_ERR_MSG(sqlite3_enable_shared_cache(TRUE),
-                 _("Could not initialize SQLite shared cache"));
-
   return SVN_NO_ERROR;
 }
 
@@ -673,6 +667,11 @@
     flags |= SQLITE_OPEN_NOMUTEX;
 #endif
 
+    /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
+       environment. This allows sharing cached data when we open a database
+       more than once (Very common in the current pre-single-database state) */
+    flags |= SQLITE_OPEN_SHAREDCACHE;
+
     /* Open the database. Note that a handle is returned, even when an error
        occurs (except for out-of-memory); thus, we can safely use it to
        extract an error message and construct an svn_error_t. */

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Re: Problem with checkout for 1.7.0-rc4

Posted by Philip Martin <ph...@wandisco.com>.
Toby Peterson <to...@apple.com> writes:

> On Oct 10, 2011, at 5:10 PM, Bert Huijben wrote:
>
>> -----Original Message-----
>>> From: Philip Martin [mailto:philip.martin@wandisco.com]
>>> Sent: maandag 10 oktober 2011 16:48
>>> To: Mark Phippard
>>> Cc: Barry Scott; Subversion Development
>>> Subject: Re: Problem with checkout for 1.7.0-rc4
>> 
>>>> This is the version that comes with OSX 10.7:
>>>> 
>>>> $ /usr/bin/sqlite3 -version
>>>> 3.7.5
>>> 
>>> Looking at sqlite.h I see this comment on sqlite3_enable_shared_cache:
>>> 
>>> ** ^Note: This method is deprecated on MacOS X 10.7 and iOS version 5.0
>>> ** and will always return SQLITE_MISUSE, instead of calling this function
>>> ** shared cache mode should be enabled per-database connection via
>>> ** sqlite3_open_v2 with SQLITE_OPEN_SHAREDCACHE instead.
>> 
>> I don't see this comment in the 3.7.5 version as downloaded from www.sqlite.org.
>> 
>> Is this from a patch that Apple applied?

I was looking at the source code repository on sqlite.org, but today I can't
identify which branch/tag I looked at yesterday :-(

> Apple ships a modified SQLite; its source is available. See http://www.opensource.apple.com/source/SQLite/SQLite-117/ - specifically, http://www.opensource.apple.com/source/SQLite/SQLite-117/derived_source/sqlite3.h

sqlite-3.6.18, our minimum version, has SQLITE_OPEN_SHAREDCACHE.  I
suppose we could start using that instead of sqlite3_enable_shared_cache.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Re: Problem with checkout for 1.7.0-rc4

Posted by Toby Peterson <to...@apple.com>.
On Oct 10, 2011, at 5:10 PM, Bert Huijben wrote:

> -----Original Message-----
>> From: Philip Martin [mailto:philip.martin@wandisco.com]
>> Sent: maandag 10 oktober 2011 16:48
>> To: Mark Phippard
>> Cc: Barry Scott; Subversion Development
>> Subject: Re: Problem with checkout for 1.7.0-rc4
> 
>>> This is the version that comes with OSX 10.7:
>>> 
>>> $ /usr/bin/sqlite3 -version
>>> 3.7.5
>> 
>> Looking at sqlite.h I see this comment on sqlite3_enable_shared_cache:
>> 
>> ** ^Note: This method is deprecated on MacOS X 10.7 and iOS version 5.0
>> ** and will always return SQLITE_MISUSE, instead of calling this function
>> ** shared cache mode should be enabled per-database connection via
>> ** sqlite3_open_v2 with SQLITE_OPEN_SHAREDCACHE instead.
> 
> I don't see this comment in the 3.7.5 version as downloaded from www.sqlite.org.
> 
> Is this from a patch that Apple applied?

Apple ships a modified SQLite; its source is available. See http://www.opensource.apple.com/source/SQLite/SQLite-117/ - specifically, http://www.opensource.apple.com/source/SQLite/SQLite-117/derived_source/sqlite3.h

- Toby

RE: Problem with checkout for 1.7.0-rc4

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Philip Martin [mailto:philip.martin@wandisco.com]
> Sent: maandag 10 oktober 2011 16:48
> To: Mark Phippard
> Cc: Barry Scott; Subversion Development
> Subject: Re: Problem with checkout for 1.7.0-rc4

> > This is the version that comes with OSX 10.7:
> >
> > $ /usr/bin/sqlite3 -version
> > 3.7.5
> 
> Looking at sqlite.h I see this comment on sqlite3_enable_shared_cache:
> 
> ** ^Note: This method is deprecated on MacOS X 10.7 and iOS version 5.0
> ** and will always return SQLITE_MISUSE, instead of calling this function
> ** shared cache mode should be enabled per-database connection via
> ** sqlite3_open_v2 with SQLITE_OPEN_SHAREDCACHE instead.

I don't see this comment in the 3.7.5 version as downloaded from www.sqlite.org.

Is this from a patch that Apple applied?

	Bert 


Re: Problem with checkout for 1.7.0-rc4

Posted by Philip Martin <ph...@wandisco.com>.
Mark Phippard <ma...@gmail.com> writes:

> On Mon, Oct 10, 2011 at 4:19 PM, Philip Martin
> <ph...@wandisco.com> wrote:
>> Barry Scott <ba...@barrys-emacs.org> writes:
>>
>>> I'm trying to build subversion 1.7.0-rc4 on Mac OS X 10.7.
>>> And I'm guessing that got something in the build/install wrong.
>>>
>>> I see the following error from svn checkout:
>>>
>>> $ /usr/local/svn-1.7.0-rc4/bin/svn checkout file:///Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/repos/trunk /Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/wc1
>>> svn: E200029: Couldn't perform atomic initialization
>>> svn: E200030: Could not initialize SQLite shared cache
>>>
>>> Does anyone know what can cause this, or point me to the area of code
>>> to check?
>>
>> libsvn_subr/sqlite.c:init_sqlite()
>>
>>  /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
>>     environment. This allows sharing cached data when we open a database
>>     more than once (Very common in the current pre-single-database state) */
>>  SQLITE_ERR_MSG(sqlite3_enable_shared_cache(TRUE),
>>                 _("Could not initialize SQLite shared cache"));
>>
>>
>> Which version of SQLite are you using?
>
> This is the version that comes with OSX 10.7:
>
> $ /usr/bin/sqlite3 -version
> 3.7.5

Looking at sqlite.h I see this comment on sqlite3_enable_shared_cache:

** ^Note: This method is deprecated on MacOS X 10.7 and iOS version 5.0
** and will always return SQLITE_MISUSE, instead of calling this function
** shared cache mode should be enabled per-database connection via 
** sqlite3_open_v2 with SQLITE_OPEN_SHAREDCACHE instead.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Re: Problem with checkout for 1.7.0-rc4

Posted by Mark Phippard <ma...@gmail.com>.
On Mon, Oct 10, 2011 at 4:19 PM, Philip Martin
<ph...@wandisco.com> wrote:
> Barry Scott <ba...@barrys-emacs.org> writes:
>
>> I'm trying to build subversion 1.7.0-rc4 on Mac OS X 10.7.
>> And I'm guessing that got something in the build/install wrong.
>>
>> I see the following error from svn checkout:
>>
>> $ /usr/local/svn-1.7.0-rc4/bin/svn checkout file:///Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/repos/trunk /Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/wc1
>> svn: E200029: Couldn't perform atomic initialization
>> svn: E200030: Could not initialize SQLite shared cache
>>
>> Does anyone know what can cause this, or point me to the area of code
>> to check?
>
> libsvn_subr/sqlite.c:init_sqlite()
>
>  /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
>     environment. This allows sharing cached data when we open a database
>     more than once (Very common in the current pre-single-database state) */
>  SQLITE_ERR_MSG(sqlite3_enable_shared_cache(TRUE),
>                 _("Could not initialize SQLite shared cache"));
>
>
> Which version of SQLite are you using?

This is the version that comes with OSX 10.7:

$ /usr/bin/sqlite3 -version
3.7.5


-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

Re: Problem with checkout for 1.7.0-rc4

Posted by Philip Martin <ph...@wandisco.com>.
Barry Scott <ba...@barrys-emacs.org> writes:

> I'm trying to build subversion 1.7.0-rc4 on Mac OS X 10.7.
> And I'm guessing that got something in the build/install wrong.
>
> I see the following error from svn checkout:
>
> $ /usr/local/svn-1.7.0-rc4/bin/svn checkout file:///Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/repos/trunk /Users/barry/BuildTemp/Darwin_body/svn-1.7.0-rc4/py27_pysvn_apple_com/Tests/testroot-01/wc1
> svn: E200029: Couldn't perform atomic initialization
> svn: E200030: Could not initialize SQLite shared cache
>
> Does anyone know what can cause this, or point me to the area of code
> to check?

libsvn_subr/sqlite.c:init_sqlite()

  /* SQLite 3.5 allows sharing cache instances, even in a multithreaded
     environment. This allows sharing cached data when we open a database
     more than once (Very common in the current pre-single-database state) */
  SQLITE_ERR_MSG(sqlite3_enable_shared_cache(TRUE),
                 _("Could not initialize SQLite shared cache"));


Which version of SQLite are you using?

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com