Re: Handling non-reproducible test failures (was Re: 1.7.20 release candidates up for testing/signing)

2015-03-24 Thread Johan Corveleyn
On Fri, Mar 20, 2015 at 10:30 AM, Johan Corveleyn  wrote:
> On Fri, Mar 20, 2015 at 9:42 AM, Johan Corveleyn  wrote:
> ...
>> Unfortunately, I can't verify the rev
>> file, since I don't have it anymore, it has been overwritten by trying
>> to reproduce it (g, should remember to backup leftover
>> repositories and working copies after a failed test run, before trying
>> to reproduce it). Whatever I try now, I can't reproduce it anymore
>> :-(.
>
> I'm wondering if something can be improved in our test suite to help
> diagnosis of hard-to-reproduce test failures. When this happens, you
> typically wish you could analyse as much data as possible (i.e. the
> potentially corrupt repository, working copy, dump file, ... that was
> used in the test).
>
> Currently, I can think of three causes for losing this information:
>
>   1) You run a series of test runs in sequence from a script
> (ra_local, ra_svn, ra_serf), all using the same target directory for
> running the tests (R:\test in my case, where R: is a ram drive). If
> something fails in ra_svn, but succeeds in ra_serf, your broken test
> data is overwritten.
>
>   2) You don't know in advance that the failure will turn out to be
> non-reproducible. You can't believe your eyes, try to run it again to
> be sure, and lo and behold, the test succeeds (and the broken test
> data is overwritten), and succeeds ever since.
>
>   3) Your test data is on a RAM drive, and you reboot or something. Or
> you copy the data to a fixed disk afterwards, but lose a bit of
> information because last-modified timestamps of the copied files are
> reset by copying them between disks.
>
>
> For 1, maybe the outer script could detect that ra_svn had a failure,
> and stop there (does win-tests.py emit an exit code != 0 if there is a
> test failure? That would make it easy. Otherwise the outer script
> would have to parse the test summary output)?
>
> Another option is to let every separate test run (ra_local, ra_svn,
> ra_serf) use a distinct target test directory. But if you're running
> them on a RAM disk, theoretically you might need three times the
> storage (hm, maybe not, because --cleanup ensures that successful test
> data is cleaned up, so as long as you don't run the three ways in
> parallel, it should be fine). I guess I will do that already, and
> adjust my script accordingly.
>
>
> Addressing 2 seems harder. Can the second test execution, on
> encountering stale test data, put that data aside instead of
> overwriting it? Or maybe every test execution can use a unique naming
> pattern (with a timestamp or a pid) so it doesn't overwrite previous
> data? Both approaches would leak data from failed test runs of course,
> but that's more or less the point. OTOH, you don't know that stale
> test data is from a previous failed run, or from a successful run that
> did not use --cleanup.
>
>
> And 3, well, I already reboot as little as possible, so this is more
> just a point of attention.
>
>
> Maybe addressing all three at the same time could also be: after a
> failed test run, automatically zip the test data and copy it to a safe
> location (e.g. the user's home dir).
>
> Thoughts?
>

FWIW, for the time being (I don't know enough about the test
infrastructure to build a more robust solution), I've come up with
this quick hack to address point 1, by uniquifying the test directory
accross the different test variations:

I have a batch script runtest.bat with following contents (note the
TESTKEY variable which I use as part of the test-path):

[[[
@echo off
SETLOCAL

SET PATH=%~dp0\dist\bin;%PATH%

mkdir R:\temp 2>NUL:
SET TMP=R:\temp
SET TEMP=R:\temp

if "%CONFIG%" == "" SET CONFIG=release

SET TESTKEY=%CONFIG%%1%2%3%4%5%6%7%8%9
SET TESTKEY=%TESTKEY::=_%
SET TESTKEY=%TESTKEY:/=_%
SET TESTKEY=%TESTKEY:\=_%

python win-tests.py -c --log-level=DEBUG --%CONFIG% %1 %2 %3 %4 %5 %6
%7 %8 %9 R:\test_%TESTKEY%

ENDLOCAL
@echo on
]]]

And I call this runtest.bat from within another script named alltests.bat:

[[[
call runtest -p
call runtest -p -u svn://localhost
call runtest -p --httpd-dir=C:\Apache24 --httpd-port=1234 --httpd-no-log
]]]

Which results in following directories with the test output on my R:
(ram-)drive:
[[[
R:\>dir /b
Temp
test_release-p
test_release-p--httpd-dirC__Apache24--httpd-port1234--httpd-no-log
test_release-p-usvn___localhost
]]]


This also helps a bit with point 2 above, because if I retest a
failing test, I usually add a -t option to rerun a single test (which
would result in another separate test path)

A problem might be that I'm making the path too long, and some tests
might fail because of that (Windows path length limitations etc).
We'll see ... For now it works :-).

-- 
Johan


Re: 1.7.20 release candidates up for testing/signing

2015-03-22 Thread Johan Corveleyn
On Sun, Mar 22, 2015 at 12:44 PM, Bert Huijben  wrote:
>> -Original Message-
>> From: Johan Corveleyn [mailto:jcor...@gmail.com]
>> Sent: zaterdag 21 maart 2015 22:04
>> To: Subversion Development
>> Subject: Re: 1.7.20 release candidates up for testing/signing
>
>> Platform
>> 
>> Windows 7 SP1 (x64)
>> Microsoft Visual Studio 2013
>> (after upgrading the VS solution from the generated VS 2010 format to VS 2013
>> format from within the IDE)
>
> I nominated a patch to handle this for you (and others). See STATUS.
>
> Not sure how relevant it is, with 1.9 near release, but perhaps we can get it 
> released anyway.

Great, thanks. I'll try to take a look and give that backport
nomination a try in the coming week or so.

Cheers,
-- 
Johan


RE: 1.7.20 release candidates up for testing/signing

2015-03-22 Thread Bert Huijben
> -Original Message-
> From: Johan Corveleyn [mailto:jcor...@gmail.com]
> Sent: zaterdag 21 maart 2015 22:04
> To: Subversion Development
> Subject: Re: 1.7.20 release candidates up for testing/signing

> Platform
> 
> Windows 7 SP1 (x64)
> Microsoft Visual Studio 2013
> (after upgrading the VS solution from the generated VS 2010 format to VS 2013
> format from within the IDE)

I nominated a patch to handle this for you (and others). See STATUS.

Not sure how relevant it is, with 1.9 near release, but perhaps we can get it 
released anyway.


It is possible to generate a single solution and project files that work in 
VS2010 SP1 and later, VS2012, VS2013 and VS2015 with some MSBuild magic, but 
I'm not sure if we should go that way. In my experience you have to clean out 
the intermediate directories when you switch.

Bert



Re: Handling non-reproducible test failures (was Re: 1.7.20 release candidates up for testing/signing)

2015-03-21 Thread Johan Corveleyn
On Fri, Mar 20, 2015 at 8:13 PM, Stefan Fuhrmann
 wrote:
...
> I haven't thought too deeply about it but I think we should
> be able to extend the current repo / w/c cleanup infrastructure
> to copy the data away upon test failure.

Yes, something like that would be a great help. Maybe using an option
for providing the "backup-path" (so the default behavior remains the
same if you don't provide a backup-path). If we really want to go all
the way, there should maybe be some "uniquifying" of the backup path,
or of a subdir thereof (so multiple failures of the same test (if you
leave different test combinations running all night) don't overwrite
each other's backup).

-- 
Johan


Re: 1.7.20 release candidates up for testing/signing

2015-03-21 Thread Johan Corveleyn
On Wed, Mar 18, 2015 at 3:09 PM, Stefan Sperling  wrote:
> The 1.7.20 release is now up for testing/signing at
> https://dist.apache.org/repos/dist/dev/subversion
> Please add your signatures there.
>
> The anticipated release day is March 31.
>
> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
> (segfaults) due to a one-byte read past a string buffer (which cause a crash
> on OpenBSD and maybe on other platforms as well).
> This is not a regression from 1.7.19 where the problem already existed.

Summary
---
+1 to release

Platform

Windows 7 SP1 (x64)
Microsoft Visual Studio 2013
(after upgrading the VS solution from the generated VS 2010 format to VS 2013
format from within the IDE)

Verified

Signature and sha1 for subversion-1.7.20.zip.

Contents of subversion-1.7.20.zip are identical to tags/1.7.20, and
to branches/1.7.x@1667490 (except for expected differences in svn_version.h
and generated files).

Tested
--
[ Release build ] x [ fsfs ] x [ file | svn | http (serf) | http (neon) ]

Results
---
All tests pass.

For serf I disabled my local AVG Surf-Shield to make it work
(issue #4175 - ra_serf crashes on Windows with AVG 2012 Surf-Shield
 http://subversion.tigris.org/issues/show_bug.cgi?id=4175).

Dependencies

Httpd 2.4.12
Apr 1.5.1
Apr-Util 1.5.4
OpenSSL 1.0.2
Serf 1.3.8
Neon 0.30.1
SQLite 3.8.8.3
ZLib 1.2.8

Signature
-

subversion-1.7.20.zip:
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIcBAABCgAGBQJVChmmAAoJELWc5tYBDIqtxPUQAIciUihRne4bRVFtMbIYiOKO
6VMB5Q/HTfeaSF/F8AyEX28HiLS9U/dVJaWPVLDHw8sIscS91Hm+v5h7T0UbyDGE
/zoQcjSoLqqFkDuV5EZMknE+f5yDncwXqcXy67pG0usnPdOIK+D6QsxwZfgoP6C6
LUT6qsyDWbV6XGKGNnct1EU1gTTdUjd2ifmf7DWYc3x3Xu/2JVTXkclQc/kurlFT
IhKLkDlbQdwnRsGAQQ1k6UtIPcJY8S/WLBeIGZn+2m74ZfEwupM0DR+0YVbH38SM
f0UQphLdaQbWQGWFnBb6zBs8GSp1QvVVQPs5dbYsgKJYxSsQSpLb86yo7PWkDpKU
rCpT4CATn29497TQRBf+JlIzmaz110+kmfb1imGOFbBTzEOx/XOfEB60Aqk9JjJ3
9QDs6TlW/e3sfJJ/nxzOxs/cK/3QnwMs3Gku8KGDBtErHIi5jXse1sZIrbQ0krmL
igOTYckdJIf5ysjXBdFCnPGMNSHFloRcn6m1IZjH7mLEgqyPVRloILja0WoxaPLU
uWALZLUB4W0jHTGrXRh/2GgGi60cC/qpKxZYoyFv/5ldtd/w/rLvIxG8bjuO5M1g
+uYZZ/7g8UyvkmtenszRna/bbSyRNGyuMNIIf6irUDQtJQjDmKuzY5QvAcpYjt68
Mk+Y4Cj17gb++T1AUOpy
=HpxD
-END PGP SIGNATURE-

-- 
Johan


Re: Handling non-reproducible test failures (was Re: 1.7.20 release candidates up for testing/signing)

2015-03-20 Thread Stefan Fuhrmann
On Fri, Mar 20, 2015 at 10:30 AM, Johan Corveleyn  wrote:

> On Fri, Mar 20, 2015 at 9:42 AM, Johan Corveleyn 
> wrote:
> ...
> > Unfortunately, I can't verify the rev
> > file, since I don't have it anymore, it has been overwritten by trying
> > to reproduce it (g, should remember to backup leftover
> > repositories and working copies after a failed test run, before trying
> > to reproduce it). Whatever I try now, I can't reproduce it anymore
> > :-(.
>
> I'm wondering if something can be improved in our test suite to help
> diagnosis of hard-to-reproduce test failures. When this happens, you
> typically wish you could analyse as much data as possible (i.e. the
> potentially corrupt repository, working copy, dump file, ... that was
> used in the test).
>
> Currently, I can think of three causes for losing this information:
>
>   1) You run a series of test runs in sequence from a script
> (ra_local, ra_svn, ra_serf), all using the same target directory for
> running the tests (R:\test in my case, where R: is a ram drive). If
> something fails in ra_svn, but succeeds in ra_serf, your broken test
> data is overwritten.
>
>   2) You don't know in advance that the failure will turn out to be
> non-reproducible. You can't believe your eyes, try to run it again to
> be sure, and lo and behold, the test succeeds (and the broken test
> data is overwritten), and succeeds ever since.
>
>   3) Your test data is on a RAM drive, and you reboot or something. Or
> you copy the data to a fixed disk afterwards, but lose a bit of
> information because last-modified timestamps of the copied files are
> reset by copying them between disks.
>
>
> For 1, maybe the outer script could detect that ra_svn had a failure,
> and stop there (does win-tests.py emit an exit code != 0 if there is a
> test failure? That would make it easy. Otherwise the outer script
> would have to parse the test summary output)?
>
> Another option is to let every separate test run (ra_local, ra_svn,
> ra_serf) use a distinct target test directory. But if you're running
> them on a RAM disk, theoretically you might need three times the
> storage (hm, maybe not, because --cleanup ensures that successful test
> data is cleaned up, so as long as you don't run the three ways in
> parallel, it should be fine). I guess I will do that already, and
> adjust my script accordingly.
>
>
> Addressing 2 seems harder. Can the second test execution, on
> encountering stale test data, put that data aside instead of
> overwriting it? Or maybe every test execution can use a unique naming
> pattern (with a timestamp or a pid) so it doesn't overwrite previous
> data? Both approaches would leak data from failed test runs of course,
> but that's more or less the point. OTOH, you don't know that stale
> test data is from a previous failed run, or from a successful run that
> did not use --cleanup.
>
>
> And 3, well, I already reboot as little as possible, so this is more
> just a point of attention.
>
>
> Maybe addressing all three at the same time could also be: after a
> failed test run, automatically zip the test data and copy it to a safe
> location (e.g. the user's home dir).
>
> Thoughts?
>

I haven't thought too deeply about it but I think we should
be able to extend the current repo / w/c cleanup infrastructure
to copy the data away upon test failure.

-- Stefan^2.


Re: 1.7.20 release candidates up for testing/signing

2015-03-20 Thread Philip Martin
Summary:

  +1 to release

Platform:

  Linux (Debian/jessie) 64-bit
  Linux (Centos 6) 64-bit (swig-pl, swig-rb)

Tested:

  (local, svn, svn/sasl, neon, serf) x (fsfs, fsfs/pack/shard, bdb)
  swig-pl, swig-py, swig-rb, ctypes-python
  javahl x (fsfs, bdb)

  swig-pl and swig-rb on Centos 6 as they do not build on Debian/jessie.

Results:

  All tests passed.

Local dependencies:

  apache2-dev : 2.4.10-9
  libapr1-dev : 1.5.1-3
  libaprutil1-dev : 1.5.4-1
  libdb5.3-dev : 5.3.28-9
  libsasl2-dev : 2.1.26.dfsg1-13
  libsqlite3-dev : 3.8.7.1-1
  python2.7-dev : 2.7.9-2
  openjdk-7-jdk : 7u75-2.5.4-2
  libneon27-dev : 0.30.1-1
  serf : 1.3.x@2474

subversion-1.7.20.tar.bz2
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQEcBAABCAAGBQJVDF6LAAoJEHbXiOHtGlmckK0H/1GL928jtLgy3a/Fe224pCdg
YJ75Fwqr97Cl0+98R6KbJopRmtdwRyM44e6n8pdjxvt6rQLODMUz9VECToUyqo5E
a4LFcDoCfIwzg8ERB+lVjrIFZS7CCtGug+6GyHXVGGZ4wsoCjvqZDNUm+gK5grnK
JQXn54BQOFWrLlqVnGZQFyzAVqTJRXbL0HOc+0BimvA2RXQoCnqki0+DIqLwxpAi
qf5JWq8wG/8bFMBXU/0U8ziHMQJEBXctuU90ZMk5PJnrl/KUliWNAJx9SHS2FriJ
b4jpxOl691tYThDUtzPIROrERteP3MJR66T8djJnCRDIogbKTYH41JKaq6vpWnQ=
=x8KV
-END PGP SIGNATURE-

subversion-1.7.20.tar.gz
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQEcBAABCAAGBQJVDF6LAAoJEHbXiOHtGlmcBA8H/0YKWvKlXoejiNxUArakSlp1
NRmpcJMmOAFulJTHLRR4Fu/DBj+mH3+pBpJCPvqWETyflP0gXHIxIWiGe42r+BIR
ces7Z5vZp1YayRgwpmiMwg770z03wsj8Rp1YH+g8ZouNWus3mO7+fq187li1ntuf
gfPWlpSNzpociUeNK+68IHmUmTtPNsxO/R4KK3lllg5xlYYYMaFKFZU7WMUgD+LL
G78/mE1Vj5NM3YPKCUYajK8wuSTm7hjYIYFA7WKYpX4tVbWNChNUVhBIIR7AvZkY
EmnlCrMJwP5mlYq3lsGVdr199o6/MdWUv694n4WdPQX9lSXxdh0vZhmlfNn7p+s=
=dVEY
-END PGP SIGNATURE-

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*


Re: 1.7.20 release candidates up for testing/signing

2015-03-20 Thread Stefan Fuhrmann
On Wed, Mar 18, 2015 at 3:09 PM, Stefan Sperling  wrote:

> The 1.7.20 release is now up for testing/signing at
> https://dist.apache.org/repos/dist/dev/subversion
> Please add your signatures there.
>
> The anticipated release day is March 31.
>
> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
> (segfaults) due to a one-byte read past a string buffer (which cause a
> crash
> on OpenBSD and maybe on other platforms as well).
> This is not a regression from 1.7.19 where the problem already existed.
>

Summary:

  +1 to release

Platform

  Ubuntu 14.04.1 x64, Linux 3.16.0-31-generic SMP

  Standard dependencies:
APR 1.5.0
APR-Util 1.5.3
BDB 5.3.28
GCC 4.8.2
httpd 2.4.7, worker MPM
JUnit 4.11
libmagic 5.14
libtool 2.4.2
neon 0.30.0
OpenJDK-7 7u51
OpenSSL 1.0.1f
Perl 5.18.2
Python 2.7.5
Ruby 1.9.3
SQLite 3.8.2
Swig 2.0.11
zlib 1.2.8

  Manually installed and in-tree dependencies:
Serf 0.7.2
ctypesgen svn-r151

Verified:

  Tarball contents and signatures

  (fsfs, bdb) x (local, svnserve, neon, serf)
  check-swig-py
  check-swig-pl
  check-javahl
  check-ctypes-python

  ./get-deps.sh

Results:

  (known issue) Ruby tests failed to build due to unsupported Ruby version.

  All tests passed.

GPG Signatures committed to the dist/dev/subversion repository.

-- Stefan^2.


Re: 1.7.20 release candidates up for testing/signing

2015-03-20 Thread Branko Čibej
On 20.03.2015 08:25, Branko Čibej wrote:
> On 18.03.2015 15:09, Stefan Sperling wrote:
>> The 1.7.20 release is now up for testing/signing at
>> https://dist.apache.org/repos/dist/dev/subversion
>> Please add your signatures there.
>>
>> The anticipated release day is March 31.
>>
>> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
>> (segfaults) due to a one-byte read past a string buffer (which cause a crash
>> on OpenBSD and maybe on other platforms as well).
>> This is not a regression from 1.7.19 where the problem already existed.
>
> I'm changing my vote to
>
> -1
>
> because the copyright year is wrong. Fix (r1667941) nominated for backport.


I'm now convinced that we historically don't care enough about the year
in NOTICE and 'svn --version' to stop a release.

Back to +1.

-- Brane, soon to be in a superposition of -1 and +1 states



Re: 1.7.20 release candidates up for testing/signing

2015-03-20 Thread Philip Martin
Philip Martin  writes:

> The Perl bindings do not build on my Debian/testing box.

Patching the generated code allows the bindings to build and the tests
to work.  We should consider bumping the swig version used by 1.7,
perhaps to 2.0.9 as used by 1.8.  I've not explicitly tested 1.7 with
2.0.9 but my dev build uses 1.7 with 2.0.12.

--- subversion/bindings/swig/perl/native/core.c 2015-03-18 13:54:08.0 
+
+++ subversion/bindings/swig/perl/native/core.c 2015-03-20 00:42:48.660845042 
+
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close
--- subversion/bindings/swig/perl/native/svn_client.c   2015-03-18 
13:54:12.0 +
+++ subversion/bindings/swig/perl/native/svn_client.c   2015-03-20 
00:43:29.756371112 +
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close
--- subversion/bindings/swig/perl/native/svn_delta.c2015-03-18 
13:54:14.0 +
+++ subversion/bindings/swig/perl/native/svn_delta.c2015-03-20 
00:43:58.020044476 +
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close
--- subversion/bindings/swig/perl/native/svn_diff.c 2015-03-18 
13:54:15.0 +
+++ subversion/bindings/swig/perl/native/svn_diff.c 2015-03-20 
00:44:02.907987866 +
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close
--- subversion/bindings/swig/perl/native/svn_fs.c   2015-03-18 
13:54:17.0 +
+++ subversion/bindings/swig/perl/native/svn_fs.c   2015-03-20 
00:44:08.515922957 +
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close
--- subversion/bindings/swig/perl/native/svn_ra.c   2015-03-18 
13:54:20.0 +
+++ subversion/bindings/swig/perl/native/svn_ra.c   2015-03-20 
00:44:13.027870783 +
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close
--- subversion/bindings/swig/perl/native/svn_repos.c2015-03-18 
13:54:22.0 +
+++ subversion/bindings/swig/perl/native/svn_repos.c2015-03-20 
00:44:17.371820540 +
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close
--- subversion/bindings/swig/perl/native/svn_wc.c   2015-03-18 
13:54:28.0 +
+++ subversion/bindings/swig/perl/native/svn_wc.c   2015-03-20 
00:44:21.907767778 +
@@ -1448,7 +1448,6 @@
   #undef eof
 #endif
 #ifdef bool
-  #undef bool
 #endif
 #ifdef close
   #undef close

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*


Handling non-reproducible test failures (was Re: 1.7.20 release candidates up for testing/signing)

2015-03-20 Thread Johan Corveleyn
On Fri, Mar 20, 2015 at 9:42 AM, Johan Corveleyn  wrote:
...
> Unfortunately, I can't verify the rev
> file, since I don't have it anymore, it has been overwritten by trying
> to reproduce it (g, should remember to backup leftover
> repositories and working copies after a failed test run, before trying
> to reproduce it). Whatever I try now, I can't reproduce it anymore
> :-(.

I'm wondering if something can be improved in our test suite to help
diagnosis of hard-to-reproduce test failures. When this happens, you
typically wish you could analyse as much data as possible (i.e. the
potentially corrupt repository, working copy, dump file, ... that was
used in the test).

Currently, I can think of three causes for losing this information:

  1) You run a series of test runs in sequence from a script
(ra_local, ra_svn, ra_serf), all using the same target directory for
running the tests (R:\test in my case, where R: is a ram drive). If
something fails in ra_svn, but succeeds in ra_serf, your broken test
data is overwritten.

  2) You don't know in advance that the failure will turn out to be
non-reproducible. You can't believe your eyes, try to run it again to
be sure, and lo and behold, the test succeeds (and the broken test
data is overwritten), and succeeds ever since.

  3) Your test data is on a RAM drive, and you reboot or something. Or
you copy the data to a fixed disk afterwards, but lose a bit of
information because last-modified timestamps of the copied files are
reset by copying them between disks.


For 1, maybe the outer script could detect that ra_svn had a failure,
and stop there (does win-tests.py emit an exit code != 0 if there is a
test failure? That would make it easy. Otherwise the outer script
would have to parse the test summary output)?

Another option is to let every separate test run (ra_local, ra_svn,
ra_serf) use a distinct target test directory. But if you're running
them on a RAM disk, theoretically you might need three times the
storage (hm, maybe not, because --cleanup ensures that successful test
data is cleaned up, so as long as you don't run the three ways in
parallel, it should be fine). I guess I will do that already, and
adjust my script accordingly.


Addressing 2 seems harder. Can the second test execution, on
encountering stale test data, put that data aside instead of
overwriting it? Or maybe every test execution can use a unique naming
pattern (with a timestamp or a pid) so it doesn't overwrite previous
data? Both approaches would leak data from failed test runs of course,
but that's more or less the point. OTOH, you don't know that stale
test data is from a previous failed run, or from a successful run that
did not use --cleanup.


And 3, well, I already reboot as little as possible, so this is more
just a point of attention.


Maybe addressing all three at the same time could also be: after a
failed test run, automatically zip the test data and copy it to a safe
location (e.g. the user's home dir).

Thoughts?

-- 
Johan


Re: 1.7.20 release candidates up for testing/signing

2015-03-20 Thread Johan Corveleyn
On Thu, Mar 19, 2015 at 7:42 PM, Philip Martin
 wrote:
> Johan Corveleyn  writes:
>
>> 
>> svn: E160004: Corrupt node-revision '0.0.r9/882'
>> svn: E160004: Missing id field in node-rev
>
> I don't see that on my Linux box.  That's a complaint about the root
> node of r9, near the end of the file db/revs/0/0.  On my Linux box the
> offset is 881 not 882, and the file ends:
>
> id: 0.0.r9/881
> type: dir
> pred: 0.0.r8/0
> count: 9
> text: 9 796 72 72 0bbc6c909be39d253813928a4611c161
> cpath: /
> copyroot: 0 /
> minfo-cnt: 1
>
> 0-1.0.t8-8 modify-dir false true /trunk
>
> 1-2.0.t8-8 modify-file true false /trunk/1
>
> 4-2.0.t8-8 modify-file true false /trunk/2
>
>
> 881 1018

Thanks for looking this up. Unfortunately, I can't verify the rev
file, since I don't have it anymore, it has been overwritten by trying
to reproduce it (g, should remember to backup leftover
repositories and working copies after a failed test run, before trying
to reproduce it). Whatever I try now, I can't reproduce it anymore
:-(.

On Fri, Mar 20, 2015 at 8:03 AM, Stefan Sperling  wrote:
> On Thu, Mar 19, 2015 at 07:40:41PM +0100, Johan Corveleyn wrote:
>> Wait, did I say "reproducible"? Gah, I had it once, then reproduced it
>> shortly after (it's still in my scrollback history), then sent this
>> mail, and now I can't reproduce it anymore :-(. I've tried at least 20
>> more times ... This it not fun.
>>
>> What has changed between the fails and now?
>
>> - Stopped Apache 2.4.12 which was still running (standalone, separate
>> console window).
>
> Hmm...
> Perhaps there was a corrupt revision contents cache that got flushed
> by restarting Apache?
>
> Otherwise, no idea.

Thanks for the suggestion, maybe something like that could be the
cause. Not exactly a corrupt cache in Apache (because the test failure
I had was with ra_svn), but perhaps a leftover corrupt repository on
disk, still being locked by apache or ... something like that.
Otherwise I don't see how an Apache process could interfere with an
svnserve process.

I do remember that, before I started the ra_svn tests, I did a short
attempt with ra_serf against that particular Apache process (which I
had just started then). That test run failed somewhere (because of a
known issue of AVG Surf Shield interfering with serf (issue #4175 --
fixed in 1.8 but never backported to 1.7)), and I aborted it (Ctrl-C).
After that I left Apache running, disabled AVG Surf Shield, and
started a batch script that ran ra_local, ra_svn, ra_neon and ra_serf
in sequence. So maybe, just maybe, that first aborted ra_serf run left
something broken on disk that was later hit by the ra_svn test run
(but not by the ra_local test run that ran first, and not by the
ra_neon and ra_serf test runs that came later ???).

Anyway, I'm going to leave it at that, and conclude this is some weird
one-time local issue. I'll retest ra_svn once more tonight, and if
successful I'll commit my signature tonight or tomorrow.

-- 
Johan


Re: 1.7.20 release candidates up for testing/signing

2015-03-20 Thread Branko Čibej
On 18.03.2015 15:09, Stefan Sperling wrote:
> The 1.7.20 release is now up for testing/signing at
> https://dist.apache.org/repos/dist/dev/subversion
> Please add your signatures there.
>
> The anticipated release day is March 31.
>
> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
> (segfaults) due to a one-byte read past a string buffer (which cause a crash
> on OpenBSD and maybe on other platforms as well).
> This is not a regression from 1.7.19 where the problem already existed.


I'm changing my vote to

-1

because the copyright year is wrong. Fix (r1667941) nominated for backport.

-- Brane



Re: 1.7.20 release candidates up for testing/signing

2015-03-20 Thread Stefan Sperling
On Thu, Mar 19, 2015 at 07:40:41PM +0100, Johan Corveleyn wrote:
> Wait, did I say "reproducible"? Gah, I had it once, then reproduced it
> shortly after (it's still in my scrollback history), then sent this
> mail, and now I can't reproduce it anymore :-(. I've tried at least 20
> more times ... This it not fun.
> 
> What has changed between the fails and now?

> - Stopped Apache 2.4.12 which was still running (standalone, separate
> console window).

Hmm...
Perhaps there was a corrupt revision contents cache that got flushed
by restarting Apache?

Otherwise, no idea.


RE: 1.7.20 release candidates up for testing/signing

2015-03-19 Thread Bert Huijben


> -Original Message-
> From: Stefan Sperling [mailto:s...@elego.de]
> Sent: woensdag 18 maart 2015 15:09
> To: dev@subversion.apache.org
> Subject: 1.7.20 release candidates up for testing/signing
> 
> The 1.7.20 release is now up for testing/signing at
> https://dist.apache.org/repos/dist/dev/subversion
> Please add your signatures there.
> 
> The anticipated release day is March 31.
> 
> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
> (segfaults) due to a one-byte read past a string buffer (which cause a
crash
> on OpenBSD and maybe on other platforms as well).
> This is not a regression from 1.7.19 where the problem already existed.

+1 for release
Windows 8.1 x64
Visual Studio 2013 (using ^/subversion/branches/v1.7.x-VS2012-15 patch)

[fsfs | bdb] x [local | svn | neon]
apr 1.5.1
apr-util 1.5.4
db 4.4.20
expat 2.1.0
httpd 2.4.12
java-sdk 1.8.0_40
mod_dav 2.4.12
neon 0.30.1
openssl 1.0.2
sasl 2.1.26
serf 1.3.8
sqlite 3.8.8.3
zlib 1.2.8

These tests take considerable more testspace than 1.8.x and 1.9.x
(especially caused by loglevels), which caused a few local problems,
delaying the results.

Bert



Re: 1.7.20 release candidates up for testing/signing

2015-03-19 Thread Philip Martin
Stefan Sperling  writes:

> The 1.7.20 release is now up for testing/signing at
> https://dist.apache.org/repos/dist/dev/subversion
> Please add your signatures there.
>
> The anticipated release day is March 31.
>
> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
> (segfaults) due to a one-byte read past a string buffer (which cause a crash
> on OpenBSD and maybe on other platforms as well).
> This is not a regression from 1.7.19 where the problem already existed.

The Perl bindings do not build on my Debian/testing box.  This is not a
regression from 1.7.19 since the problem is also present there.  The
1.7.19 Perl bindings did build when I signed the tarball but I was using
the older Debian/stable at the time.  The problem is:

In file included from core.c:731:0:
core.c: In function ‘SWIG_AsCharPtrAndSize’:
/usr/lib/x86_64-linux-gnu/perl/5.20/CORE/handy.h:124:34: error: ‘bool’ 
undeclared (first use in this function)

The header line in question is:

#define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0)

The core.c in the tarball is generated by SWIG 2.0.4 and has:

#ifdef bool
  #undef bool
#endif

The Perl bindings do build in 1.8.13 where SWIG 2.0.9 is used and core.c
has:

#ifdef bool
  /* Leave if macro is from C99 stdbool.h */
  #ifndef __bool_true_false_are_defined
#undef bool
  #endif
#endif

The Perl bindings also build with the system SWIG 2.0.12 as that
generates the same code snippet as 2.0.9.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*


Re: 1.7.20 release candidates up for testing/signing

2015-03-19 Thread Ivan Zhakov
On 18 March 2015 at 17:09, Stefan Sperling  wrote:
> The 1.7.20 release is now up for testing/signing at
> https://dist.apache.org/repos/dist/dev/subversion
> Please add your signatures there.
>
> The anticipated release day is March 31.
>
> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
> (segfaults) due to a one-byte read past a string buffer (which cause a crash
> on OpenBSD and maybe on other platforms as well).
> This is not a regression from 1.7.19 where the problem already existed.

Summary:


   +1 to release.

TESTED:
---
[ fsfs ] x [ file | svn | http ]

RESULTS:

All Tests Pass

PLATFORM:
-
MS Windows 7 Ultimate (x64)
Microsoft Visual Studio 2008 Version 9.0.30729.1 SP

DEPENDENCIES:
-
APR: 1.5.1
APR-Util: 1.5.3
Apache HTTPD: 2.2.29
zlib: 1.2.8
OpenSSL: 0.9.8zf
sqlite: 3.7.6.3
neon: 0.29.6
Python: 2.6.6
serf: 1.1.1

Signatures:
---

   (See the appropriate distribution files.)


-- 
Ivan Zhakov
CTO | VisualSVN | http://www.visualsvn.com


Re: 1.7.20 release candidates up for testing/signing

2015-03-19 Thread Philip Martin
Philip Martin  writes:

> node of r9, near the end of the file db/revs/0/0.  On my Linux box the
   db/revs/0/9 !

-- 
Philip


Re: 1.7.20 release candidates up for testing/signing

2015-03-19 Thread Philip Martin
Johan Corveleyn  writes:

> 
> svn: E160004: Corrupt node-revision '0.0.r9/882'
> svn: E160004: Missing id field in node-rev

I don't see that on my Linux box.  That's a complaint about the root
node of r9, near the end of the file db/revs/0/0.  On my Linux box the
offset is 881 not 882, and the file ends:

id: 0.0.r9/881
type: dir
pred: 0.0.r8/0
count: 9
text: 9 796 72 72 0bbc6c909be39d253813928a4611c161
cpath: /
copyroot: 0 /
minfo-cnt: 1

0-1.0.t8-8 modify-dir false true /trunk

1-2.0.t8-8 modify-file true false /trunk/1

4-2.0.t8-8 modify-file true false /trunk/2


881 1018


-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*


Re: 1.7.20 release candidates up for testing/signing

2015-03-19 Thread Johan Corveleyn
On Thu, Mar 19, 2015 at 6:06 PM, Johan Corveleyn  wrote:
> On Wed, Mar 18, 2015 at 3:09 PM, Stefan Sperling  wrote:
>> The 1.7.20 release is now up for testing/signing at
>> https://dist.apache.org/repos/dist/dev/subversion
>> Please add your signatures there.
>>
>> The anticipated release day is March 31.
>>
>> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
>> (segfaults) due to a one-byte read past a string buffer (which cause a crash
>> on OpenBSD and maybe on other platforms as well).
>> This is not a regression from 1.7.19 where the problem already existed.
>
> I get one (reproducible) test failure with ra_svn, in
> svndumpfilter_tests.py 2 (svndumpfilter loses mergeinfo):

Wait, did I say "reproducible"? Gah, I had it once, then reproduced it
shortly after (it's still in my scrollback history), then sent this
mail, and now I can't reproduce it anymore :-(. I've tried at least 20
more times ... This it not fun.

What has changed between the fails and now?
- Ran the testsuite for 1.7.20 over ra_serf (all successful).
- Finished dinner.
- Drove kid to basketball training.
- Stopped Apache 2.4.12 which was still running (standalone, separate
console window).
- Closed another VS2013 Command Prompt (in which I had tested 1.8.20).
It didn't respond to "exit", so I closed it.
- Then tried to run "python win-tests.py -c release -u svn://localhost
-t svndumpfilter#2 R:\test" again, but now it consistently succeeds.

Sigh. Nothing relevant I guess ...

-- 
Johan


Re: 1.7.20 release candidates up for testing/signing

2015-03-19 Thread Johan Corveleyn
On Wed, Mar 18, 2015 at 3:09 PM, Stefan Sperling  wrote:
> The 1.7.20 release is now up for testing/signing at
> https://dist.apache.org/repos/dist/dev/subversion
> Please add your signatures there.
>
> The anticipated release day is March 31.
>
> Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
> (segfaults) due to a one-byte read past a string buffer (which cause a crash
> on OpenBSD and maybe on other platforms as well).
> This is not a regression from 1.7.19 where the problem already existed.

I get one (reproducible) test failure with ra_svn, in
svndumpfilter_tests.py 2 (svndumpfilter loses mergeinfo):

[[[
CMD: svnadmin.exe load --quiet svn-test-work\repositories\svndumpfilter_tests-2

CMD: svn.exe propget svn:mergeinfo -R
svn://localhost/svn-test-work/repositories/svndumpfilter_tests-2
--config-dir R:\test\subversion\tests\cmdline\svn-test-work\local_tmp\config
--password rayjandom --no-auth-cache --username jrandom
CMD: R:\test\subversion\svn\svn.exe propget svn:mergeinfo -R
svn://localhost/svn-test-work/repositories/svndumpfilter_tests-2
--config-dir R:\test\subversion\tests\cmdline\svn-test-work\local_tmp\config
--password rayjandom --no-auth-cache --username jrandom exited with 1

svn: E160004: Corrupt node-revision '0.0.r9/882'
svn: E160004: Missing id field in node-rev
Traceback (most recent call last):
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svntest\main.py",
line 1319, in run
rc = self.pred.run(sandbox)
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svntest\testcase.py",
line 176, in run
return self.func(sandbox)
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svndumpfilter_tests.py",
line 163, in svndumpfilter_loses_mergeinfo
sbox.repo_url)
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svntest\actions.py",
line 268, in run_and_verify_svn
expected_exit, *varargs)
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svntest\actions.py",
line 306, in run_and_verify_svn2
exit_code, out, err = main.run_svn(want_err, *varargs)
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svntest\main.py",
line 601, in run_svn
*(_with_auth(_with_config_dir(varargs
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svntest\main.py",
line 350, in run_command
None, *varargs)
  File 
"C:\research\svn\dev\subversion-1.7.20\subversion\tests\cmdline\svntest\main.py",
line 526, in run_command_stdin
raise Failure
Failure
FAIL:  svndumpfilter_tests.py 2: svndumpfilter loses mergeinfo
]]]

Does this ring a bell for anyone? See full log in attachment.

With 1.8.13, all tests were successful (fsfs x [ all ra layers ]).
With 1.7.20, ra_local and ra_neon went fine (ra_serf still running).
Only this one test failure with ra_svn.

I'm not sure if this is a regression, since this is a new laptop / new
tool chain. Unless anyone can pinpoint this, I'll try a previous 1.7
version to see if it's a regression somewhere.

-- 
Johan


svn-fails.log
Description: Binary data


Re: 1.7.20 release candidates up for testing/signing

2015-03-18 Thread Branko Čibej
Summary:

+1 to release

Platform

Mac OS X 10.10.2 Yosemite, build 14C109

Standard dependencies:
  Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
  APR 1.4.8
  APR-Util 1.5.2
  zlib 1.2.5
  httpd 2.4.9
  Python 2.7.6
  Perl 5.18.2
  ruby 2.0.0p481 (2014-05-08 revision 45883)
  SQLite 3.8.5

Dependencies from homebrew:
  SQLite 3.8.8.3
  Serf 1.3.8
  Neon 0.30.0
  OpenSSL 1.0.2
  BDB 6.1.19
  libmagic 5.22

Other dependencies:
  Swig 2.0.12
  Java 1.8.0_25-b17
  JUnit 4.11

Verified:

  Tarball contents and signatures

  (fsfs, bdb) x (local, svnserve, dav/serf, dav/neon) with SQLite 3.8.8.3
  (fsfs) x (local) with SQLite 3.8.5
  check-javahl
  check-swig-py
  check-swig-pl

New issues: None

Known issues:

  - 'make check-javahl' requires 'make install'

  - 'make check-swig-py' requires 'make install-swig-py'

  - 'make davautocheck' requires 'make install'

Known issues not re-checked:

  - 'make check-swig-rb' requires 'make install-swig-rb'
-- 'make install-swig-rb' tries to install "something" into the
   Ruby site dir, which requires root privilege.

  - 'make swig-rb' doesn't work with Ruby 2.0 that's standard on OSX 10.10.

GPG signatures committed to the dist/dev/subversion repository.


Re: 1.7.20 release candidates up for testing/signing

2015-03-18 Thread Julian Foad
Stefan Sperling wrote:
> The 1.7.20 release is now up for testing/signing [...]

SUMMARY:

+1 to release (Unix)

VERIFIED:
-
SHA1 sums:
f600c68010d2fd9a23fc8c6b659099aedac12900 subversion-1.7.20.tar.bz2
e861f85e9df1b5aca903aa6eda15919c454cbda5 subversion-1.7.20.tar.gz

Comparing the two compressions of each tar package:
Files subversion-1.7.20.tar(bz2) and subversion-1.7.20.tar(gz) are identical

TESTED:
---
[ fsfs | bdb ] x [ file | svn | http (serf; MPM=worker) | http (neon;
MPM=worker) ]
swig-py
swig-pl
javahl
cytpes-python

(swig-rb not tested, as we don't support Ruby 1.9)

RESULTS:

All tests passed.

PLATFORM:
-
Ubuntu 14.04 (Linux kernel: 3.13.0-46-generic x86_64)

DEPENDENCIES:
-
APR: 1.5.1
APR-UTIL: 1.5.3
zlib: 1.2.8
OpenSSL: 1.0.1
Apache: 2.4.7
BDB: 5.3.21
sqlite: 3.7.13
Python: 2.7.5/2.7.6
Perl: 5.18.2
Ruby: 1.9.3
java: 1.7.0
junit: 4.11
swig: 2.0.11
serf: 1.3.7


- Julian


1.7.20 release candidates up for testing/signing

2015-03-18 Thread Stefan Sperling
The 1.7.20 release is now up for testing/signing at
https://dist.apache.org/repos/dist/dev/subversion
Please add your signatures there.

The anticipated release day is March 31.

Note that libsvn_subr/mergeinfo-test 6 and 10 may have occasional failures
(segfaults) due to a one-byte read past a string buffer (which cause a crash
on OpenBSD and maybe on other platforms as well).
This is not a regression from 1.7.19 where the problem already existed.