Re: "Offset too large" error when packing repository in FSFS 7 format

2016-08-29 Thread Stefan Fuhrmann

On 27.08.2016 10:59, Stefan Fuhrmann wrote:

On 22.08.2016 11:38, Radek Krotil wrote:
The repository contains 334243 revisions total. As suggested by 
Stefan, I did the grep on the problematic repo file. The rev 203908 
is about 231 MB big. This confirms my suspicion that the problem is 
related to big revision data.

Well, that is at least conceivable: Larger revisions
with many changed nodes come with larger index
information. There might be bugs along the line of
"this time we need one more page than usually".


Update: It seems that is exactly what is happening.
Whenever a pack would contain >30 "items",
or roughly 150 changes / rev on average, pack
will always fail.

From what I can see, no data will be corrupted. You
may even retry packing with a fixed version of svnadmin
and the process should complete just fine.

I'm now able to reproduce the issue and fixes should
be available with the next 1.9.x release.

A workaround is possible with the attached patch
(you may raise the limit even further if need be and
you are using 64 bit binaries).

-- Stefan^2.
Index: subversion/libsvn_fs_fs/pack.c
===
--- subversion/libsvn_fs_fs/pack.c	(revision 1757331)
+++ subversion/libsvn_fs_fs/pack.c	(working copy)
@@ -87,7 +87,7 @@
 /* Maximum amount of memory we allocate for placement information during
  * the pack process.
  */
-#define DEFAULT_MAX_MEM (64 * 1024 * 1024)
+#define DEFAULT_MAX_MEM (512 * 1024 * 1024)
 
 /* Data structure describing a node change at PATH, REVISION.
  * We will sort these instances by PATH and NODE_ID such that we can combine


RE: "Offset too large" error when packing repository in FSFS 7 format

2016-08-29 Thread Radek Krotil
Thank you for the update and fix, Stefan!



I guess it’s no longer necessary to answer your questions from the previous
e-mail if you managed to reproduce the problem and provide a fix/workaround.



Looking forward to the new version of Subversion.



Best regards,

Radek Krotil



*From:* Stefan Fuhrmann [mailto:stef...@apache.org]
*Sent:* Monday, August 29, 2016 10:14 AM
*To:* Radek Krotil; Daniel Shahaf
*Cc:* users@subversion.apache.org
*Subject:* Re: "Offset too large" error when packing repository in FSFS 7
format



On 27.08.2016 10:59, Stefan Fuhrmann wrote:

On 22.08.2016 11:38, Radek Krotil wrote:

Well, that is at least conceivable: Larger revisions
with many changed nodes come with larger index
information. There might be bugs along the line of
"this time we need one more page than usually".


Update: It seems that is exactly what is happening.
Whenever a pack would contain >30 "items",
or roughly 150 changes / rev on average, pack
will always fail.

>From what I can see, no data will be corrupted. You
may even retry packing with a fixed version of svnadmin
and the process should complete just fine.

I'm now able to reproduce the issue and fixes should
be available with the next 1.9.x release.

A workaround is possible with the attached patch
(you may raise the limit even further if need be and
you are using 64 bit binaries).

-- Stefan^2.


Re: How to remove a revision from the achieve

2016-08-29 Thread Nico Kadel-Garcia
On Sun, Aug 28, 2016 at 11:38 PM, Eckard Klotz  wrote:
> Hello everybody.
>
> Unfortunately I have added something wrong into the my svn archive. I know
> that it is possible how to remove it from the users content. But the file is
> still part of the archive and I want to undo the adding of the file.
>
> Is it possible to remove it from the whole archive again by deleting the
> last revisions?
> Or it is possible to copy an archive just until a specific revision with a
> command like hotcopy?
>
> Best regards,
>
> Eckard Klotz.

Simple answer: not without setting up a new Subversion repository,
with a new URL and the revision excluded, and making all your clients
switch to it.

The functionality you're looking for is the "obliterate" function. It
is perhaps the oldest feature request for Subversion, and it has never
been successfully implemented.


Re: How to remove a revision from the achieve

2016-08-29 Thread Daniel Shahaf
Nico Kadel-Garcia wrote on Mon, Aug 29, 2016 at 10:23:03 -0400:
> Simple answer: not without setting up a new Subversion repository,
> with a new URL and the revision excluded, and making all your clients
> switch to it.

To clarify: the "switch" Nico is referring to isn't an invocation of
'svn switch' but a "delete the current working copy and checkout a new
one" procedure.

The URL can stay the same, but the UUID has to change.

Cheers,

Daniel


Re: How to remove a revision from the achieve

2016-08-29 Thread Nico Kadel-Garcia
On Mon, Aug 29, 2016 at 12:53 PM, Daniel Shahaf  wrote:
> Nico Kadel-Garcia wrote on Mon, Aug 29, 2016 at 10:23:03 -0400:
>> Simple answer: not without setting up a new Subversion repository,
>> with a new URL and the revision excluded, and making all your clients
>> switch to it.
>
> To clarify: the "switch" Nico is referring to isn't an invocation of
> 'svn switch' but a "delete the current working copy and checkout a new
> one" procedure.
>
> The URL can stay the same, but the UUID has to change.

Keeping the same URL with a fundamentally different repository, due to
revision deletion,  is asking to hurt yourself. Never do this.