Re: [PATCH] fix kwallet-related crash when solving conflicts

2012-12-12 Thread Ben Reser
On Wed, Dec 12, 2012 at 3:04 PM, Lekensteyn  wrote:
> Further debugging revealed that a child process of svn segfaults and that this
> happens because of misuse of apr_pool_cleanup_register. That function does not
> accept null helpers. I've grepped the svn repo and the kwallet auth code is
> the only place where this error occurs.

Thanks for the complete bug report and patch.

Applied in r1421103.  FYI, since 1.7.8 is in the process of releasing
now this won't be included.


[PATCH] fix kwallet-related crash when solving conflicts

2012-12-12 Thread Lekensteyn
Hi,

I experienced a segfault when trying to resolve a conflict while updating:
Conflict discovered in 'somefile'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: l
Process '/path/to/shell-script/merge-cmd' failed (exitwhy 6)

Further debugging revealed that a child process of svn segfaults and that this 
happens because of misuse of apr_pool_cleanup_register. That function does not 
accept null helpers. I've grepped the svn repo and the kwallet auth code is 
the only place where this error occurs.

Please see the attached patch, it was based on r1421011 and tested by applying 
it on top of 1.7.7.

Regards,
PeterIndex: subversion/libsvn_auth_kwallet/kwallet.cpp
===
--- subversion/libsvn_auth_kwallet/kwallet.cpp	(revision 1421011)
+++ subversion/libsvn_auth_kwallet/kwallet.cpp	(working copy)
@@ -253,7 +253,7 @@ kwallet_password_get(svn_boolean_t *done,
 }
 }
 
-  apr_pool_cleanup_register(pool, parameters, kwallet_terminate, NULL);
+  apr_pool_cleanup_register(pool, parameters, kwallet_terminate, apr_pool_cleanup_null);
 
   return SVN_NO_ERROR;
 }
@@ -327,7 +327,7 @@ kwallet_password_set(svn_boolean_t *done,
 }
 }
 
-  apr_pool_cleanup_register(pool, parameters, kwallet_terminate, NULL);
+  apr_pool_cleanup_register(pool, parameters, kwallet_terminate, apr_pool_cleanup_null);
 
   return SVN_NO_ERROR;
 }


Re: svn commit: r1417639 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c reports/update.c

2012-12-12 Thread C. Michael Pilato
On 12/12/2012 04:23 PM, Lieven Govaerts wrote:
> You're not reading my mails at all are you? ;)
> That's what I suggested before, but I found later that it will not
> work because the server can force the client to use skelta mode
> (SVNAllowBulkUpdates Off).

I'm starting to think I must have missed some, for sure.  Sorry about that.
 I'll re-read the whole thread (from archives) before continuing to blab on.

-- 
C. Michael Pilato 
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: [PATCH] Test for line ending bug in svnrdump (issue 4263)

2012-12-12 Thread Daniel Shahaf
Ben Reser wrote on Wed, Dec 12, 2012 at 13:57:30 -0800:
> On Tue, Dec 11, 2012 at 5:59 PM, Ben Reser  wrote:
> > I'd say that replacing '\r' with a '' is wrong.  That would
> > change the meaning of some properties.  E.G. svn:ignore, svn:externals
> > which use lines to handle individual records within them.
> 
> To be more explicit, I think you should change CR or CRLF into LF.

I've applied your patch Gabriela, with a tweak to the log message and
with the addition of an expected_dumpfile_path parameter.  Currently the
test checks what Ben said --- which is also consistent with what you and
danielsh suggested in earlier emails.

Naturally we can change the test's expectations if down the road we
decide the correct behaviour is something else.

Thanks for the patch!

Daniel

P.S.  This thread was an unusually long one, for a patch that adds about
a dozen lines of code.


Re: [PATCH] Test for line ending bug in svnrdump (issue 4263)

2012-12-12 Thread Ben Reser
On Tue, Dec 11, 2012 at 5:59 PM, Ben Reser  wrote:
> I'd say that replacing '\r' with a '' is wrong.  That would
> change the meaning of some properties.  E.G. svn:ignore, svn:externals
> which use lines to handle individual records within them.

To be more explicit, I think you should change CR or CRLF into LF.


Re: svn commit: r1417639 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c reports/update.c

2012-12-12 Thread C. Michael Pilato
On 12/12/2012 04:04 PM, Lieven Govaerts wrote:
> Note that send-all is not the solution if the server insists on skelta
> mode (see my previous comment), so if you do an update or a checkout,
> you still have to tell serf to limit to one connection.

And that's trickier than it seems, IIRC, because Ivan changed ra_serf to
recycle even the first connection as an auxiliary one once the REPORT is
completely processed.

>> svnrdump is only trying to do essentally that anyway -- a update of
>> ${NOTHING} to ${SOME_REV}.  It calls svn_ra_do_update(), uses the provided
>> reporter to say "I've got nothing", then finalizes the report and away she
>> goes.  Would it not be more straightforward to offer a compact API for just
>> those sorts of use-cases -- the "fake update from nothing to something"
>> use-cases?
> 
> Maybe, but would anything else besides svnrdump use this new API? svn
> checkout/export solve this in a different manner already.

Well, in retrospect, I would name it something that did *not* have
"checkout" in the name:  svn_ra_do_export(), or svn_ra_dump_tree(), or
something.  And actually, I suspect that 'svn export' could use exactly this
function!  ('svn checkout' could not, because it really *is* an update under
the hood.)  But of course, it wouldn't do so because it prefers the more
performant async approach.  All of which leads us back to turning away from
the send-all/non-send-all focus, and onto, as you said, limiting ourselves
to a single auxiliary fetch connection.

Still, we have to have a way to sensibly decide when to do so.

Here's a question I've been wondering for some time:  should we expose to
users a configuration option for declaring the number of aux connections
ra_serf should use?  I mean, Firefox has exposed such an option for years.
If we did so for Subversion, we could say, "Yeah, ra_serf+svnrdump is a bad
combination.  Here's a workaround.  Run it with
--config-option=servers:global:serf-max-connections=2".  Or better yet (as
per my other mail in this thread), we could just hardcode that option
override in svnrdump itself.

-- 
C. Michael Pilato 
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: svn commit: r1417639 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c reports/update.c

2012-12-12 Thread Lieven Govaerts
Mike,

On Wed, Dec 12, 2012 at 10:15 PM, C. Michael Pilato  wrote:
> On 12/12/2012 03:30 PM, C. Michael Pilato wrote:
>> On 12/12/2012 03:02 PM, Lieven Govaerts wrote:
>>> On Tue, Dec 11, 2012 at 9:29 PM, C. Michael Pilato  
>>> wrote:
 Those technical challenges aside, I've since started to doubt the wisdom of
 adding special treatment of the starting revision to this API anyway.  I'll
 continue pondering other options.

>>>
>>> What about my earlier suggestion?
>>
>> I considered it.
>>
>> And ... then I considered it a nasty hack.
>
> Wait a second, though.  If we're talking about nasty hacks, what about this
> one: 'svnrdump dump' grows code to set the new bulk-updates config option on
> behalf of the user.  :-)

You're not reading my mails at all are you? ;)
That's what I suggested before, but I found later that it will not
work because the server can force the client to use skelta mode
(SVNAllowBulkUpdates Off).


