Make ra_serf handle 408 Request Timeout response (was Re: Random serf checkout failures)

2012-11-08 Thread Lieven Govaerts
On Wed, Nov 7, 2012 at 10:28 PM, Lieven Govaerts l...@apache.org wrote:
 Hi,


 we seem to be raising and discussing a few different issues in this
 thread. I've tried to summarize current status with some added
 observations.
 I propose to start up separate mail threads when discussing one of
 these specific issues.

[..]

 5. In one of Philip error-reporting mails, there was mention of a 408
 Request Time-out response.
 (http://svn.haxx.se/dev/archive-2012-11/0076.shtml).
 No idea if the server sends this response because one of the above
 issues, or if this has a different root caus. What I do know is that
 serf does not expect this response as it's not related to an
 outstanding request. In that case, serf will return and APR_GENERAL
 error.


I've logged an issue in the serf project:
https://code.google.com/p/serf/issues/detail?id=91

This needs to be fixed first, so  that the 408 Request Timeout
response is not considered an error, but is passed to svn like a
normal response. In ra_serf/handle_response we can then decided what
to do, like retrying the request once.

[..]

Lieven


RE: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Bert Huijben


 -Original Message-
 From: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
 Sent: donderdag 8 november 2012 08:07
 To: dev@subversion.apache.org
 Subject: Re: svn commit: r1406870 - in /subversion/trunk/subversion:
 libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c
 tests/cmdline/special_tests.py
 
 Branko Čibej wrote on Thu, Nov 08, 2012 at 06:13:22 +0100:
  On 08.11.2012 05:26, Daniel Shahaf wrote:
   Branko Čibej wrote on Thu, Nov 08, 2012 at 04:13:52 +0100:
   I believe that the correct approach would be to always treat a changed
   node kind (that's either the appearance/disappearance of the
 svn:symlink
   property, or a change of the initial keyword in the special-file
   contents) as if it were a replacement, for the purpose of conflict
   detection and resolution, even though the node didn't actually get
   replaced.
   Should we allow nodes to change their special-ness (namely: whether
   they have svn:special set, and if yes what's the initial keyword)
   without a replace?
  
   i.e., sure, current clients can do that --- svn ps svn:special yes
   COMMITTERS --- so we'll have to handle that in libsvn_wc.  But maybe
 we
   shouldn't allow any more instances of that.
 
  Good point. It might be a good idea to simply forbid setting or deleting
  svn:special explicitly, and also refusing to commit the file if its
  contents were modified in a way that changes the special type.
 
  Effectively that means you could only create special files through
  indirect means, e.g., by svn adding a symlink.
 
  That wouldn't remove the work needed to fix the tree conflict bug, but
  it would make the svn:special semantics clearer. I personally don't
  think we have to worry about backward compatibility at that level; I'd
  rather treat the fact that you can directly manipulate svn:special as a bug.
 
 
 I would agree that being able to add/rm svn:special on a file node _that
 already exists in the repository_ is a bug.  But being able to do that
 on a locally-added file is a feature --- it's what allows Windows users
 to create versioned symlinks:

+1 on not allowing to change the symlinkness of existing files.
And +1 on still allowing it on *new* files.

In the update editor we could change the behavior of incoming symlink changes 
to be handled as a delete + add, introducing a tree conflict (and a local 
replacement of the incoming node to keep the original state) if there are local 
changes.

I think I should be able to introduce this update editor behavior easily, but 
it is hard for me to test the on-disk symlink behavior. So I might break a few 
buildbot runs while working on this.

Bert



RE: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Bert Huijben
 -Original Message-
 From: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
 Sent: donderdag 8 november 2012 08:10
 To: dev@subversion.apache.org
 Subject: Re: svn commit: r1406870 - in /subversion/trunk/subversion:
 libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c
 tests/cmdline/special_tests.py

 BTW, it would be nice if the recipe for creating versioned symlinks on
 Windows worked on Unixes too.  For example, the 'svn add --with-revprop'
 command could replace 'foo' --- which would be a normal file at that
 point --- with an actual symlink.

With 'revprop'?

What?

svn:special is not a revision property.

Bert



Re: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread 'Daniel Shahaf'
Bert Huijben wrote on Thu, Nov 08, 2012 at 10:01:18 +0100:
  -Original Message-
  From: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
  Sent: donderdag 8 november 2012 08:10
  To: dev@subversion.apache.org
  Subject: Re: svn commit: r1406870 - in /subversion/trunk/subversion:
  libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c
  tests/cmdline/special_tests.py
 
  BTW, it would be nice if the recipe for creating versioned symlinks on
  Windows worked on Unixes too.  For example, the 'svn add --with-revprop'
  command could replace 'foo' --- which would be a normal file at that
  point --- with an actual symlink.
 
 With 'revprop'?
 
 What?
 
 svn:special is not a revision property.

Doh.  The point was to atomically ('svn add' and 'mark as
svn:special=symlink') --- obviously I got the --option name wrongly.

 
   Bert
 


Re: svn commit: r1406967 - in /subversion/site/publish: docs/community-guide/repro-template.sh roadmap.html

2012-11-08 Thread Daniel Shahaf
danie...@apache.org wrote on Thu, Nov 08, 2012 at 09:03:48 -:
 Author: danielsh
 Date: Thu Nov  8 09:03:48 2012
 New Revision: 1406967
 
 URL: http://svn.apache.org/viewvc?rev=1406967view=rev
 Log:
 * roadmap.html: Typo fix
 
 Modified:
 subversion/site/publish/docs/community-guide/repro-template.sh

Committed by accident --- thanks, svn_opt_push_implicit_dot_target ---
but it's a reasonable change, so I left it in and edited the log message
accordingly.

 subversion/site/publish/roadmap.html
 
 Modified: subversion/site/publish/docs/community-guide/repro-template.sh
 URL: 
 http://svn.apache.org/viewvc/subversion/site/publish/docs/community-guide/repro-template.sh?rev=1406967r1=1406966r2=1406967view=diff
 ==
 --- subversion/site/publish/docs/community-guide/repro-template.sh (original)
 +++ subversion/site/publish/docs/community-guide/repro-template.sh Thu Nov  8 
 09:03:48 2012
 @@ -22,6 +22,11 @@ if [ -z $SVN ]; then
SVNADMIN=`which svnadmin`
  fi
  
 +# Make sure we don't use $HOME/.subversion/.
 +SVN=${SVN} --config-dir=./svn-repro-config-dir
 +SVNADMIN=${SVNADMIN} --config-dir=./svn-repro-config-dir
 +SVNSERVE=${SVNSERVE} --config-dir=./svn-repro-config-dir
 +
  # Use English output.
  LC_ALL=C; export LC_ALL
  
 
 Modified: subversion/site/publish/roadmap.html
 URL: 
 http://svn.apache.org/viewvc/subversion/site/publish/roadmap.html?rev=1406967r1=1406966r2=1406967view=diff
 ==
 --- subversion/site/publish/roadmap.html (original)
 +++ subversion/site/publish/roadmap.html Thu Nov  8 09:03:48 2012
 @@ -380,7 +380,7 @@ numbering, compatibility, and deprecatio
tr class=task-level-1 not-started
  td class=task-nameReview private APIs/td
  td class=task-statusNot Started/td
 -tdReview private APIs (including APIs used by 
 ttsubversion/svn*//tt,
 +tdReview private APIs (including APIs used by 
 ttsubversion/svn*//tt),
  and determine which of them should be promoted to public./td
/tr
tr class=task-level-1 not-started
 
 


Re: [PATCH] Implement '--include-externals' option to 'svn list'

2012-11-08 Thread vijay

On Wednesday 07 November 2012 08:19 PM, Stefan Sperling wrote:

On Wed, Nov 07, 2012 at 07:54:33PM +0530, vijay wrote:

Thanks stefan for your detailed review.

I will keep in mind all your review comments. I will correct my
mistakes in future patches.

Attached the updated patch and log message.


This patch looks fine to me overall.

I have one more additional suggestion though.

Your patch uses boolean parameters to notify start end end of an
external item listing. This forces function implementors to reason
about all of these possibilities:

What do I do if...:

1) notify_external_start == TRUE
notify_external_end == TRUE

2) notify_external_start == TRUE
notify_external_start == FALSE

3) notify_external_end == FALSE
notify_external_end == TRUE

4) notify_external_end == FALSE
notify_external_end == FALSE

All this combined with the possible values for external_parent_url and
external_target gives quite a few possibilities for implementors to reason
about.

I wonder if this interface can be simplified somehow, maybe by getting rid
of these two boolean parameters. Instead, we could tell implementors that
if external_parent_url and external_target are defined, the item being
listed is part of the external described by external_parent_url and
external_target. Else, the item is not part of any external.

It would then be the implementor's responsibility to, for instance,
properly open and close XML tags. To help with this, we can tell the
implementor that we'll never mix items which are part of separate
externals, and will always finish listing an external before listing
the next one. I think your code already guarantees this anyway, so we
can just make this guarantee explicit in the docstring of the
svn_client_list_func2_t interface.

Then we could make the callback implementation track state to detect
by itself whether or not it is entering or leaving an external.
The callback could keep track of the last seen external_parent_url and
external_target pair, and open and close XML tags if they change.

For an example of this approach, see the code in subversion/svn/notify.c
which uses an 'in_external' boolean parameter in the notify_baton for
a similar purpose.

Does this suggestion make sense?



Yes, stefan. It makes sense.

Initially, I was struggling hard to implement this option without the 
two boolean parameters, notify_external_start and notify_external_end.
I couldn't find any other way to do it. So I added the two parameters 
reluctantly.


Now, I have an interesting suggestion. Let me dig through svn/notify.c 
and come up with an implementation.


Thanks  Regards,
Vijayaguru


AW: Random serf checkout failures

2012-11-08 Thread Markus Schaber
Hi, Lieven,

Von: lieven.govae...@gmail.com 
[]
 5. In one of Philip error-reporting mails, there was mention of a 408
 Request Time-out response.
 (http://svn.haxx.se/dev/archive-2012-11/0076.shtml).
 No idea if the server sends this response because one of the above issues,
 or if this has a different root caus. What I do know is that serf does not
 expect this response as it's not related to an outstanding request. In
 that case, serf will return and APR_GENERAL error.
 
 I think 3+4+5 are relatively easy to solve, but probably difficult to
 reproduce to validate the implemented solutions.
 1a and 2 require more analysis, I'll try to focus on these two.

I think 5 might be testable with a special version of mod_dontdothat which 
injects that error code, maybe conditionally or randomly.

Best regards

Markus Schaber

CODESYS(r) a trademark of 3S-Smart Software Solutions GmbH

Inspiring Automation Solutions

3S-Smart Software Solutions GmbH
Dipl.-Inf. Markus Schaber | Product Development Core Technology
Memminger Str. 151 | 87439 Kempten | Germany
Tel. +49-831-54031-979 | Fax +49-831-54031-50

E-Mail: m.scha...@codesys.com | Web: http://www.codesys.com
CODESYS internet forum: http://forum.codesys.com

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade 
register: Kempten HRB 6186 | Tax ID No.: DE 167014915


Re: [PATCH] enabling ruby in the subversion build

2012-11-08 Thread Philip Martin
Michael Chletsos mpchl...@gmail.com writes:

 OK - this should fix your issues, tested on ruby1.9.3 and ruby1.8.7 -
 passed for me, let me know what you get.

That works for me.  It needs a log message before it can be committed.
If you want to write it look at some old log messages and
http://subversion.apache.org/docs/community-guide/conventions.html#log-messages
for guidance.

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


Re: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Philip Martin
Bert Huijben b...@qqmail.nl writes:

 +1 on not allowing to change the symlinkness of existing files.
 And +1 on still allowing it on *new* files.

 In the update editor we could change the behavior of incoming symlink
 changes to be handled as a delete + add, introducing a tree conflict
 (and a local replacement of the incoming node to keep the original
 state) if there are local changes.

To my surprise we have a related problem with file-directory changes:

$ rm wc/file
$ mkdir wc/file
$ svn st wc
~   wc/file
$ svn up wc# attempts to modify text of wc/file
Uwc/file
../src/subversion/svn/update-cmd.c:168: (apr_err=21)
../src/subversion/libsvn_client/update.c:639: (apr_err=21)
../src/subversion/libsvn_client/update.c:579: (apr_err=21)
../src/subversion/libsvn_client/update.c:440: (apr_err=21)
../src/subversion/libsvn_wc/adm_crawler.c:858: (apr_err=21)
../src/subversion/libsvn_repos/reporter.c:1541: (apr_err=21)
../src/subversion/libsvn_repos/reporter.c:1456: (apr_err=21)
../src/subversion/libsvn_wc/update_editor.c:2748: (apr_err=21)
../src/subversion/libsvn_wc/workqueue.c:1491: (apr_err=21)
../src/subversion/libsvn_wc/workqueue.c:1409: (apr_err=21)
../src/subversion/libsvn_wc/workqueue.c:628: (apr_err=21)
../src/subversion/libsvn_subr/io.c:3559: (apr_err=21)
svn: E21: Can't move '/home/pm/sw/subversion/obj/wc/.svn/tmp/svn-KLx0k0' to 
'/home/pm/sw/subversion/obj/wc/file': Is a directory

I thought we addressed things like this in 1.7 but I see we didn't
finish it.  The obstruction prevents us updating the working file but it
is entirely possible for the base tree to be updated.  We probably don't
need either a tree- or text- conflict here.  If we simpy skip updating
the file the obstruction will continue to be marked ~ in status.

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


Re: [PATCH] Implement '--include-externals' option to 'svn list'

2012-11-08 Thread vijay

On Wednesday 07 November 2012 08:57 PM, Stefan Fuhrmann wrote:

On Wed, Nov 7, 2012 at 3:02 PM, vijay vi...@collab.net
mailto:vi...@collab.net wrote:

On Tuesday 06 November 2012 08:09 PM, Stefan Fuhrmann wrote:

On Mon, Nov 5, 2012 at 5:24 PM, vijay vi...@collab.net
mailto:vi...@collab.net
mailto:vi...@collab.net mailto:vi...@collab.net wrote:

 Hi,

 This patch implements '--include-externals' option to 'svn
list'
 [Issue #4225] [1].

 All tests pass with 'make check'  'make davautocheck'.

 Attached the patch and log message.

 Please review this patch and share your thoughts.

 Thanks in advance for your time.

 Thanks  Regards,
 Vijayaguru

 [1]
http://subversion.tigris.org/issues/show_bug.cgi?id=4225
http://subversion.tigris.org/__issues/show_bug.cgi?id=4225

 http://subversion.tigris.org/__issues/show_bug.cgi?id=4225
http://subversion.tigris.org/issues/show_bug.cgi?id=4225


Hi Vijay,

Not sure whether these points have already been
discussed in previous threads, but the following
two points caught my attention:

 +typedef svn_error_t *(*svn_client_list_func2_t)(
 +  void *baton,
 +  const char *path,
 +  const svn_dirent_t *dirent,
 +  const svn_lock_t *lock,
 +  const char *abs_path,

o.k.

 +  svn_boolean_t notify_external_start,
 +  svn_boolean_t notify_external_end,
 +  const char *external_parent_url,
 +  const char *external_target,

Maybe, this should be modeled to create a more seamless
appearance. Only keep the external_parent_url member.
If it is NULL, this entry has not been pulled in here by
some external. Otherwise it contains the parent URL as
defined by your patch.

I don't see the see the need to expose more information.
Why would you need to group externals? The external_target
member should be given implicitly by path / dirent.
Am I missing something here?



The external_target member will not be given by path / dirent.
We will get it by parsing the externals description.

Suppose that path1 in repo1 has svn:externals set to path2 in repo2.

When we list path1 with externals included,

1. First, list path1.
2. Then, process all the externals defined under path1. Parse
through the individual external description and populate
external_target.

For example,

external description under path1:
external_desc = exdir  http://url-of-path2-in-repo2

external_target = exdir
external_parent_url = http://url-of-path1-in-repo1

url of external = http://url-of-path2-in-repo2

3. List the entries by reaching 'url of external'.


OK, I now see what you are trying to do here -
I had read to much into the code.

However, in this form, the added functionality is
of limited use, IMHO. I understand that what you
list is basically which paths you would get for a
svn co $url.

While this is fine, I see two issues with it:

* trees don't get overlayed. Example:
   $svn ls $URL -R
   sub1
   sub1/fileA
   sub1/fileB
   sub2
   $svn propget svn:externals $URL
http://somewhere/ sub1/subsub
   $svn ls $URL -R --include-externals
   sub1
   sub1/fileA
   sub1/fileB
   sub2
   sub1/subsub [external].

   Desired output
   sub1
   sub1/fileA
   sub1/fileB
   sub1/subsub [external @$URL].
   sub2


I was referring externals related code base in checkout/update and 
export while implementing this option.


From subversion/libsvn_client/update.c
snip
/* We handle externals after the update is complete, so that
 handling external items (and any errors therefrom) doesn't delay
 the primary operation.  */
/snip

So I preferred the same for 'list' also. But there is a difference in 
externals processing between the commands checkout/update and list. The 
former processes the externals by default. The latter processes 
externals only if we specifically ask it. What should we do here?





* result of ls on a sub-folder results in less output
   $svn ls $URL/sub1 -R --include-externals
   fileA
   fileB

   Desired output:
   fileA
   fileB
   subsub [external @$URL].



Bert raised the same question and C-Mike answered here [1].

The current implementation uses svn_ra_get_dir() to fetch all properties 
and filters svn:externals under current list target. I don't know how 
to extend it for externals defined higher up in the tree.


Thanks  Regards,
Vijayaguru

[1] http://svn.haxx.se/dev/archive-2012-10/0353.shtml



So, it is hard to build e.g. explorer-like GUIs based
on this information. The GUI would still need to collect,
remember and splice the externals manually. That
would render your extension almost useless.

-- Stefan^2.

ra_serf: truncated responses by low Timeout are not handled graceful (was Re: Random serf checkout failures)

2012-11-08 Thread Lieven Govaerts
Philip,

On Tue, Nov 6, 2012 at 11:20 PM, Philip Martin
philip.mar...@wandisco.com wrote:
 Lieven Govaerts l...@mobsol.be writes:

 Philip or Ben, can you test that with this patch svn will always stop
 with a communication error?

 Using serf 1.1.x patched and Subversion 1406366 I get this new error:

 Awc/1.3.0-rc1/subversion/libsvn_subr/config.c
 ../src/subversion/svn/checkout-cmd.c:168: (apr_err=120105)
 ../src/subversion/libsvn_client/checkout.c:179: (apr_err=120105)
 ../src/subversion/libsvn_client/update.c:579: (apr_err=120105)
 ../src/subversion/libsvn_client/update.c:440: (apr_err=120105)
 ../src/subversion/libsvn_wc/adm_crawler.c:858: (apr_err=120105)
 ../src/subversion/libsvn_ra_serf/update.c:2564: (apr_err=120105)
 ../src/subversion/libsvn_ra_serf/util.c:2028: (apr_err=120105)
 ../src/subversion/libsvn_ra_serf/util.c:2009: (apr_err=120105)
 ../src/subversion/libsvn_ra_serf/update.c:989: (apr_err=120105)
 svn: E120105: ra_serf: The server sent an improper HTTP response

 but I still see this as well:

 A
 wc/1.3.0-rc1/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
 ../src/subversion/libsvn_ra_serf/update.c:680: (apr_err=235000)
 svn: E235000: In file '../src/subversion/libsvn_ra_serf/update.c' line 680: 
 assertion failed (! dir-ref_count)

 Program received signal SIGABRT, Aborted.
 0x765ea475 in *__GI_raise (sig=optimized out)
 at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 64  ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
 (gdb) p dir-ref_count
 $1 = 1
 (gdb) bt
 #0  0x765ea475 in *__GI_raise (sig=optimized out)
 at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 #1  0x765ed6f0 in *__GI_abort () at abort.c:92
 #2  0x76feb5fd in svn_error_abort_on_malfunction (can_return=1,
 file=0x75b2ff78 ../src/subversion/libsvn_ra_serf/update.c, line=680,
 expr=0x75b3001e ! dir-ref_count)
 at ../src/subversion/libsvn_subr/error.c:678
 #3  0x76feb64e in svn_error__malfunction (can_return=1,
 file=0x75b2ff78 ../src/subversion/libsvn_ra_serf/update.c, line=680,
 expr=0x75b3001e ! dir-ref_count)
 at ../src/subversion/libsvn_subr/error.c:703
 #4  0x75b1edc0 in close_all_dirs (dir=0x71e810c8)
 at ../src/subversion/libsvn_ra_serf/update.c:680
 #5  0x75b1ed4a in close_all_dirs (dir=0x71e830c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #6  0x75b1ed4a in close_all_dirs (dir=0x71e850c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #7  0x75b1ed4a in close_all_dirs (dir=0x71e870c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #8  0x75b1ed4a in close_all_dirs (dir=0x71e8d0c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #9  0x75b1ed4a in close_all_dirs (dir=0x720090c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #10 0x75b1ed4a in close_all_dirs (dir=0x7200b0c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #11 0x75b1ed4a in close_all_dirs (dir=0x720130c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #12 0x75b1ed4a in close_all_dirs (dir=0x724b90c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #13 0x75b1ed4a in close_all_dirs (dir=0x728f60c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #14 0x75b1ed4a in close_all_dirs (dir=0x732a10c8)
 at ../src/subversion/libsvn_ra_serf/update.c:676
 #15 0x75b2420f in finish_report (report_baton=0x77e45090,
 pool=0x77e42028) at ../src/subversion/libsvn_ra_serf/update.c:2746
 #16 0x7789bc6d in svn_wc_crawl_revisions5 (wc_ctx=0x732fd6b0,
 local_abspath=0x77e42168 /home/pm/sw/subversion/obj/wc,
 reporter=0x75d394e0, report_baton=0x77e45090, restore_files=1,
 depth=svn_depth_unknown, honor_depth_exclude=1,
 depth_compatibility_trick=0, use_commit_times=0,
 cancel_func=0x416b43 svn_cl__check_cancel, cancel_baton=0x0,
 notify_func=0x41c467 notify, notify_baton=0x732fd9a0,
 scratch_pool=0x77e42028)
 at ../src/subversion/libsvn_wc/adm_crawler.c:858
 #17 0x77bc7f6d in update_internal (result_rev=0x0,
 local_abspath=0x77e42168 /home/pm/sw/subversion/obj/wc,
 anchor_abspath=0x77e438a0 /home/pm/sw/subversion/obj/wc,
 revision=0x7fffe050, depth=svn_depth_unknown, depth_is_sticky=0,
 ignore_externals=0, allow_unver_obstructions=0, adds_as_modification=1,
 timestamp_sleep=0x7fffe15c, notify_summary=1, ctx=0x732fd5f8,
 pool=0x77e42028) at ../src/subversion/libsvn_client/update.c:427