>
> Something like this:
>
> Index: subversion/svnrdump/svnrdump.c
> ===
> --- subversion/svnrdump/svnrdump.c  (revision 1420957)
> +++ subversion/svnrdump/svnrdump.c  (working copy)
> @@ -341,7 +341,7 @@
>  apr_pool_t *pool)
>  {
>svn_client_ctx_t *ctx = NULL;
> -  svn_config_t *cfg_config;
> +  svn_config_t *cfg_config, *cfg_servers;
>
>SVN_ERR(svn_ra_initialize(pool));
>
> @@ -357,6 +357,13 @@
>cfg_config = apr_hash_get(ctx->config, SVN_CONFIG_CATEGORY_CONFIG,
>  APR_HASH_KEY_STRING);
>
> +  /* Forcibly prefer bulk-updates to work around issue #4116
> + (http://subversion.tigris.org/issues/show_bug.cgi?id=4116). */
> +  cfg_servers = apr_hash_get(ctx->config, SVN_CONFIG_CATEGORY_SERVERS,
> + APR_HASH_KEY_STRING);
> +  svn_config_set_bool(cfg_servers, SVN_CONFIG_SECTION_GLOBAL,
> +  SVN_CONFIG_OPTION_BULK_UPDATES, TRUE);
> +

Also, this setting can be set per server group by the user so
overriding the above, but I got the idea! ;)

>/* Set up our cancellation support. */
>ctx->cancel_func = check_cancel;
>
>
> --
> C. Michael Pilato 
> CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development
>

Lieven


Re: svn commit: r1417639 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c reports/update.c

2012-12-12 Thread C. Michael Pilato
On 12/12/2012 03:30 PM, C. Michael Pilato wrote:
> On 12/12/2012 03:02 PM, Lieven Govaerts wrote:
>> On Tue, Dec 11, 2012 at 9:29 PM, C. Michael Pilato  
>> wrote:
>>> Those technical challenges aside, I've since started to doubt the wisdom of
>>> adding special treatment of the starting revision to this API anyway.  I'll
>>> continue pondering other options.
>>>
>>
>> What about my earlier suggestion?
> 
> I considered it.
> 
> And ... then I considered it a nasty hack.

Wait a second, though.  If we're talking about nasty hacks, what about this
one: 'svnrdump dump' grows code to set the new bulk-updates config option on
behalf of the user.  :-)

Something like this:

Index: subversion/svnrdump/svnrdump.c
===
--- subversion/svnrdump/svnrdump.c  (revision 1420957)
+++ subversion/svnrdump/svnrdump.c  (working copy)
@@ -341,7 +341,7 @@
 apr_pool_t *pool)
 {
   svn_client_ctx_t *ctx = NULL;
-  svn_config_t *cfg_config;
+  svn_config_t *cfg_config, *cfg_servers;

   SVN_ERR(svn_ra_initialize(pool));

@@ -357,6 +357,13 @@
   cfg_config = apr_hash_get(ctx->config, SVN_CONFIG_CATEGORY_CONFIG,
 APR_HASH_KEY_STRING);

+  /* Forcibly prefer bulk-updates to work around issue #4116
+ (http://subversion.tigris.org/issues/show_bug.cgi?id=4116). */
+  cfg_servers = apr_hash_get(ctx->config, SVN_CONFIG_CATEGORY_SERVERS,
+ APR_HASH_KEY_STRING);
+  svn_config_set_bool(cfg_servers, SVN_CONFIG_SECTION_GLOBAL,
+  SVN_CONFIG_OPTION_BULK_UPDATES, TRUE);
+
   /* Set up our cancellation support. */
   ctx->cancel_func = check_cancel;


-- 
C. Michael Pilato 
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: svn commit: r1417639 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c reports/update.c

2012-12-12 Thread Lieven Govaerts
On Wed, Dec 12, 2012 at 9:30 PM, C. Michael Pilato  wrote:
> On 12/12/2012 03:02 PM, Lieven Govaerts wrote:
>> On Tue, Dec 11, 2012 at 9:29 PM, C. Michael Pilato  
>> wrote:
>>> Those technical challenges aside, I've since started to doubt the wisdom of
>>> adding special treatment of the starting revision to this API anyway.  I'll
>>> continue pondering other options.
>>>
>>
>> What about my earlier suggestion?
>
> I considered it.
>
> And ... then I considered it a nasty hack.  Seriously, this is really not
> the kind of thing that *should* be exposed through an API.
>
>...
>svn_boolean_t honor_editor_api_promises;
>...
>
> Really?  :-)
>

Depends a bit on how you name that function of course, you could call
it relax_editor_depth_first_promise(svn_boolean_t) - with default to
true. This is my reading of the conclusion of your issue 2932: we're
relaxing the rules a bit, but we think it's safe to do so we make this
the new default.

> It does occur to me that one way to work around this is to add an API that
> seems generally useful:
>
>   svn_ra_do_checkout()
>
> This would be Yet Another Flavor Of Update-ish Thing, but wouldn't generate
> a reporter/reporter_baton pair, and would immediately begin driving the
> provided editor/editor_baton.  And ra_serf's implementation thereof would,
> of course, use send-all mode.

Note that send-all is not the solution if the server insists on skelta
mode (see my previous comment), so if you do an update or a checkout,
you still have to tell serf to limit to one connection.

>
> svnrdump is only trying to do essentally that anyway -- a update of
> ${NOTHING} to ${SOME_REV}.  It calls svn_ra_do_update(), uses the provided
> reporter to say "I've got nothing", then finalizes the report and away she
> goes.  Would it not be more straightforward to offer a compact API for just
> those sorts of use-cases -- the "fake update from nothing to something"
> use-cases?

Maybe, but would anything else besides svnrdump use this new API? svn
checkout/export solve this in a different manner already.

Lieven


Re: 1.7.8 up for testing/signing

2012-12-12 Thread C. Michael Pilato
On 12/12/2012 03:20 PM, Paul Burba wrote:
> Hi Ben,
> 
> Not until after I signed this did I recall your note about migrating
> off of sha1 based keys --
> http://svn.haxx.se/dev/archive-2012-10/0073.shtml

Glad you said something about this, Paul!  I *did* remember that we were
using stronger keys, but failed to notice that I hadn't configured GPG to
pick my newer 4096-bit key.

Here are the updated signatures from me:

::: subversion-1.7.8.tar.gz :::
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAABCAAGBQJQyOz1AAoJEPXg8AH+aBMz+cAP/jQuT0/5bBIL1zBOMqAVDgNQ
WvAbY97EaC7UanxNWBKJ+EwZ0zhVVv0xvihes8Y0N2/2mioeFmhC7IPPVviaRyQf
fPUc6Geme5NxMZXgXAJqf8hyghiKtHxbbazaBN3bDB9ngBTBChl9YhG/fNaT+fIe
1dmCq/Vlg8V3Z2/4IOXDZMPp0jDE956chL6s597QyNEVNzSZ7piNhI0/OYKcGs45
5FPFfmHDxti77hNBbTrJXMAKcOdHtqMKkuQcljlqk1vADs+wbgtSsj7AEXQCicJ/
54udHV0N2+6OHpzd1TXgoHjz5xDZZav+SXH/K2/5a7gpqDS3n3RA0utga9V+oUeJ
GOoCkR+jOYlIA/xeHkj4Fc/VA9xmqFg0Dg1ot6+6/rM4qAoyNQln5KDP+vr/+dho
jZ4+E+f6rpDRltE3molkZVJ5g5Alk6D4w8BHV+txgIR4dcAdT/P+Y5sLGkdkBqpP
3RyrdDhg2eWt5dZmm8SgDN5K1zz6mNkuRtjj59fOEFqAoEM2WUyIcu0eQtZvAIJd
1ltbLrhQvq0HWEyQFwuNfDoDSZjUoT0CjnBCKXvC7MNSBzJwEJVtrXE+dVKl+ZtL
dnLr5Xf/R3NxO1hNJ/MFUMvHxZEpV24fwnm3z2yGUZTnmB4v/D6zhKX1LvKskY2a
GwKVcPWJDEmC5S7QJGuw
=B8zc
-END PGP SIGNATURE-

::: subversion-1.7.8.tar.bz2 :::
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAABCAAGBQJQyOz2AAoJEPXg8AH+aBMz5VUP/jcDKa9TrWcOm+MQyoFBtv9Q
kV0dUmlccv0q/uNHsoS/XFmobZudqSro6q+6yFSeL0o2jxObSTEwukNHs9FbVciM
7yzeWyuM5knwgdz+YdAJxS9l0cW/uXeo/KYUuvxVkj/4RSA1RW9DTtznbwbPUF7Z
nlVNXKa2lmu89xTl69PPjOXnro/L3GMglctQivAxVJsXLBA2xWxtw4h7x5ZaNNZi
QkQuxxsn77Kmah8ktJo51Rcu73+GY88JecoqHufGCDNUf12DfKAWwqqfpauFKViN
rD3KwAs44uCKD4eMrUQ60yZg3vaAsZymTG2W9o2UFjVteSnHIcgK5UumqYlIFKD6
V2ewcgqn8FXYHZsC6awSVo7bDnGcSg/ivkn723LFgTotaG19VkcnvYy8WK4/SbZl
cI93sq4omPvlxRziCfbrONReIhagl3oQVfRqHrwB9d+q3lEPFBfxkZ5mZtAc0XEP
nNffZowcni661Rwc5Y17RUCjgD44/3l4SOpOoGPml3XTdN3eNduPhtmasgo1ukOT
dfKrgM8fmeHprZztM2HnoqpDHKn5VvHYhA4aXE0Yx3dPUqOKuBucrYZASg7fVv1g
FntU/4b+u3ktQ9mu2gjyAvuWzsXw9kAQbExNO1YVqAj+1YjwPoZ+ahE1JIbsl0js
f804UC/0yfj2UxmHWSk/
=4BSG
-END PGP SIGNATURE-

And I'm about to commit the same to the dist repos.

-- 
C. Michael Pilato 
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: svn commit: r1417639 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c reports/update.c

2012-12-12 Thread C. Michael Pilato
On 12/12/2012 03:02 PM, Lieven Govaerts wrote:
> On Tue, Dec 11, 2012 at 9:29 PM, C. Michael Pilato  
> wrote:
>> Those technical challenges aside, I've since started to doubt the wisdom of
>> adding special treatment of the starting revision to this API anyway.  I'll
>> continue pondering other options.
>>
> 
> What about my earlier suggestion?

I considered it.

And ... then I considered it a nasty hack.  Seriously, this is really not
the kind of thing that *should* be exposed through an API.

   ...
   svn_boolean_t honor_editor_api_promises;
   ...

Really?  :-)

It does occur to me that one way to work around this is to add an API that
seems generally useful:

  svn_ra_do_checkout()

This would be Yet Another Flavor Of Update-ish Thing, but wouldn't generate
a reporter/reporter_baton pair, and would immediately begin driving the
provided editor/editor_baton.  And ra_serf's implementation thereof would,
of course, use send-all mode.

svnrdump is only trying to do essentally that anyway -- a update of
${NOTHING} to ${SOME_REV}.  It calls svn_ra_do_update(), uses the provided
reporter to say "I've got nothing", then finalizes the report and away she
goes.  Would it not be more straightforward to offer a compact API for just
those sorts of use-cases -- the "fake update from nothing to something"
use-cases?

-- 
C. Michael Pilato 
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: 1.7.8 up for testing/signing

2012-12-12 Thread C. Michael Pilato
On 12/10/2012 05:07 PM, Ben Reser wrote:
> The 1.7.8 release artifacts are now available for testing/signing.
> Please get the tarballs from
>   https://dist.apache.org/repos/dist/dev/subversion
> and add your signatures there.

Summary:

   +1 to release.

Platform:

   Linux 3.2.0-34-generic-pae
   Ubuntu 12.04.1 (precise) Linux (x86)
   Python 2.7.3
   Perl 5.14.2
   Ruby 1.8.7
   Java 1.6.0_24

Verified:

   I tested the following (with pre-installed dependencies):

  ((svn, neon, serf, local) x (fsfs, bdb))
 + swig-py + javahl + swig-rb + ctypes-python

SHA1 Checksums:

   1e298368cc2a73337eaaf192510afa5e88a097c8  subversion-1.7.8.tar.gz
   12c7d8d5414bba74c9777c4d1dae74f152df63c2  subversion-1.7.8.tar.bz2

GPG Signatures

::: subversion-1.7.8.tar.gz :::
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEABECAAYFAlDItF8ACgkQokEGqRcG/W5dmgCgyWcd02yhR/EQTsaavwlxDaxY
UQAAoJuPpOAbZZat8SnzpZ+bcIZhedqy
=9rdE
-END PGP SIGNATURE-

::: subversion-1.7.8.tar.bz2 :::
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEABECAAYFAlDItF8ACgkQokEGqRcG/W4SkwCfahh6DQkFNIPaIp91jNG3lBRb
tyYAnR/Bj/3CqVLdDgFUQ0DtIqBdJzSW
=zBoS
-END PGP SIGNATURE-


-- 
C. Michael Pilato 
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: 1.7.8 up for testing/signing