I can't reproduce this myself. Since this happens in the middle of the
checkout (not explicitly mentioned in your mail but Ben showed me),
and the close_all_dirs function is only called at the very end, when
the full report has been parsed, this can be explained by a truncated
REPORT response.

Any 

Re: Random serf checkout failures

2012-11-08 Thread Lieven Govaerts
Hi Markus,

On Thu, Nov 8, 2012 at 12:02 PM, Markus Schaber m.scha...@codesys.com wrote:
 Hi, Lieven,

 Von: lieven.govae...@gmail.com
 []
 5. In one of Philip error-reporting mails, there was mention of a 408
 Request Time-out response.
 (http://svn.haxx.se/dev/archive-2012-11/0076.shtml).
 No idea if the server sends this response because one of the above issues,
 or if this has a different root caus. What I do know is that serf does not
 expect this response as it's not related to an outstanding request. In
 that case, serf will return and APR_GENERAL error.

 I think 3+4+5 are relatively easy to solve, but probably difficult to
 reproduce to validate the implemented solutions.
 1a and 2 require more analysis, I'll try to focus on these two.

 I think 5 might be testable with a special version of mod_dontdothat which 
 injects that error code, maybe conditionally or randomly.


I've found a way to trigger the issue with some modifications to serf,
see the new email thread:
http://svn.haxx.se/dev/archive-2012-11/0238.shtml


 Best regards

 Markus Schaber


Lieven


Re: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Philip Martin
Bert Huijben b...@qqmail.nl writes:

 In the update editor we could change the behavior of incoming symlink
 changes to be handled as a delete + add, introducing a tree conflict
 (and a local replacement of the incoming node to keep the original
 state) if there are local changes.

 I think I should be able to introduce this update editor behavior
 easily, but it is hard for me to test the on-disk symlink behavior. So
 I might break a few buildbot runs while working on this.

We are currently adding a tree conflcit but we are not doing a good job:

$ svn up wc --accept postpone
Updating 'wc':
   C wc/f
At revision 2.
Summary of conflicts:
  Tree conflicts: 1
$ svn st wc
D C wc/f
 local add, incoming add upon update
Summary of conflicts:
  Tree conflicts: 1

We have flagged an add-add conflict but it's more of an update-update
conflict.  Also the working state is 'D' and that is probably never what
the user wants.  To get to state 'R' the user must resolve the tree
conflict before doing the extra add.

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


Re: ra_serf: truncated responses by low Timeout are not handled graceful

2012-11-08 Thread Philip Martin
Lieven Govaerts l...@apache.org writes:

 Any truncated response should now result in an error from serf (since
 serf trunk r1678). It's not clear to me if this error
 SERF_ERROR_TRUNCATED_HTTP_RESPONSE was returned from serf but then
 ignored in svn, or not returned at all.

I was using 1.1.x with the patches you and Ivan posted so it would not
have been returning that error.

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


AW: Random serf checkout failures

2012-11-08 Thread Markus Schaber
Hi, Lieven,

Von: lieven.govae...@gmail.com [mailto:lieven.govae...@gmail.com] Im
 On Thu, Nov 8, 2012 at 12:02 PM, Markus Schaber m.scha...@codesys.com
 wrote:
  Von: lieven.govae...@gmail.com
  []
  5. In one of Philip error-reporting mails, there was mention of a
  408 Request Time-out response.
  (http://svn.haxx.se/dev/archive-2012-11/0076.shtml).
  No idea if the server sends this response because one of the above
  issues, or if this has a different root caus. What I do know is that
  serf does not expect this response as it's not related to an
  outstanding request. In that case, serf will return and APR_GENERAL error.
 
  I think 3+4+5 are relatively easy to solve, but probably difficult to
  reproduce to validate the implemented solutions.
  1a and 2 require more analysis, I'll try to focus on these two.
 
  I think 5 might be testable with a special version of mod_dontdothat
 which injects that error code, maybe conditionally or randomly.
 
 I've found a way to trigger the issue with some modifications to serf, see
 the new email thread:
 http://svn.haxx.se/dev/archive-2012-11/0238.shtml

I'm happy to hear that.

Another possibility we could keep in mind for future incidents might be a 
special http proxy for fault injection.
http://spareclockcycles.org/2010/06/10/sergio-proxy-released/
http://extradata.com/products/FaultFactory/
https://www.owasp.org/index.php/Category%3aOWASP_WebScarab_Project



Best regards

Markus Schaber

CODESYS(r) a trademark of 3S-Smart Software Solutions GmbH

Inspiring Automation Solutions

3S-Smart Software Solutions GmbH
Dipl.-Inf. Markus Schaber | Product Development Core Technology
Memminger Str. 151 | 87439 Kempten | Germany
Tel. +49-831-54031-979 | Fax +49-831-54031-50

E-Mail: m.scha...@codesys.com | Web: http://www.codesys.com
CODESYS internet forum: http://forum.codesys.com

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade 
register: Kempten HRB 6186 | Tax ID No.: DE 167014915


Re: Authz on Collection of Repositories

2012-11-08 Thread Thomas Åkesson

On 5 nov 2012, at 09:11, Branko Čibej wrote:

 On 05.11.2012 00:21, Thomas Åkesson wrote:
 I did some tests with curl --head just as a sanity check. It seems to be a 
 good choice for access control. I primarily wanted to see that HEAD requests 
 were not allowed in situations where GET is not (e.g. when user has access 
 in directories below).
 
 The HEAD requests I performed (minimal curl command) did not cause the 
 server to provide Content-Length when returning 200 OK.
 
 Which is precisely what I was talking about in my other post. Such HEAD
 responses are invalid. If we implement HEAD, we have to do it correctly.

Right, I was just confirming that.  

I think this is approaching off-topic for this thread. The server (mod_dav_svn) 
currently does respond to HEAD requests without Content-Length, which appears 
to be invalid. Perhaps a separate issue/thread should discuss whether the HEAD 
response should be changed to conform with the specification. 

On-topic, looking at the HTTP RFC, the HEAD request makes a lot of sense for 
access control purposes and that gives the server a chance to optimize the 
response even if, worst case, only the response bandwidth would be gained. 

/Thomas Å.



Re: [PATCH] Implement '--include-externals' option to 'svn list'

2012-11-08 Thread Stefan Sperling
On Thu, Nov 08, 2012 at 05:04:35PM +0530, vijay wrote:
 On Wednesday 07 November 2012 08:57 PM, Stefan Fuhrmann wrote:
 * result of ls on a sub-folder results in less output
$svn ls $URL/sub1 -R --include-externals
fileA
fileB
 
Desired output:
fileA
fileB
subsub [external @$URL].
 
 Bert raised the same question and C-Mike answered here [1].

I think we should get something based on your current patch committed.
It is already much better than not listing externals at all.

Unless others have strong objections, of course. In that case you'll
need to rework your current patch before it can be committed.

With the benefit of hindsight, it seems allowing externals to be configured
on any ancestor directory was a big mistake in the design that complicates
things for no good reason. But that's neither your nor my fault :)

 The current implementation uses svn_ra_get_dir() to fetch all
 properties and filters svn:externals under current list target. I
 don't know how to extend it for externals defined higher up in the
 tree.

Before listing, you could walk the repository tree from the target upwards
to the repository root, and then while listing also process any externals
definitions found on ancestors if they affect the list target.

You'll need to deal with problems like authz restrictions while traversing
upwards. So I'd suggest working on this problem in a follow-up patch,
which should also include a new test case of course.
Your current patch is already complex enough for me to review so I wouldn't
want it to grow much larger before it can be committed.


Re: Please review Symmetric Merge

2012-11-08 Thread Julian Foad
Paul Burba wrote:

 On Fri, Nov 2, 2012 at 5:29 PM, Paul Burba wrote:
  What about all these two XFailing tests?
 
    merge_automatic_tests.py 16 'cherry2_fwd'
    merge_automatic_tests.py 17 'cherry3_fwd
 
  Are you working on those?  Are they blockers for 1.8?  Any existing
  issue they can be associated with?
 
 Julian - just pinging you about this.  These two tests are among a
 handful left that are set to XFail but which aren't associated with
 any known issue.  Having an associated issue allows us to see at a
 glance what XFailing tests are 1.8 blockers as we plod on towards a
 release.

OK, I've associated them with new issue #4255, Automatic merge ignores some 
cherry-picks, causing conflicts, and left them as XFail.  (And I'm not working 
on fixing them, since it's a long-standing deficiency, not a regression.)

- Julian


Re: Authz on Collection of Repositories

2012-11-08 Thread Thomas Åkesson
On 5 nov 2012, at 00:21, Thomas Åkesson wrote:
 
 I have meant to set up a test server with our reference configuration to 
 validate the patch under realistic circumstances. Unfortunately, the SLES 
 activation servers have been down for several hours (we don't have dev tools 
 on our VM Appliance by default). I will do some tests with parentpath under 
 /svn/ and both variations of Satisfy as soon as possible.

Right, it took a while to get that test server up and running with the dev 
setup. I had to refresh some knowledge.

I have performed the following tests with patch 2012-11-02. All tests with 
access file configured and Require valid-user.

Parentpath on /svn/ and Satisfy Any:

 - Access without auth displays repositories with anonymous access, auth is not 
requested.
 - Access with auth displays filtered list. Works well when browser has 
previously been on an authenticated path. This is the situation when Satisfy 
Any and filtered Collection of Repositories does not work well. 
 - Did a test with AuthzSVNAnonymous Off, which gave the quite surprising 
result that all content was listed both on Collection of Repositories and 
within the repositories. I doubt this is the intended behaviour?!?


Parentpath on /svn/ and Satisfy All:

 - Authentication is required everywhere and the Collection of Repositories is 
beautifully filtered. Works very well with improved user experience on many 
installations.

AuthzSVNAnonymous seems to have no effect in this case, which is expected.

 
Parentpath on /:

Tested both Satisfy Any/All with same results as on /svn/. Good, I had some 
concerns since there have historically been issues.


The remaining concerns I have:
 - The combination of this patch with Satisfy Any. I am a bit more concerned 
than I was initially.
 - What is going on with AuthzSVNAnonymous Off? I will do more analysis of the 
code (focusing on access_checker in mod_authz_svn.c) but it would be great if 
someone could elaborate a bit on the intent.

Thanks,
Thomas Å.



Re: Please review Symmetric Merge

2012-11-08 Thread Paul Burba
On Thu, Nov 8, 2012 at 9:49 AM, Julian Foad julianf...@btopenworld.com wrote:
 Paul Burba wrote:

 On Fri, Nov 2, 2012 at 5:29 PM, Paul Burba wrote:
  What about all these two XFailing tests?

merge_automatic_tests.py 16 'cherry2_fwd'
merge_automatic_tests.py 17 'cherry3_fwd

  Are you working on those?  Are they blockers for 1.8?  Any existing
  issue they can be associated with?

 Julian - just pinging you about this.  These two tests are among a
 handful left that are set to XFail but which aren't associated with
 any known issue.  Having an associated issue allows us to see at a
 glance what XFailing tests are 1.8 blockers as we plod on towards a
 release.

 OK, I've associated them with new issue #4255, Automatic merge ignores some 
 cherry-picks, causing conflicts, and left them as XFail.  (And I'm not 
 working on fixing them, since it's a long-standing deficiency, not a 
 regression.)

Great, thanks Julian.  I set the target milestone on the issue to
unscheduled, since this isn't a 1.8 blocker (all those issues in the
tracker with no target milestones give me a rash since it makes it
hard to determine what needs to be fixed before 1.8 :-)

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


RE: svn commit: r1407127 - /subversion/branches/1.7.x/STATUS

2012-11-08 Thread Bert Huijben


 -Original Message-
 From: phi...@apache.org [mailto:phi...@apache.org]
 Sent: donderdag 8 november 2012 16:27
 To: comm...@subversion.apache.org
 Subject: svn commit: r1407127 - /subversion/branches/1.7.x/STATUS
 
 Author: philip
 Date: Thu Nov  8 15:26:37 2012
 New Revision: 1407127
 

  Approved changes:
  =
 +
 + * r1401915
 +   Ignore file externals with mergeinfo when merging.
 +   Justification:
 + Prevents a segfault,
 + see http://svn.haxx.se/dev/archive-2012-10/0364.shtml
 +   Branch:
 + ^/subversion/branches/1.7.x-r1401915
 +   Votes:
 + +1: pburba, steveking, philip
 

In my original review of this patch I asked if this issue was more generic than 
just file externals?

What happens with switched files?

(Did I miss an earlier answer?)

My guess would be that it is the being switched that defines the behavior here, 
not being external.

And in that case a follow up patch would be necessary to handle the real 
problem.

Bert



RE: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Bert Huijben


 -Original Message-
 From: Philip Martin [mailto:philip.mar...@wandisco.com]
 Sent: donderdag 8 november 2012 13:31
 To: Bert Huijben
 Cc: 'Daniel Shahaf'; dev@subversion.apache.org
 Subject: Re: svn commit: r1406870 - in /subversion/trunk/subversion:
 libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c
 tests/cmdline/special_tests.py
 
 Bert Huijben b...@qqmail.nl writes:
 
  In the update editor we could change the behavior of incoming symlink
  changes to be handled as a delete + add, introducing a tree conflict
  (and a local replacement of the incoming node to keep the original
  state) if there are local changes.
 
  I think I should be able to introduce this update editor behavior
  easily, but it is hard for me to test the on-disk symlink behavior. So
  I might break a few buildbot runs while working on this.
 
 We are currently adding a tree conflcit but we are not doing a good job:
 
 $ svn up wc --accept postpone
 Updating 'wc':
C wc/f
 At revision 2.
 Summary of conflicts:
   Tree conflicts: 1
 $ svn st wc
 D C wc/f
  local add, incoming add upon update
 Summary of conflicts:
   Tree conflicts: 1
 
 We have flagged an add-add conflict but it's more of an update-update
 conflict.  Also the working state is 'D' and that is probably never what
 the user wants.  To get to state 'R' the user must resolve the tree
 conflict before doing the extra add.

After r1407131 you would get something like:

 s-reverse and s-type are the changes from file into symlink and the other
way 

$ svn up svn-test-work\working_copies\special_tests-25
Updating 'svn-test-work\working_copies\special_tests-25':
Usvn-test-work\working_copies\special_tests-25\s-in-place
   C svn-test-work\working_copies\special_tests-25\s-replace
   A svn-test-work\working_copies\special_tests-25\s-replace
   C svn-test-work\working_copies\special_tests-25\s-reverse
   C svn-test-work\working_copies\special_tests-25\s-type
Updated to revision 5.
Summary of conflicts:
  Tree conflicts: 3

$ svn status -u svn-test-work\working_copies\special_tests-25
RM +  C  -2 jrandom
svn-test-work\working_copies\special_tests-25\s-replace
 local edit, incoming replace upon update
RM +  C  -2 jrandom
svn-test-work\working_copies\special_tests-25\s-reverse
 local edit, incoming replace upon update
RM +  C  -2 jrandom
svn-test-work\working_copies\special_tests-25\s-type
 local edit, incoming replace upon update
M   53 jrandom
svn-test-work\working_copies\special_tests-25\s-in-place  

When the files/symlinks were locally modified before the update. (If the
files weren't modified the update just handles the update, as with a normal
replacement)

As part of this work I enabled quite a few special tests on Windows, to at
least get into these code paths from the test suite.

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



Re: svn commit: r1407127 - /subversion/branches/1.7.x/STATUS

2012-11-08 Thread Paul Burba
On Thu, Nov 8, 2012 at 10:32 AM, Bert Huijben b...@qqmail.nl wrote:


 -Original Message-
 From: phi...@apache.org [mailto:phi...@apache.org]
 Sent: donderdag 8 november 2012 16:27
 To: comm...@subversion.apache.org
 Subject: svn commit: r1407127 - /subversion/branches/1.7.x/STATUS

 Author: philip
 Date: Thu Nov  8 15:26:37 2012
 New Revision: 1407127


  Approved changes:
  =
 +
 + * r1401915
 +   Ignore file externals with mergeinfo when merging.
 +   Justification:
 + Prevents a segfault,
 + see http://svn.haxx.se/dev/archive-2012-10/0364.shtml
 +   Branch:
 + ^/subversion/branches/1.7.x-r1401915
 +   Votes:
 + +1: pburba, steveking, philip


 In my original review of this patch I asked if this issue was more generic 
 than just file externals?

 What happens with switched files?

 (Did I miss an earlier answer?)

Sorry Bert, I missed your reply to r1401915.

Reintegrate merges and automatic merges which follow the same code
path, don't allow the merge to proceed if there are switched subtrees
present.  You can use --ignore-ancestry to force the latter to run,
but then mergetracking isn't active so the segfault is not an issue
since it occurs find_unmerged_mergeinfo, which is only run in
mergetracking aware reintegrate type merges.  Alternatively you can
use a 2-URL merge, but that doesn't hit the reintegrate merge code
path either.  So as of right now I don't see any further problems.

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

 My guess would be that it is the being switched that defines the behavior 
 here, not being external.

 And in that case a follow up patch would be necessary to handle the real 
 problem.

 Bert




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


RE: svn commit: r1407127 - /subversion/branches/1.7.x/STATUS

2012-11-08 Thread Bert Huijben
 -Original Message-
 From: Paul Burba [mailto:ptbu...@gmail.com]
 Sent: donderdag 8 november 2012 17:13
 To: Bert Huijben
 Cc: dev@subversion.apache.org
 Subject: Re: svn commit: r1407127 - /subversion/branches/1.7.x/STATUS
 
 On Thu, Nov 8, 2012 at 10:32 AM, Bert Huijben b...@qqmail.nl wrote:
 
 
  -Original Message-
  From: phi...@apache.org [mailto:phi...@apache.org]
  Sent: donderdag 8 november 2012 16:27
  To: comm...@subversion.apache.org
  Subject: svn commit: r1407127 - /subversion/branches/1.7.x/STATUS
 
  Author: philip
  Date: Thu Nov  8 15:26:37 2012
  New Revision: 1407127
 
 
   Approved changes:
   =
  +
  + * r1401915
  +   Ignore file externals with mergeinfo when merging.
  +   Justification:
  + Prevents a segfault,
  + see http://svn.haxx.se/dev/archive-2012-10/0364.shtml
  +   Branch:
  + ^/subversion/branches/1.7.x-r1401915
  +   Votes:
  + +1: pburba, steveking, philip
 
 
  In my original review of this patch I asked if this issue was more generic
 than just file externals?
 
  What happens with switched files?
 
  (Did I miss an earlier answer?)
 
 Sorry Bert, I missed your reply to r1401915.
 
 Reintegrate merges and automatic merges which follow the same code
 path, don't allow the merge to proceed if there are switched subtrees
 present.  You can use --ignore-ancestry to force the latter to run,
 but then mergetracking isn't active so the segfault is not an issue
 since it occurs find_unmerged_mergeinfo, which is only run in
 mergetracking aware reintegrate type merges.  Alternatively you can
 use a 2-URL merge, but that doesn't hit the reintegrate merge code
 path either.  So as of right now I don't see any further problems.

Thanks for the explanation,

In that case +1 on backporting :)

Bert



Content-Length in HEAD responses (was: Re: Authz on Collection of Repositories)

2012-11-08 Thread Daniel Shahaf
Thomas Åkesson wrote on Thu, Nov 08, 2012 at 15:15:03 +0100:
 
 On 5 nov 2012, at 09:11, Branko Čibej wrote:
 
  On 05.11.2012 00:21, Thomas Åkesson wrote:
  I did some tests with curl --head just as a sanity check. It seems to be a 
  good choice for access control. I primarily wanted to see that HEAD 
  requests were not allowed in situations where GET is not (e.g. when user 
  has access in directories below).
  
  The HEAD requests I performed (minimal curl command) did not cause the 
  server to provide Content-Length when returning 200 OK.
  
  Which is precisely what I was talking about in my other post. Such HEAD
  responses are invalid. If we implement HEAD, we have to do it correctly.
 
 Right, I was just confirming that.  
 
 I think this is approaching off-topic for this thread. The server
 (mod_dav_svn) currently does respond to HEAD requests without
 Content-Length, which appears to be invalid. Perhaps a separate
 issue/thread should discuss whether the HEAD response should be
 changed to conform with the specification. 
 

We could also add Content-Length if it's not required but cheap to
compute.  (svn_fs_file_length())

 On-topic, looking at the HTTP RFC, the HEAD request makes a lot of
 sense for access control purposes and that gives the server a chance
 to optimize the response even if, worst case, only the response
 bandwidth would be gained. 
 
 /Thomas Å.
 


Re: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Peter Samuelson

[Daniel Shahaf]
 it's what allows Windows users to create versioned symlinks:
 
   printf link bar  foo  svn add foo  svn ps svn:special yes foo  svn 
 ci
 
 If we don't like changing the specialness of a local addition, we could
 deprecate (or break) that behaviour and have people run
 'svn add --with-revprop svn:special=yes foo' instead.

(Where we understand you didn't actually mean 'revprop'.)
We have that option already ... unfortunately it doesn't actually work:

$ echo bar  foo

$ svn add --config-option config:miscellany:enable-auto-props=yes \
  --config-option config:auto-props:foo=svn:special=1 foo
A foo

$ ls -l foo
-rw-r--r-- 1 peters peters 4 Nov  8 10:57 foo

$ svn ci -mm
svn: E145001: Commit failed (details follow):
svn: E145001: Entry '/tmp/foowc/foo' has unexpectedly changed special status

Peter


Re: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Daniel Shahaf
Peter Samuelson wrote on Thu, Nov 08, 2012 at 11:01:37 -0600:
 
 [Daniel Shahaf]
  it's what allows Windows users to create versioned symlinks:
  
printf link bar  foo  svn add foo  svn ps svn:special yes foo  
  svn ci
  
  If we don't like changing the specialness of a local addition, we could
  deprecate (or break) that behaviour and have people run
  'svn add --with-revprop svn:special=yes foo' instead.
 
 (Where we understand you didn't actually mean 'revprop'.)
 We have that option already ... unfortunately it doesn't actually work:
 

Time to file a bug report, then!
(Good catch)

 $ echo bar  foo
 
 $ svn add --config-option config:miscellany:enable-auto-props=yes \
   --config-option config:auto-props:foo=svn:special=1 foo
 A foo
 
 $ ls -l foo
 -rw-r--r-- 1 peters peters 4 Nov  8 10:57 foo
 
 $ svn ci -mm
 svn: E145001: Commit failed (details follow):
 svn: E145001: Entry '/tmp/foowc/foo' has unexpectedly changed special 
 status
 
 Peter


Assert IS_VALID_FORWARD_RANGE fails in merge_tests 125 [was: Hanging tests mergeinfo-test.exe 12, 15 and skel-test.exe 4 on WinXP with VS2010 release build]

2012-11-08 Thread Julian Foad
Stefan Fuhrmann wrote:

 But I did run across an assertion in mergeinfo.c, :line 1174

 during merge_tests.py 125:

   SVN_ERR_ASSERT_NO_RETURN(IS_VALID_FORWARD_RANGE(first));

 The weird thing about the assertion is, that the tests
 will continue just fine afterwards and no error was
 reported. I suspect some compiler optimization issue
 or some missing initialization.


I see this too.  The test is marked XFAIL.


- Julian



Re: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Daniel Shahaf
Peter Samuelson wrote on Thu, Nov 08, 2012 at 11:01:37 -0600:
 
 [Daniel Shahaf]
  it's what allows Windows users to create versioned symlinks:
  
printf link bar  foo  svn add foo  svn ps svn:special yes foo  
  svn ci
  
  If we don't like changing the specialness of a local addition, we could
  deprecate (or break) that behaviour and have people run
  'svn add --with-revprop svn:special=yes foo' instead.
 
 (Where we understand you didn't actually mean 'revprop'.)
 We have that option already ... unfortunately it doesn't actually work:
 
 $ echo bar  foo
 

Did you mean:
  $ printf 'link bar'  foo

 $ svn add --config-option config:miscellany:enable-auto-props=yes \
   --config-option config:auto-props:foo=svn:special=1 foo
 A foo
 
 $ ls -l foo
 -rw-r--r-- 1 peters peters 4 Nov  8 10:57 foo
 
 $ svn ci -mm
 svn: E145001: Commit failed (details follow):
 svn: E145001: Entry '/tmp/foowc/foo' has unexpectedly changed special 
 status

Given that bar\n does not start with link , I think this commit
should have succeeded.  (Just like the printf 'link bar' variant
succeeds on windows)

 
 Peter


Re: [PATCH] enabling ruby in the subversion build

2012-11-08 Thread Michael Chletsos
Initial support for ruby 1.9.3 when creating swig bindings for subversion.

* Makefile.in:
  Ruby 1.8 uses --verbose, 1.9 does not for run-test.rb
* subversion/bindings/swig/ruby/test/test_core.rb:
  Updated for ruby1.9 time, which uses nanoseconds
* subversion/bindings/swig/ruby/test/test_repos.rb:
  ruby1.8 carries the assignment through block, ruby1.9 does not carry
assignments, we need to explicitly do this.
* subversion/bindings/swig/ruby/test/test-unit-ext/priority.rb:
  run priority tests only for ruby1.8
* subversion/bindings/swig/ruby/test/test_delta.rb:
  fix nil return in ruby1.9,
  ruby1.8 carries the assignment through block, ruby1.9 does not carry
assignments, we need to explicitly do this
  fix StringIO encoding to be ASCII-8BIT, no longer assumed as in ruby1.8
* subversion/bindings/swig/ruby/test/test-unit-ext.rb:
  turn off some tests for ruby1.9, they should be fixed still
* subversion/bindings/swig/ruby/test/test_fs.rb:
  update md5 to digest/md5 in require
* subversion/bindings/swig/ruby/test/test_wc.rb,
subversion/bindings/swig/ruby/test/test_client.rb:
  ruby1.8 carries the assignment through block, ruby1.9 does not carry
assignments, we need to explicitly do this
* subversion/bindings/swig/ruby/test/my-assertions.rb:
  create intermediary assertion block handler
* subversion/bindings/swig/ruby/svn/util.rb:
  convert to string before splitting for ruby1.9 compat
* subversion/bindings/swig/ruby/svn/info.rb:
  use each_line for ruby1.9 and each for ruby1.8
* configure.ac:
  detect ruby1.9.3 - added teeny version detection
  restrict build to 1.8.x and = 1.9.3

Patch by: Michael Chletsos mpchl...@gmail.com,
   Vincent Batts vba...@slackware.com




On Thu, Nov 8, 2012 at 1:03 AM, Philip Martin
philip.mar...@wandisco.com wrote:
 Michael Chletsos mpchl...@gmail.com writes:

 OK - this should fix your issues, tested on ruby1.9.3 and ruby1.8.7 -
 passed for me, let me know what you get.

 That works for me.  It needs a log message before it can be committed.
 If you want to write it look at some old log messages and
 http://subversion.apache.org/docs/community-guide/conventions.html#log-messages
 for guidance.

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


Re: svn commit: r1406870 - in /subversion/trunk/subversion: libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c tests/cmdline/special_tests.py

2012-11-08 Thread Peter Samuelson

[Daniel Shahaf]
 Did you mean:
   $ printf 'link bar'  foo

Yes I did mean that - thanks.

  $ svn add --config-option config:miscellany:enable-auto-props=yes \
--config-option config:auto-props:foo=svn:special=1 foo
  A foo
  
  $ ls -l foo
  -rw-r--r-- 1 peters peters 4 Nov  8 10:57 foo
  
  $ svn ci -mm
  svn: E145001: Commit failed (details follow):
  svn: E145001: Entry '/tmp/foowc/foo' has unexpectedly changed special 
  status
 
 Given that bar\n does not start with link , I think this commit
 should have succeeded.  (Just like the printf 'link bar' variant
 succeeds on windows)

Or, alternately, it should have failed because svn does not recognise
the 'bar' special type.

Anyway, we discussed this a bit on IRC and further discovered:

- 'svn add' with auto-props fails on Unix but succeeds on Windows,
  presumably because the subsequent 'commit' does not expect to find a
  literal symlink on Windows.

- 'svn propset svn:special' behaves the same: it does not convert a
  file into a symlink, therefore on Unix the subsequent commit fails.

- For a different case, svn:executable, both 'svn add' with auto-props
  and 'svn propset' have the correct side effect of making the file
  executable.

So to me it looks like 'svn add' with autoprops is a working subsitute
for 'svn propset'.  Apparently both methods can be used to create a
symlink in Windows.  Neither can be used to create a symlink in Unix.

The bug in which setting the 'svn:special' property does not transform
a file into the appropriate special type is a different issue, not
specific to 'svn add' with auto-props.  That bug should not prevent us
from restricting 'propset' / 'propedit' / 'svn propdel' of svn:special,
if we so desire.

Final point: '--auto-props --config-option config:auto-props:*=a=b' is
certainly a bit cumbersome - we may want a new convenience option
'svn add --with-prop a=b'.  (Nothing to do with svn:special per se,
this could be used for any file props, as a shortcut.)  But for the
present thread, creating a symlink on Windows is today is already not
very intuitive for most users, I would guess.  They probably already
have to look up the 'propset' line in a tutorial or cookbook.

Peter


Re: [PATCH] enabling ruby in the subversion build

2012-11-08 Thread Michael Chletsos
Thank you!

Ruby community will be excited, I will continue to improve the tests.

On Thu, Nov 8, 2012 at 8:29 AM, Philip Martin
philip.mar...@wandisco.com wrote:
 Michael Chletsos mpchl...@gmail.com writes:

 Initial support for ruby 1.9.3 when creating swig bindings for subversion.

 I tweaked the format a little and committed in r1407206.  Thanks!

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


Re: [PATCH] enabling ruby in the subversion build

2012-11-08 Thread Philip Martin
Michael Chletsos mpchl...@gmail.com writes:

 Initial support for ruby 1.9.3 when creating swig bindings for subversion.

I tweaked the format a little and committed in r1407206.  Thanks!

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


Re: ra_serf: truncated responses by low Timeout are not handled graceful

2012-11-08 Thread Lieven Govaerts
Hi,

On Thu, Nov 8, 2012 at 1:34 PM, Philip Martin
philip.mar...@wandisco.com wrote:
 Lieven Govaerts l...@apache.org writes:

 Any truncated response should now result in an error from serf (since
 serf trunk r1678). It's not clear to me if this error
 SERF_ERROR_TRUNCATED_HTTP_RESPONSE was returned from serf but then
 ignored in svn, or not returned at all.

 I was using 1.1.x with the patches you and Ivan posted so it would not
 have been returning that error.

The patch I sent you earlier used another error code, but the result
should be the same. You saw that in your logs as error The server
sent an improper HTTP response.

That patch only checked bodies for responses with Content-Length
header. The REPORT response is chunked encoded, hence no error was
reported by serf when the server aborted the REPORT response
connection.
I've added a similar check for chunked-encoded response bodies in serf r1685.

My expectation is that with serf trunk up to date r1685 you'll now
only see the error The server sent a truncated HTTP response body.
instead of asserts, checksum or other svn errors.

Lieven


Issue #4239 'svn mergeinfo' should show a user-friendly summary

2012-11-08 Thread Julian Foad
C-Mike Pilato asks in 
http://subversion.tigris.org/issues/show_bug.cgi?id=4239,

Julian, what is the exit criteria for this issue's completion?  At what point 
do
we call it finished -- or at least finished enough that future improvements
can be tracked as unique issues?
I guess there are two questions.

1. Do folks feel it's sufficiently operative to be released in its current 
state, if it should happen that we get around to releasing 1.8 before I do any 
more work on it, and if no-one else does any more work on it?

2. What exactly should issue #4239 be tracking -- a specific actionable item, 
or an open list of ideas for improvement (by reference to the wiki page)?

Personally, I feel for question (1) yes, it's just about enough to be worth 
releasing, although of course I'd like more, and for (2) I'd be inclined to 
change the issue summary to enhancements to the mergeinfo summary, change the 
milestone to unscheduled, and the priority to a bit lower.

If no-one has other ideas, I'll update the issue accordingly.

- Julian


Re: Issue #4239 'svn mergeinfo' should show a user-friendly summary

2012-11-08 Thread C. Michael Pilato
On 11/08/2012 03:50 PM, Julian Foad wrote:
 C-Mike Pilato asks in
 http://subversion.tigris.org/issues/show_bug.cgi?id=4239,
 
 Julian, what is the exit criteria for this issue's completion?  At what
 point do we call it finished -- or at least finished enough that future
 improvements can be tracked as unique issues? I guess there are two
 questions.
 
 1. Do folks feel it's sufficiently operative to be released in its
 current state, if it should happen that we get around to releasing 1.8
 before I do any more work on it, and if no-one else does any more work on
 it?
 
 2. What exactly should issue #4239 be tracking -- a specific actionable
 item, or an open list of ideas for improvement (by reference to the wiki
 page)?
 
 Personally, I feel for question (1) yes, it's just about enough to be
 worth releasing, although of course I'd like more, and for (2) I'd be
 inclined to change the issue summary to enhancements to the mergeinfo
 summary, change the milestone to unscheduled, and the priority to a
 bit lower.
 
 If no-one has other ideas, I'll update the issue accordingly.

I would agree with (1).  Haven't used the feature extensively, but I did
play with a handful of scenarios just to see what it did.

I'm not a huge fan of open-ended issues such as you suggest for (2), because
every time a commit is made toward that issue, the dev has to evaluate
whether completion of the task has been achieved.  Not sure which is the
bigger evil, though:  open-ended long-running issues, or the proliferation
of tiny related task issues.  Maybe something in-between?  *shrug.  No
strong opinion here.

-- 
C. Michael Pilato cmpil...@collab.net
CollabNet  www.collab.net  Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: ra_serf: truncated responses by low Timeout are not handled graceful

2012-11-08 Thread Philip Martin
Lieven Govaerts l...@apache.org writes:

 My expectation is that with serf trunk up to date r1685 you'll now
 only see the error The server sent a truncated HTTP response body.
 instead of asserts, checksum or other svn errors.

I do see that error:

../src/subversion/svn/checkout-cmd.c:168: (apr_err=120106)
../src/subversion/libsvn_client/checkout.c:179: (apr_err=120106)
../src/subversion/libsvn_client/update.c:579: (apr_err=120106)
../src/subversion/libsvn_client/update.c:440: (apr_err=120106)
../src/subversion/libsvn_wc/adm_crawler.c:858: (apr_err=120106)
../src/subversion/libsvn_ra_serf/update.c:2564: (apr_err=120106)
../src/subversion/libsvn_ra_serf/util.c:2028: (apr_err=120106)
../src/subversion/libsvn_ra_serf/util.c:2009: (apr_err=120106)
../src/subversion/libsvn_ra_serf/util.c:1574: (apr_err=120106)
svn: E120106: ra_serf: The server sent a truncated HTTP response body.

I also see:

../src/subversion/svn/checkout-cmd.c:168: (apr_err=175009)
../src/subversion/libsvn_client/checkout.c:179: (apr_err=175009)
../src/subversion/libsvn_client/update.c:579: (apr_err=175009)
../src/subversion/libsvn_client/update.c:440: (apr_err=175009)
../src/subversion/libsvn_wc/adm_crawler.c:858: (apr_err=175009)
../src/subversion/libsvn_ra_serf/update.c:2564: (apr_err=175009)
../src/subversion/libsvn_ra_serf/util.c:2028: (apr_err=175009)
../src/subversion/libsvn_ra_serf/util.c:1850: (apr_err=175009)
svn: E175009: Premature EOF seen from server (http status=200)
../src/subversion/libsvn_ra_serf/util.c:1850: (apr_err=70014)
svn: E070014: End of file found

and with mod_deflate enabled I also see:

../src/subversion/svn/checkout-cmd.c:168: (apr_err=120104)
../src/subversion/libsvn_client/checkout.c:179: (apr_err=120104)
../src/subversion/libsvn_client/update.c:579: (apr_err=120104)
../src/subversion/libsvn_client/update.c:440: (apr_err=120104)
../src/subversion/libsvn_wc/adm_crawler.c:858: (apr_err=120104)
../src/subversion/libsvn_ra_serf/update.c:2564: (apr_err=120104)
../src/subversion/libsvn_ra_serf/util.c:2028: (apr_err=120104)
../src/subversion/libsvn_ra_serf/util.c:2009: (apr_err=120104)
../src/subversion/libsvn_ra_serf/update.c:989: (apr_err=120104)
svn: E120104: ra_serf: An error occurred during decompression

which is probably that same EOF error during inflation.

Using serf trunk@1685, subversion trunk@1407208.

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


Re: svn commit: r1407279 - in /subversion/trunk/subversion: svnadmin/main.c tests/cmdline/svntest/main.py

2012-11-08 Thread Stefan Sperling
On Thu, Nov 08, 2012 at 09:42:34PM -, cmpil...@apache.org wrote:
 Author: cmpilato
 Date: Thu Nov  8 21:42:34 2012
 New Revision: 1407279
 
 URL: http://svn.apache.org/viewvc?rev=1407279view=rev
 Log:
 Rather than continue the trend of accumulating new --pre-X.Y-compatible
 options to 'svnadmin create', make use of the new version parsing and
 comparison private functions to add a single new option that should
 work henceforth.

Nice!!!

 +  /* In 1.8, we figured out that we didn't have to keep extending this
 + madness indefinitely. */

xactly! :)


Re: Issue #4239 'svn mergeinfo' should show a user-friendly summary

2012-11-08 Thread Julian Foad
C. Michael Pilato wrote:

 On 11/08/2012 03:50 PM, Julian Foad wrote:
  C-Mike Pilato asks in
  http://subversion.tigris.org/issues/show_bug.cgi?id=4239,
 
  Julian, what is the exit criteria for this issue's completion?  
 At what  point do we call it finished -- or at least finished
 enough that future
  improvements can be tracked as unique issues?
 
 I guess there are two questions.
 
  1. Do folks feel it's sufficiently operative to be released in its
  current state, if it should happen that we get around to releasing 1.8
  before I do any more work on it, and if no-one else does any more work on
  it?
 
  2. What exactly should issue #4239 be tracking -- a specific actionable
  item, or an open list of ideas for improvement (by reference to the wiki
  page)?
 
  Personally, I feel for question (1) yes, it's just about enough to be
  worth releasing, although of course I'd like more, and for (2) I'd be
  inclined to change the issue summary to enhancements to the mergeinfo
  summary, change the milestone to unscheduled, and the 
 priority to a  bit lower.
 
  If no-one has other ideas, I'll update the issue accordingly.
 
 I would agree with (1).  Haven't used the feature extensively, but I did
 play with a handful of scenarios just to see what it did.
 
 I'm not a huge fan of open-ended issues such as you suggest for (2), because
 every time a commit is made toward that issue, the dev has to evaluate
 whether completion of the task has been achieved.  Not sure which is the
 bigger evil, though:  open-ended long-running issues, or the proliferation
 of tiny related task issues.  Maybe something in-between?  *shrug.  No
 strong opinion here.

Maybe now that we have the Wiki, it can start to take over the roles of 
wish-list, idea collecting and so on, that we have sometimes used the issue 
tracker for in the past.

- Julian


Re: Hanging tests mergeinfo-test.exe 12, 15 and skel-test.exe 4 on WinXP with VS2010 release build

2012-11-08 Thread Johan Corveleyn
On Thu, Nov 8, 2012 at 7:30 AM, Stefan Fuhrmann
stefan.fuhrm...@wandisco.com wrote:
 On Tue, Nov 6, 2012 at 10:29 PM, Johan Corveleyn jcor...@gmail.com wrote:

 On Tue, Nov 6, 2012 at 10:53 AM, Stefan Fuhrmann
 stefan.fuhrm...@wandisco.com wrote:
  On Mon, Nov 5, 2012 at 2:00 AM, Johan Corveleyn jcor...@gmail.com
  wrote:
 
  Before I look into this further, I'd like to know if anyone else has
  seen
  this or can reproduce this (or doesn't reproduce this with a similar
  environment) ...
 
  Tests 12 and 15 of mergeinfo-test.exe and test 4 of skel-test.exe hang
  on
  my machine (i.e. they don't do anything useful anymore, but do fully
  consume
  a cpu core until I kill them).
 
  This is with trunk@1405553. All other tests, except the above three,
  run
  successfully for me. I'm running Windows XP (32 bit).
 
  I only see this happening with a release build (shared; haven't tried
  with
  --disable-shared yet), when compiled with VS 2010.
 
  I do *not* see this (i.e. tests complete normally) with:
  - debug build made with VS 2010.
  - release or debug builds made with VSExpress 2008.
 
  Does anyone else have a release build on (any) Windows, made with VS
  2010,
  and can run these tests?
 
  I'm using these dependencies:
  Httpd 2.2.22
  Apr 1.4.5
  Apr-Util 1.4.1
  Apr-Iconv 1.2.1
  OpenSSL 1.0.1c
  Serf 1.1.1
  SQLite 3.7.14.1
  ZLib 1.2.6
 
 
  They don't hang for me but I'm using a slightly older SQLite version.
  However, there has been a similar issue under Linux when running
  the tests in parallel. Python 2.7.2(?) has a sync. issue. Maybe, try
  updating your python installation.

 Thanks a lot for taking a look, Stefan.

 I have tried again with SQLite 3.7.12, but the result is the same. You
 did use VC2010 for compilation, and tried with a release build, right?


 Yes, with SP1.

Aha, I don't have SP1 installed apparently (I remember I had some
problems with the installation of SP1, caused by general Windows
installation problems).

Now, I have pinpointed the exact revision where the problems start for
me. It's r1338286, where Bert enabled whole program optimizations for
release builds, in the vcnet_vcxproj.ezt file.

Maybe I'm running into some compiler bug (that has since been fixed in
SP1), related to whole program optimization. I'll try installing SP1
(but not right now, it's past 3 am now :-)) and see what happens.

Thanks for your help, Stefan.
-- 
Johan