2012-12-12 Thread Paul Burba
On Mon, Dec 10, 2012 at 10:03 PM, Paul Burba  wrote:
> On Mon, Dec 10, 2012 at 5:07 PM, Ben Reser  wrote:
>> The 1.7.8 release artifacts are now available for testing/signing.
>> Please get the tarballs from
>>   https://dist.apache.org/repos/dist/dev/subversion
>> and add your signatures there.
>>
>> Thanks!
>
> SUMMARY:
> -
> +1 to release
>
> VERIFIED:
> -
> Other than the expected differences in
> subversion/include/svn_version.h,
> https://dist.apache.org/repos/dist/dev/subversion/subversion-1.7.8.zip
> is identical to
> https://svn.apache.org/repos/asf/subversion/branches/1.7.x@1419691.
>
> SHA1 checksum of
> https://dist.apache.org/repos/dist/dev/subversion/subversion-1.7.8.zip
> is 65985725f8138cc18993a9088d4ad70df6c0d816
>
> TESTED:
> ---
> [Release-Build] x[ fsfs | bdb ] x [ file | svn | http (neon) | http (serf) ]
> Ruby bindings (patched as described here:
> http://svn.haxx.se/dev/archive-2011-06/0682.shtml)
> JavaHL Bindings
>
> RESULTS:
> 
> All Tests Pass
>
> PLATFORM:
> -
> MS Windows 7 Home Premium Service Pack 1
> Microsoft Visual Studio 2008 Version 9.0.30729.1 SP
>
> DEPENDENCIES:
> -
> APR: 1.4.6
> APR-UTIL: 1.4.1
> Neon: 0.29.5
> zlib: 1.2.4
> OpenSSL: 0.9.8q
> Apache: 2.2.22
> BDB: 4.8.30
> sqlite: 3.7.7.1
> Python: 2.7.2 (ActivePython 2.7.2.5)
> Perl: 5.14.2
> Ruby: ruby 1.8.7
> java: 1.6.0_21
> junit: 4.8.2
> swig: 1.3.40
> serf: 1.1.1
>
> SIGNATURE:
> --
> https://dist.apache.org/repos/dist/dev/subversion/subversion-1.7.8.zip:
>
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.5 (MingW32)
>
> iD8DBQBQxnLZ2RaJMFP83FURAhdgAJ4uhjXgujUQK5MCObZWanCv0y06dgCfcip4
> 9wYkft1k86LMlDaXYBRZfvk=
> =EbgM
> -END PGP SIGNATURE-

Hi Ben,

Not until after I signed this did I recall your note about migrating
off of sha1 based keys --
http://svn.haxx.se/dev/archive-2012-10/0073.shtml

Here's my sig using my new[1] 4069 bit RSA key (I updated
subversion-1.7.8.zip.asc as well):

-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.17 (MingW32)

iQIcBAABCgAGBQJQyOCjAAoJEGTdwHFW89e8CPcQAJpAIFDDNudie0SwBvaVgBTJ
BAX+SWGxAX8uHw1YTGUlTBqtfjy9K1e6tYF3HfOA/8OVzPaVLo+w6KBOQvblGvoy
0XqCel/QEtFtxLnr0O2WRQVQlIis05hTZNPbti7nYg4CPfAKfVQHTJGFwABw9n6u
hUD4guSnaKJEFE0YXO4Ze8ypb9n7ByB10oFEntg5M8F7khnMccv/h+LDAjfFGiJk
nXLcZflm9at9ZKaTg2DNeYHANXVz37sYvzKSdprA/JJsMu62pBZRoUYxsUQlS3CJ
fGqzpqYViN3pZaEZ0xKk5IQS1/inHKn5dJOmZrBQ+8Y5Homy0S8dVEWKx4XOJBYM
PfjNo95yr0vb8BT/ZesGVePl44j8KCXgFnFUcC7z3F6/iMn9+NTF+PuLlEBvFU5c
aEmgFWavDq5X97GGsir0/lN4jQwBCjDLJw+l11252HRGyqpEBx78OT0we9cvYWEm
ic3WLYricNfGVoJcp//i0OBtT2Ay0A/wCBrgCT6zUo9ZkwV6+94sKiq8y9PTQ37f
cmU/ZijP54xevUXX4vkzUxpolZao3ZiWpWUBaLf45MIVU2nDlf2HLs74TH7IMLZP
0o56klr7t7MHZHf2kfwhtNqZ0SMLNrdTU7G7OjpGTi/C33uy9eWgRvX20NZTvJmu
wWjxtQXUR8U4NqeQBsmI
=A/dt
-END PGP SIGNATURE-

[1] Key ID: 56F3D7BC
Fingerprint: 1A0F E7C6 B3C5 F8D4 D0C4  A20B 64DD C071 56F3 D7BC

-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba


Re: [PATCH] Prevent false negative results of "make check" in Python tests

2012-12-12 Thread Daniel Shahaf
Andreas Stieger wrote on Wed, Dec 12, 2012 at 20:01:11 +:
> Hello,
> 
> discussed on IRC, the patch below changes the test harness to prevent
> some false negatives when running the test suite. Specifically, if a
> python test initialisation returns in such a way that the test runner
> doesn't know how to handle the result, change to code to return a
> non-zero exit code like and, subsequently, have "make check" fail
> correctly. Reproducible by using Python < 2.5 or missing sqlite3 Python
> bindings, exit triggered by
> subversion/tests/cmdline/svntest/__init__.py. danielsh,breser hinted +1
> for this on IRC.

Go ahead and commit.  It's an error path that no one should be running
into; you run into it, and you have 2 +1's, so it's a no brainer. If
anyone have issues I trust they'll do a post-commit review.

> 
> [[[
> Prevent false negative results of "make check" in Python tests
> 
> * build/run_tests.py
>   (_run_py_test): exit non-zero like _run_c_test
> ]]]
> 
> With kind regards,
> Andreas Stieger

> Index: build/run_tests.py
> ===
> --- build/run_tests.py(revision 1420930)
> +++ build/run_tests.py(working copy)
> @@ -434,7 +434,7 @@ class TestHarness:
>   ('.py', 'U', imp.PY_SOURCE))
>  except:
>print("Don't know what to do about " + progbase)
> -  raise
> +  sys.exit(1)
>  
>  import svntest.main
>  



Re: svn commit: r1417639 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c reports/update.c

2012-12-12 Thread Lieven Govaerts
On Tue, Dec 11, 2012 at 9:29 PM, C. Michael Pilato  wrote:
> On 12/10/2012 10:53 AM, C. Michael Pilato wrote:
>> What if we revved the svn_ra_replay_range() API in such a way that it could
>> now handle this "initial revision" scenario?  We might add an 'incremental'
>> flag that parallels what 'svnadmin dump' and 'svnrdump dump' do.  This would
>> get us to a single RA API used for revision replays (replay_range, instead
>> of a combination of do_update + replay_range), which simplifies how replays
>> are done from an API perspective.  Of course, under the hood, the RA
>> implementations of the new replay_range2() would probably just use the same
>> update mechanics to handle that initial revision when not in incremental
>> mode, but ra_serf's particular implementation would be free to choose
>> "send-all" mode in this one scenario to do exactly that.
>
> Well, this turns out to be a little more sticky than I'd hoped.
>
> It's easy enough to add a "send_complete_start_revision" flag to
> svn_ra_replay_range() which causes the first transmitted revision to be a
> full dump of the tree as of that revision.  But the svn_ra_replay_range()
> API also allows folks to specific whether they want *real* content change
> information, or just placeholder notifications for modified file content and
> node properties.  Seems kinda yucky to transmit a full tree snapshot when
> the caller has asked not to get any real content mods; and we don't have a
> readily available way to send a full tree snapshot sans real content.
>
> Those technical challenges aside, I've since started to doubt the wisdom of
> adding special treatment of the starting revision to this API anyway.  I'll
> continue pondering other options.
>

What about my earlier suggestion?
"""
On Thu, Dec 6, 2012 at 11:04 PM, Mark Phippard  wrote:
>>> Is there an easy way to make svnrdump always use "sendall" mode?  That
>>> would remove the release blocker we have about this command not
>>> working correctly with Serf and it seems like something we ought to be
>>> able to implement independent of these other questions.
>>>
>>
>> A bit of a hack, but after the config is read from file/registry and
>> before svnrdump creates the ra_session we can set the global or per
>> server-group "bulk-updates" option in memory to true.
>> Is this for dump only?
>
> AFAIK, it is only dump where the svnrdump tool fails when using Serf.
> Because of the Ev1 stuff.  Using bulk-updates ought to avoid that
> issue.

Actually, my proposed hack of forcing ra_serf to use bulk update mode
is not going to work. If the server has SVNAllowBulkUpdates set to
Off, bulk update mode isn't available, the server will ignore any
requests from the client and force skelta mode.

If I remember correctly the issue here was responses arriving out of
order due to multiple parallel connections. So the fix until svnrdump
has moved to Ev2 is to stick to one extra connection for all the file
content requests, so all of those responses arrive in sync.
Don't know how easy that is to do, I wonder if we have a simple
mechanism that allows a client to pass ra implementation specific
options.
"""

It'd still require an ra API change, like
guarantee_depth_first_order(), which ra_serf will use to limit the nr.
of connections to 1, and probably only svnrdump will every use.

> --
> C. Michael Pilato 
> CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development
>

Lieven


[PATCH] Prevent false negative results of "make check" in Python tests

2012-12-12 Thread Andreas Stieger
Hello,

discussed on IRC, the patch below changes the test harness to prevent
some false negatives when running the test suite. Specifically, if a
python test initialisation returns in such a way that the test runner
doesn't know how to handle the result, change to code to return a
non-zero exit code like and, subsequently, have "make check" fail
correctly. Reproducible by using Python < 2.5 or missing sqlite3 Python
bindings, exit triggered by
subversion/tests/cmdline/svntest/__init__.py. danielsh,breser hinted +1
for this on IRC.

[[[
Prevent false negative results of "make check" in Python tests

* build/run_tests.py
  (_run_py_test): exit non-zero like _run_c_test
]]]

With kind regards,
Andreas Stieger
Index: build/run_tests.py
===
--- build/run_tests.py	(revision 1420930)
+++ build/run_tests.py	(working copy)
@@ -434,7 +434,7 @@ class TestHarness:
  ('.py', 'U', imp.PY_SOURCE))
 except:
   print("Don't know what to do about " + progbase)
-  raise
+  sys.exit(1)
 
 import svntest.main
 


Re: 1.7.8 up for testing/signing

2012-12-12 Thread Peter Samuelson

> http://anonscm.debian.org/viewvc/pkg-subversion/src/1.7.x/debian/patches/

(Or svn://anonscm.debian.org/pkg-subversion/src/1.7.x/debian/patches .)


Re: 1.7.8 up for testing/signing

2012-12-12 Thread Philip Martin
Philip Herron  writes:

> Ok cool never seen these ones there was probably a much older one i was
> looking at where can i download these ones?

http://anonscm.debian.org/viewvc/pkg-subversion/src/1.7.x/debian/patches/

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download


Re: 1.7.8 up for testing/signing

2012-12-12 Thread Philip Herron
Ok cool never seen these ones there was probably a much older one i was
looking at where can i download these ones?

--Phil

On 12/12/12 11:56, Philip Martin wrote:
> Philip Herron  writes:
> 
>> Which patch are you referring in paticular?
> 
> subversion-1.7.5/debian/patches/apr-abi1
> subversion-1.7.5/debian/patches/apr-abi2
> 
> Index: configure.ac
> ===
> --- configure.ac  (revision 1420608)
> +++ configure.ac  (working copy)
> @@ -99,19 +99,26 @@
>  if test `expr $apr_version : 2` -ne 0; then
>dnl Bump the library so-version to 2 if using APR-2
>dnl (Debian uses so-version 1 for APR-1-with-largefile)
> -  SVN_LT_SOVERSION="-version-info 2"
> +  svn_lib_ver=2
>dnl APR-2 provides APRUTIL
>apu_config=$apr_config
>AC_SUBST(SVN_APRUTIL_INCLUDES)
>AC_SUBST(SVN_APRUTIL_CONFIG, ["$apu_config"])
>AC_SUBST(SVN_APRUTIL_LIBS)
>AC_SUBST(SVN_APRUTIL_PREFIX)
> +elif test `expr $apr_version : 1` -ne 0; then
> +  svn_lib_ver=1
> +  APU_VER_REGEXES=["1\."]
> +  SVN_LIB_APRUTIL($APU_VER_REGEXES)
>  else
> -  SVN_LT_SOVERSION="-version-info 0"
> -  APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\."]
> +  svn_lib_ver=0
> +  APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9]"]
>SVN_LIB_APRUTIL($APU_VER_REGEXES)
>  fi
> +SVN_LT_SOVERSION="-version-info $svn_lib_ver"
>  AC_SUBST(SVN_LT_SOVERSION)
> +AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver,
> +   [Subversion library major verson])
>  
>  dnl Search for pkg-config
>  AC_PATH_PROG(PKG_CONFIG, pkg-config)
> Index: subversion/libsvn_fs/fs-loader.c
> ===
> --- subversion/libsvn_fs/fs-loader.c  (revision 1420608)
> +++ subversion/libsvn_fs/fs-loader.c  (working copy)
> @@ -100,8 +100,8 @@
>  const char *funcname;
>  apr_status_t status;
>  
> -libname = apr_psprintf(pool, "libsvn_fs_%s-%d.so.0",
> -   name, SVN_VER_MAJOR);
> +libname = apr_psprintf(pool, "libsvn_fs_%s-%d.so.%d",
> +   name, SVN_VER_MAJOR, SVN_SOVERSION);
>  funcname = apr_psprintf(pool, "svn_fs_%s__init", name);
>  
>  /* Find/load the specified library.  If we get an error, assume
> Index: subversion/libsvn_ra/ra_loader.c
> ===
> --- subversion/libsvn_ra/ra_loader.c  (revision 1420608)
> +++ subversion/libsvn_ra/ra_loader.c  (working copy)
> @@ -159,8 +159,8 @@
>  const char *compat_funcname;
>  apr_status_t status;
>  
> -libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0",
> -   ra_name, SVN_VER_MAJOR);
> +libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.%d",
> +   ra_name, SVN_VER_MAJOR, SVN_SOVERSION);
>  funcname = apr_psprintf(pool, "svn_ra_%s__init", ra_name);
>  compat_funcname = apr_psprintf(pool, "svn_ra_%s_init", ra_name);
>  
> Index: subversion/libsvn_subr/auth.c
> ===
> --- subversion/libsvn_subr/auth.c (revision 1420608)
> +++ subversion/libsvn_subr/auth.c (working copy)
> @@ -399,9 +399,9 @@
>const char *library_label, *library_name;
>const char *provider_function_name, *version_function_name;
>library_name = apr_psprintf(pool,
> -  "libsvn_auth_%s-%d.so.0",
> +  "libsvn_auth_%s-%d.so.%d",
>provider_name,
> -  SVN_VER_MAJOR);
> +  SVN_VER_MAJOR, SVN_SOVERSION);
>library_label = apr_psprintf(pool, "svn_%s", provider_name);
>provider_function_name = apr_psprintf(pool,
>  "svn_auth_get_%s_%s_provider",
> 



Re: mod_dav_svn assert on root location

2012-12-12 Thread Erez Zarum
I have recompiled with the patch,
When trying to commit to the slave, the client receive:
"Commit failed (details follow):
Server sent unexpected return value (500 Internal Server Error) in response to
MKACTIVITY request for '/!svn/act/12aad366-69cf-2b48-9303-bfb1220af919'

And now the error is logged in the VirtualHost error log (as defined)
instead of the main apache error log.
[Wed Dec 12 16:47:33 2012] [error] [client 10.0.2.15] (125009)APR does
not understand this error code: Invalid URI segment
'!svn/act/779db2c6-6390-e147-a8be-cc8434b0919f' in slave fixup

As i understand it will be best to switch from using root dir to
something like "/svn".

Thanks for your help.


On Wed, Dec 12, 2012 at 3:55 PM, Daniel Shahaf  wrote:
> Erez Zarum wrote on Wed, Dec 12, 2012 at 15:33:08 +0200:
>> I am trying to create a master slave configuration with proxy requests
>> through the slave, i have used this configuration on the slave:
>> 
>> DAV svn
>> SVNPath /scratch/repo
>> 
>> SVNMasterURI"http://master.server.com/svn";
>> ...
>> 
>>
>> In 1.7.7 the SVNMasterURI won't let me use http://master.server.com/
>> in 1.6.19 it will.
>> But when i use  i get the following assert in the apache
>> error_log (the main log): "httpd: subversion/mod_dav_svn/mirror.c:47:
>> proxy_request_fixup: Assertion `(uri_segment[0] == '\0') ||
>> (uri_segment[0] == '/')' failed."
>> If i use  then everything works as expected.
>>
>> Thanks,
>>  Erez
>
> Hi :)
>
> Thanks for the due diligent report on IRC, it was helpful.
>
> This should at least fix the assertion (compiled, but untested):
>
> [[[
> Index: subversion/mod_dav_svn/mirror.c
> ===
> --- subversion/mod_dav_svn/mirror.c (revision 1420650)
> +++ subversion/mod_dav_svn/mirror.c (working copy)
> @@ -39,12 +39,17 @@
> URI_SEGMENT is the URI bits relative to the repository root (but if
> non-empty, *does* have a leading slash delimiter).
> MASTER_URI and URI_SEGMENT are not URI-encoded. */
> -static void proxy_request_fixup(request_rec *r,
> -const char *master_uri,
> -const char *uri_segment)
> +static int proxy_request_fixup(request_rec *r,
> +   const char *master_uri,
> +   const char *uri_segment)
>  {
> -assert((uri_segment[0] == '\0')
> -   || (uri_segment[0] == '/'));
> +if (uri_segment[0] != '\0' && uri_segment[0] != '/')
> +  {
> +ap_log_rerror(APLOG_MARK, APLOG_ERR, SVN_ERR_BAD_CONFIG_VALUE, r,
> + "Invalid URI segment '%s' in slave fixup",
> +  uri_segment);
> +return HTTP_INTERNAL_SERVER_ERROR;
> +  }
>
>  r->proxyreq = PROXYREQ_REVERSE;
>  r->uri = r->unparsed_uri;
> @@ -67,6 +72,7 @@
>  ap_add_output_filter("LocationRewrite", NULL, r, r->connection);
>  ap_add_output_filter("ReposRewrite", NULL, r, r->connection);
>  ap_add_input_filter("IncomingRewrite", NULL, r, r->connection);
> +return OK;
>  }
>
>
> @@ -101,8 +107,10 @@ int dav_svn__proxy_request_fixup(request_rec *r)
>  "/txn/", (char *)NULL))
>  || ap_strstr_c(seg, apr_pstrcat(r->pool, special_uri,
>  "/txr/", (char *)NULL))) 
> {
> +int rv;
>  seg += strlen(root_dir);
> -proxy_request_fixup(r, master_uri, seg);
> +rv = proxy_request_fixup(r, master_uri, seg);
> +if (rv) return rv;
>  }
>  }
>  return OK;
> @@ -116,8 +124,10 @@ int dav_svn__proxy_request_fixup(request_rec *r)
>  r->method_number == M_LOCK ||
>  r->method_number == M_UNLOCK ||
>  ap_strstr_c(seg, special_uri))) {
> +int rv;
>  seg += strlen(root_dir);
> -proxy_request_fixup(r, master_uri, seg);
> +rv = proxy_request_fixup(r, master_uri, seg);
> +if (rv) return rv;
>  return OK;
>  }
>  }
> ]]]
>
> I think the actual problem is that root_dir is "/", so after skipping
> strlen(root_dir) bytes the result doesn't start with a slash.  We could
> fix that by using svn_uri__skip_ancestor()... but we already don't allow
> SVNMasterURI to be a http://host:port/ URL (i.e., lacking /path
> componets after the root), so maybe we shouldn't bother to try
> supporting root_dir == "/" here.
>
> Thoughts?
>
> Daniel


Re: mod_dav_svn assert on root location

2012-12-12 Thread Philip Martin
Erez Zarum  writes:

> I am trying to create a master slave configuration with proxy requests
> through the slave, i have used this configuration on the slave:
> 
> DAV svn
> SVNPath /scratch/repo
> 
> SVNMasterURI"http://master.server.com/svn";
> ...
> 
>
> In 1.7.7 the SVNMasterURI won't let me use http://master.server.com/
> in 1.6.19 it will.

That was a deliberate change in r1064734. I'm not sure what went wrong
with that setup but the log message is:

  Disallow attempts to proxy to the server root of a master server.  It
  really just doesn't pan out well when you do.

> But when i use  i get the following assert in the apache
> error_log (the main log): "httpd: subversion/mod_dav_svn/mirror.c:47:
> proxy_request_fixup: Assertion `(uri_segment[0] == '\0') ||
> (uri_segment[0] == '/')' failed."
> If i use  then everything works as expected.

I've raised
http://subversion.tigris.org/issues/show_bug.cgi?id=4272
for the assert.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download


Re: mod_dav_svn assert on root location

2012-12-12 Thread Daniel Shahaf
Erez Zarum wrote on Wed, Dec 12, 2012 at 15:33:08 +0200:
> I am trying to create a master slave configuration with proxy requests
> through the slave, i have used this configuration on the slave:
> 
> DAV svn
> SVNPath /scratch/repo
> 
> SVNMasterURI"http://master.server.com/svn";
> ...
> 
> 
> In 1.7.7 the SVNMasterURI won't let me use http://master.server.com/
> in 1.6.19 it will.
> But when i use  i get the following assert in the apache
> error_log (the main log): "httpd: subversion/mod_dav_svn/mirror.c:47:
> proxy_request_fixup: Assertion `(uri_segment[0] == '\0') ||
> (uri_segment[0] == '/')' failed."
> If i use  then everything works as expected.
> 
> Thanks,
>  Erez

Hi :) 

Thanks for the due diligent report on IRC, it was helpful.

This should at least fix the assertion (compiled, but untested):

[[[
Index: subversion/mod_dav_svn/mirror.c
===
--- subversion/mod_dav_svn/mirror.c (revision 1420650)
+++ subversion/mod_dav_svn/mirror.c (working copy)
@@ -39,12 +39,17 @@
URI_SEGMENT is the URI bits relative to the repository root (but if
non-empty, *does* have a leading slash delimiter).
MASTER_URI and URI_SEGMENT are not URI-encoded. */
-static void proxy_request_fixup(request_rec *r,
-const char *master_uri,
-const char *uri_segment)
+static int proxy_request_fixup(request_rec *r,
+   const char *master_uri,
+   const char *uri_segment)
 {
-assert((uri_segment[0] == '\0')
-   || (uri_segment[0] == '/'));
+if (uri_segment[0] != '\0' && uri_segment[0] != '/')
+  {
+ap_log_rerror(APLOG_MARK, APLOG_ERR, SVN_ERR_BAD_CONFIG_VALUE, r,
+ "Invalid URI segment '%s' in slave fixup",
+  uri_segment);
+return HTTP_INTERNAL_SERVER_ERROR;
+  }
 
 r->proxyreq = PROXYREQ_REVERSE;
 r->uri = r->unparsed_uri;
@@ -67,6 +72,7 @@
 ap_add_output_filter("LocationRewrite", NULL, r, r->connection);
 ap_add_output_filter("ReposRewrite", NULL, r, r->connection);
 ap_add_input_filter("IncomingRewrite", NULL, r, r->connection);
+return OK;
 }
 
 
@@ -101,8 +107,10 @@ int dav_svn__proxy_request_fixup(request_rec *r)
 "/txn/", (char *)NULL))
 || ap_strstr_c(seg, apr_pstrcat(r->pool, special_uri,
 "/txr/", (char *)NULL))) {
+int rv;
 seg += strlen(root_dir);
-proxy_request_fixup(r, master_uri, seg);
+rv = proxy_request_fixup(r, master_uri, seg);
+if (rv) return rv;
 }
 }
 return OK;
@@ -116,8 +124,10 @@ int dav_svn__proxy_request_fixup(request_rec *r)
 r->method_number == M_LOCK ||
 r->method_number == M_UNLOCK ||
 ap_strstr_c(seg, special_uri))) {
+int rv;
 seg += strlen(root_dir);
-proxy_request_fixup(r, master_uri, seg);
+rv = proxy_request_fixup(r, master_uri, seg);
+if (rv) return rv;
 return OK;
 }
 }
]]]

I think the actual problem is that root_dir is "/", so after skipping
strlen(root_dir) bytes the result doesn't start with a slash.  We could
fix that by using svn_uri__skip_ancestor()... but we already don't allow
SVNMasterURI to be a http://host:port/ URL (i.e., lacking /path
componets after the root), so maybe we shouldn't bother to try
supporting root_dir == "/" here.

Thoughts?

Daniel


mod_dav_svn assert on root location

2012-12-12 Thread Erez Zarum
I am trying to create a master slave configuration with proxy requests
through the slave, i have used this configuration on the slave:

DAV svn
SVNPath /scratch/repo

SVNMasterURI"http://master.server.com/svn";
...


In 1.7.7 the SVNMasterURI won't let me use http://master.server.com/
in 1.6.19 it will.
But when i use  i get the following assert in the apache
error_log (the main log): "httpd: subversion/mod_dav_svn/mirror.c:47:
proxy_request_fixup: Assertion `(uri_segment[0] == '\0') ||
(uri_segment[0] == '/')' failed."
If i use  then everything works as expected.

Thanks,
 Erez


Re: svn commit: r1417926 - in /subversion/trunk/subversion/libsvn_wc: externals.c merge.c props.c props.h update_editor.c

2012-12-12 Thread Philip Martin
julianf...@apache.org writes:

> Author: julianfoad
> Date: Thu Dec  6 14:58:31 2012
> New Revision: 1417926
>
> URL: http://svn.apache.org/viewvc?rev=1417926&view=rev
> Log:
> Remove the 'base_merge' parameter from svn_wc__merge_props(), instead
> doing a 'base merge' iff the 'new_pristine_props' output parameter is given,
> for simplicity.

> --- subversion/trunk/subversion/libsvn_wc/props.c (original)
> +++ subversion/trunk/subversion/libsvn_wc/props.c Thu Dec  6 14:58:31 2012
> @@ -294,12 +294,13 @@ svn_wc__perform_props_merge(svn_wc_notif
>/* Note that while this routine does the "real" work, it's only
>   prepping tempfiles and writing log commands.  */
>SVN_ERR(svn_wc__merge_props(&conflict_skel, state,
> -  &new_pristine_props, &new_actual_props,
> +  base_merge ? &new_pristine_props : NULL,
> +  &new_actual_props,

I think this change is causing this error:

W: ==32246== Conditional jump or move depends on uninitialised value(s)
W: ==32246==at 0x510A7F4: svn_wc__perform_props_merge (props.c:340)
W: ==32246==by 0x510AA4C: svn_wc_merge_props3 (props.c:392)
W: ==32246==by 0x4E73748: merge_dir_props_changed (merge.c:1445)
W: ==32246==by 0x4E9B7C5: close_directory (repos_diff.c:1120)
W: ==32246==by 0x559EB6D: close_directory (cancel.c:261)
W: ==32246==by 0x559EB6D: close_directory (cancel.c:261)
W: ==32246==by 0x688FA75: drive (reporter.c:1395)
W: ==32246==by 0x688FD9F: finish_report (reporter.c:1451)
W: ==32246==by 0x68901C6: svn_repos_finish_report (reporter.c:1543)
W: ==32246==by 0x665FEA8: reporter_finish_report (ra_plugin.c:251)
W: ==32246==by 0x4E7ACFF: drive_merge_report_editor (merge.c:5320)
W: ==32246==by 0x4E81570: do_mergeinfo_aware_dir_merge (merge.c:8901)

which is causing the ubuntu buildbot to fail:

svn: E235000: In file 'subversion/libsvn_wc/props.c' line 341: assertion failed 
(new_pristine_props != NULL && new_actual_props != NULL)

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download


Re: 1.7.8 up for testing/signing

2012-12-12 Thread Philip Martin
Philip Herron  writes:

> Which patch are you referring in paticular?

subversion-1.7.5/debian/patches/apr-abi1
subversion-1.7.5/debian/patches/apr-abi2

Index: configure.ac
===
--- configure.ac(revision 1420608)
+++ configure.ac(working copy)
@@ -99,19 +99,26 @@
 if test `expr $apr_version : 2` -ne 0; then
   dnl Bump the library so-version to 2 if using APR-2
   dnl (Debian uses so-version 1 for APR-1-with-largefile)
-  SVN_LT_SOVERSION="-version-info 2"
+  svn_lib_ver=2
   dnl APR-2 provides APRUTIL
   apu_config=$apr_config
   AC_SUBST(SVN_APRUTIL_INCLUDES)
   AC_SUBST(SVN_APRUTIL_CONFIG, ["$apu_config"])
   AC_SUBST(SVN_APRUTIL_LIBS)
   AC_SUBST(SVN_APRUTIL_PREFIX)
+elif test `expr $apr_version : 1` -ne 0; then
+  svn_lib_ver=1
+  APU_VER_REGEXES=["1\."]
+  SVN_LIB_APRUTIL($APU_VER_REGEXES)
 else
-  SVN_LT_SOVERSION="-version-info 0"
-  APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\."]
+  svn_lib_ver=0
+  APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9]"]
   SVN_LIB_APRUTIL($APU_VER_REGEXES)
 fi
+SVN_LT_SOVERSION="-version-info $svn_lib_ver"
 AC_SUBST(SVN_LT_SOVERSION)
+AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver,
+   [Subversion library major verson])
 
 dnl Search for pkg-config
 AC_PATH_PROG(PKG_CONFIG, pkg-config)
Index: subversion/libsvn_fs/fs-loader.c
===
--- subversion/libsvn_fs/fs-loader.c(revision 1420608)
+++ subversion/libsvn_fs/fs-loader.c(working copy)
@@ -100,8 +100,8 @@
 const char *funcname;
 apr_status_t status;
 
-libname = apr_psprintf(pool, "libsvn_fs_%s-%d.so.0",
-   name, SVN_VER_MAJOR);
+libname = apr_psprintf(pool, "libsvn_fs_%s-%d.so.%d",
+   name, SVN_VER_MAJOR, SVN_SOVERSION);
 funcname = apr_psprintf(pool, "svn_fs_%s__init", name);
 
 /* Find/load the specified library.  If we get an error, assume
Index: subversion/libsvn_ra/ra_loader.c
===
--- subversion/libsvn_ra/ra_loader.c(revision 1420608)
+++ subversion/libsvn_ra/ra_loader.c(working copy)
@@ -159,8 +159,8 @@
 const char *compat_funcname;
 apr_status_t status;
 
-libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0",
-   ra_name, SVN_VER_MAJOR);
+libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.%d",
+   ra_name, SVN_VER_MAJOR, SVN_SOVERSION);
 funcname = apr_psprintf(pool, "svn_ra_%s__init", ra_name);
 compat_funcname = apr_psprintf(pool, "svn_ra_%s_init", ra_name);
 
Index: subversion/libsvn_subr/auth.c
===
--- subversion/libsvn_subr/auth.c   (revision 1420608)
+++ subversion/libsvn_subr/auth.c   (working copy)
@@ -399,9 +399,9 @@
   const char *library_label, *library_name;
   const char *provider_function_name, *version_function_name;
   library_name = apr_psprintf(pool,
-  "libsvn_auth_%s-%d.so.0",
+  "libsvn_auth_%s-%d.so.%d",
   provider_name,
-  SVN_VER_MAJOR);
+  SVN_VER_MAJOR, SVN_SOVERSION);
   library_label = apr_psprintf(pool, "svn_%s", provider_name);
   provider_function_name = apr_psprintf(pool,
 "svn_auth_get_%s_%s_provider",

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download


Re: svn commit: r1420404 - in /subversion/trunk/subversion/libsvn_wc: token-map.h wc-queries.sql

2012-12-12 Thread Philip Martin
Julian Foad  writes:

>> Author: philip
>
>> 
>> URL: http://svn.apache.org/viewvc?rev=1420404&view=rev
>> Log:
>> * subversion/libsvn_wc/token-map.h
>>   (depth_map): Add some annotations.
>> 
>> * subversion/libsvn_wc/wc-queries.sql
>>   (STMT_HAS_SPARSE_NODES): Use annotations.
>
>> Modified: subversion/trunk/subversion/libsvn_wc/token-map.h
>> /* The subset of svn_depth_t used in the database. */
>> static const svn_token_map_t depth_map[] = {
>> -  { "unknown", svn_depth_unknown },
>> +  { "unknown", svn_depth_unknown }, /* MAP_DEPTH_UNKNOWN */
>>    { "empty", svn_depth_empty },
>>    { "files", svn_depth_files },
>>    { "immediates", svn_depth_immediates },
>> -  { "infinity", svn_depth_infinity },
>> +  { "infinity", svn_depth_infinity }, /* MAP_DEPTH_INFINITY */
>
> Might as well just annotate all the values at once, no?

Perhaps, but I decided to avoid adding things that would be unused.
It's simple enough to add them when needed.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download


Re: svn commit: r1420477 - in /subversion/trunk: build.conf subversion/tests/libsvn_ra/ subversion/tests/libsvn_ra/ra-test.c

2012-12-12 Thread Daniel Shahaf
Daniel Shahaf wrote on Wed, Dec 12, 2012 at 13:21:07 +0200:
> julianf...@apache.org wrote on Tue, Dec 11, 2012 at 22:42:55 -:
> > +[ra-test]
> > +description = Test a few things in libsvn_ra
> > +type = exe
> > +path = subversion/tests/libsvn_ra
> > +sources = ra-test.c
> > +install = test
> > +libs = libsvn_test libsvn_ra libsvn_fs libsvn_delta libsvn_subr
> > +   apriconv apr neon
> 
> Neon?

Ignore me, it's been fixed already.


Re: svn commit: r1420477 - in /subversion/trunk: build.conf subversion/tests/libsvn_ra/ subversion/tests/libsvn_ra/ra-test.c

2012-12-12 Thread Daniel Shahaf
julianf...@apache.org wrote on Tue, Dec 11, 2012 at 22:42:55 -:
> +[ra-test]
> +description = Test a few things in libsvn_ra
> +type = exe
> +path = subversion/tests/libsvn_ra
> +sources = ra-test.c
> +install = test
> +libs = libsvn_test libsvn_ra libsvn_fs libsvn_delta libsvn_subr
> +   apriconv apr neon

Neon?


Re: 1.7.8 up for testing/signing

2012-12-12 Thread Philip Herron
On 11/12/12 16:11, Peter Samuelson wrote:
> 
> [Philip Martin]
>> I assume WANdisco's package is intended to replace the libraries in the
>> standard Debian or Ubuntu libsvn1 package, in which case you need to use
>> the same patch.  If you ship -1.so.0 libraries then applications linked
>> to the -1.so.1 libraries will fail to start.
> 
> Well, they'll fail to start _if_ your package is actually named
> 'libsvn1' and thus replaces the system libsvn1.  Calling a package
> 'libsvn1' implies that you intend to ship libsvn_*-1.so.1.  And
> certainly the obvious course is to use my ABI patch, but if you'd
> rather stay truer to upstream Subversion, just name your library
> package something else (we called it libsvn0 before the patch) and the
> two packages can happily coexist on a system.  Apps compiled for the
> one will use the one, apps compiled for the other will use the other.
> 
Which patch are you referring in paticular? I've tried a lot of patches
in some debian packages and they don't really work i've got all kinds of
errors sometimes only on 64bit not being able to find some svn change
path function isn't being compiled, and sometimes the patches dont
apply. And is it really that big a deal? Chaning it from 0 to 1. Abi
change etc, its still only a name of a library.

I have debian packages for and they work for us upgrading from the
default subversion system:

debian 5 32/64
debain 6 32/64
ubuntu 1004 32/64
ubuntu 1204 32/64

And i needed to repackages serf on ubuntu 1204 since it generates the
broken dependency of libserf-private which doesn't exist.

Maybe if i could see the single patch that refers to this i can apply it
or i can push to make a libsvn0 might be a good idea but that might
break git-svn or something since it depends libsvn1 maybe not since they
both can exist and libsvn1 will always be default systems libsvn.

On rhel 5/6 the libaries are left as is 0. Why isn't it a problem there.