Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Gert Kello
On 29 January 2016 at 02:40, Philip Martin 
wrote:

> > rep-cache.db files are different, 39.7 MB in 1.9 and 58.4 MB in 1.8
>
> The rep-cache is an SQLite file that contains a map of checksums to
> revisions and if stops working then Subversion will continue to allow
> commits but will do less, or no, deduplication.
>
> You can see how many entries there are with:
>
>   sqlite3 repo/db/rep-cache.db "select count(*) from rep_cache order"
>
> You can see the entries with:
>
>   sqlite3 repo/db/rep-cache.db "select hash,revision from rep_cache order
> by revision"
>
> I suspect 1.9 will show fewer entries, or many refuse to return any
> results at all if the file is corrupt.
>

You are correct, there are 341378 entries in 1.9 file vs 499837 in 1.8

And the failing de-duplication seems to be reason indeed. I have located
one revision which is 112 MB in 1.9 repository but 15 kB in 1.8 repo. The
commit is "add" (without history) of several files, some binary, some text,
total of 900+ MB. Binary files are zip, xls and xlsx, ~92 MB, text files
txt, xml, csv, ~840 MB

How can I test if the 1.9 has really corrupt sqlite db file? For me it
seems that it still gets updates (i.e. when I bring in new revisions with
svnsync.)

Gert


Re: BUG - SVN tries to connect to "akamai" - 15 second timeout - CRL - ctldl.windowsupdate.com

2016-01-29 Thread Daniel Shahaf
Cameron Sours wrote on Wed, Jan 27, 2016 at 20:32:45 +:
> The windows Crypto API was attempting to connect to Windows Update to
> retrieve Certificate revocation information (CRL - certificate
> revocation list). The default timeout for CRL retrieval is 15 seconds.
> The timeout for authentication on the server is 10 seconds; as 15 is
> greater than 10, this fails.

Thanks for sharing the problem and solution.

> **Suggested SVN Changes:**
> 
> 1.Enable Verbosity option on the command line for all operations

The config flag from (3), once added, will be settable from the
command-line through the --config-option flag.  Is that what you mean?

> 2.Add error ENUM name to stderr

This is already done in debug builds (windows) and maintainer builds
(unix).  When dealing with release builds, you can convert E170013 codes
to symbolic names with tools/dev/which_error.py.

The E730054 code you saw is the sum of
SOCECONNRESET = 10054
APR_OS_START_SYSERR = 72
(from tools/dev/aprerr.txt), which that script doesn't yet handle.

> 3.Add config flag for Serf Library debug logging.
> 

Cheers,

Daniel


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Philip Martin
Gert Kello  writes:

> You are correct, there are 341378 entries in 1.9 file vs 499837 in 1.8
>
> And the failing de-duplication seems to be reason indeed. I have located
> one revision which is 112 MB in 1.9 repository but 15 kB in 1.8 repo. The
> commit is "add" (without history) of several files, some binary, some text,
> total of 900+ MB. Binary files are zip, xls and xlsx, ~92 MB, text files
> txt, xml, csv, ~840 MB
>
> How can I test if the 1.9 has really corrupt sqlite db file? For me it
> seems that it still gets updates (i.e. when I bring in new revisions with
> svnsync.)

Check the index with:

  sqlite3 db/rep-cache.db "pragma integrity_check"

Compare the ordered list:

  sqlite3 db/rep-cache.db "select hash,revision from rep_cache order by 
revision"

with the 1.8 list and you may be able to identify which revisions are
missing from the 1.9 rep-cache.  There isn't any way to fix the missing
deduplication other than a dump/load, but it would be interesting to
find out why it failed.  Which method did you use to write during sync:
file, svn or http?

-- 
Philip Martin
WANdisco


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Gert Kello
> I have a svn 1.9 repository, created with svnsync, that has ~15

> > revisions and size about 45 GB.
>
> 300kB/rev is quite large, like >1 MB of changes before
> compression - on average.  Are these office documents,
> large xml / html files or simply many files per commit?
>
>
The content is mixed. Quite many small, source code commits. But office
documents and zip archives as well. There are even few extremely huge
commits, biggest one is 3+GB, one 800+MB and one 500+MB (as per revision
file size in db/revs folder)



> > Due to some issues in svn-all-fast-export I
> > wanted to have svn 1.8 version repository so I downgraded it by doing
> > svnadmin (v 1.9) dump /svnadmin (v 1.8) load cycle. I was surprised that
> > the size of v 1.8 repository is "only" 37.5 GB
> > I tried to compare content of db\revs folder: some files are bigger in
> 1.8
> > repo, some in 1.9 repo.
>
> For the record: you already said elsewhere in this
> thread that you used 1.8 to create the 1.8 repo and
> 1.9 for the 1.9.  I also assume standard settings
> as in "no fsfs.conf tweaks".
>
>
Correct.


> There is a simple way to compare the "content size"
> your repositories.  Run the 1.9 svnfsfs tool on both:
>
> svnfsfs stats -M 1000 /path/to/repo > /some/output/path
>
> It basically reads the whole repository, groups and
> aggregates the item sizes and produces a long report.
> Number of changes and node revision should be more
> or less (exactly?) the same.  If they are, you'll
> be good.
>
> "Representation" size is where the numbers will differ.
> Looking at the differences in detail, you should be able
> to pin down one or two file extensions that account for
> most of the increase.  It would be interesting to learn
> what is special about them ...
>

Yes, number of changes and number of node revision records are identical.
Number of representation do differ (1.744.149 @1.8 vs 1.901.312 @1.9)
The "nodes total", "directory noderevs" and "file noderevs" numbers are
identical

The "Largest representations:" sections shows that 1.9 has failed to
de-duplicate several files (executables in this case)

The "Extensions by number of representations:" shows that all extensions
have bigger number of representations in 1.9 repo

The size if representations is most increased for .exe and .pdf extensions,
where .exe causes 5GB increase and .pdf 500MB. Several types cause increase
~300MB, "others" have +1GB

The dump/load cycle into 1.9 is finished as well, now it is 36.2 GB (less
compared to 1.8 which was 37.5 GB). Both 1.9->1.9 and 1.8->1.9 resulted
almost identical repos when comparing files byte by byte (the exception is
UUID file)... Which makes me wonder if I dumped the same rep twice. Too bad
the windows cmd doesn't retain command history.

Gert


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Gert Kello
On 29 January 2016 at 11:52, Philip Martin 
wrote:

> > How can I test if the 1.9 has really corrupt sqlite db file? For me it
> > seems that it still gets updates (i.e. when I bring in new revisions with
> > svnsync.)
>
> Check the index with:
>
>   sqlite3 db/rep-cache.db "pragma integrity_check"
>

Says "ok"


> Compare the ordered list:
>
>   sqlite3 db/rep-cache.db "select hash,revision from rep_cache order by
> revision"
>
> with the 1.8 list and you may be able to identify which revisions are
> missing from the 1.9 rep-cache.  There isn't any way to fix the missing
>

They are identical up to rev 91450. And then there's a large gap between
revisions 91450 and 155838. 155838 seems to be where new "svnsync" was
started, there's gap of time stamps in revision files.
91450 does not seem to be special in term of sync sequence. About 60
revisions within same minute, previous two in same second, next one 4
seconds later

(How does svnsync work? "find last rev at source and sync up to that" or
"sync while next revision present in source"? If latter then first sync
failed for some reason... If first then it probably ran till completion.
But does it actually matter?)


> deduplication other than a dump/load, but it would be interesting to
> find out why it failed.


Should I look at some svn oog information about the revisions where is
started to fail? Anything special to look for? Or should we assume
"antivirus or something else opened the file so that svnsync was unable to
write it"? The sync for this rev has been executing in the middle of day so
it is possible I tried to peek "how big the repo is at disk".


> Which method did you use to write during sync:
> file, svn or http?
>

file:///


Gert


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Philip Martin
Gert Kello  writes:

> They are identical up to rev 91450. And then there's a large gap between
> revisions 91450 and 155838. 155838 seems to be where new "svnsync" was
> started, there's gap of time stamps in revision files.
> 91450 does not seem to be special in term of sync sequence. About 60
> revisions within same minute, previous two in same second, next one 4
> seconds later

The rep-cache failure almost certainly explains the size difference.

> (How does svnsync work? "find last rev at source and sync up to that" or
> "sync while next revision present in source"? If latter then first sync
> failed for some reason... If first then it probably ran till completion.
> But does it actually matter?)

svnsync uses revision properties on r0 that get updated as the sync
proceeds:

   svnlook proplist -v --revprop -r0 path/to/repo

> Should I look at some svn oog information about the revisions where is
> started to fail? Anything special to look for? Or should we assume
> "antivirus or something else opened the file so that svnsync was unable to
> write it"? The sync for this rev has been executing in the middle of day so
> it is possible I tried to peek "how big the repo is at disk".

The SQLite code expects there to be contention for the file and has a
timeout (10s as I recall).  In your case something appears to have
blocked access for an extended period of time.

-- 
Philip Martin
WANdisco


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Stefan Sperling
On Fri, Jan 29, 2016 at 12:42:53PM +0200, Gert Kello wrote:
> Anything special to look for? Or should we assume
> "antivirus or something else opened the file so that svnsync was unable to
> write it"?
> 
> > Which method did you use to write during sync:
> > file, svn or http?
> >
> 
> file:///

This makes me wonder if you used file:// on top of a network drive of
some kind? SQlite is known to have problems with network drives (as
hinted at in http://sqlite.org/faq.html#q5).


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Gert Kello
> > Which method did you use to write during sync:

> > > file, svn or http?
> > >
> >
> > file:///
>
> This makes me wonder if you used file:// on top of a network drive of
> some kind? SQlite is known to have problems with network drives (as
> hinted at in http://sqlite.org/faq.html#q5).
>

Well, it is virtual machine somewhere in our server rack. Really not sure
what is the underlying hardware. But for the virtual machine itself it is
"local" disk.

Gert


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Gert Kello
I managed to replay only to Philip first, so I have a chance to write
changed/better answer to list :)

> Should I look at some svn oog information about the revisions where is

> > started to fail? Anything special to look for? Or should we assume
> > "antivirus or something else opened the file so that svnsync was unable
> to
> > write it"? The sync for this rev has been executing in the middle of day
> so
> > it is possible I tried to peek "how big the repo is at disk".
>
> The SQLite code expects there to be contention for the file and has a
> timeout (10s as I recall).  In your case something appears to have
> blocked access for an extended period of time.
>
>
The revision file write times:
91448 -> 13:16:44
91449 -> 13:16:44
91450 -> 13:16:44
91451 -> 13:16:48
91452 -> 13:16:48
91452 -> 13:17:00

91450 was the last one that has data is sqlite database.
91451 has nothing in 1.8 db neither
91452 has one entry in 1.8 db.

So the 10 sec timeout is possible. However, I peeked into the event logs;
seems like our server is logging all process starts/ends. I see that at
13:16:48, cmd.exe process was started. 13:16:49 a wermgr.exe is started -
its windows error reporting tool.  And 13:16.50 a rundll32.exe is started.
The wermgr.exe ends at 13:16.50 and rundll32.exe at 13.16.55, and after
that, next cmd.exe starts at 13:16:59

For me it seems those "cmd.exe" starts are related to svnsync, at least
there are many of those during sync. I tried to find the error report
generated but failed. Most likely do not know how to search it correctly.


Gert


Re: Svn 1.9 repository 20% bigger than svn 1.8 repository

2016-01-29 Thread Philip Martin
Gert Kello  writes:

> The revision file write times:
> 91448 -> 13:16:44
> 91449 -> 13:16:44
> 91450 -> 13:16:44
> 91451 -> 13:16:48
> 91452 -> 13:16:48
> 91452 -> 13:17:00
>
> 91450 was the last one that has data is sqlite database.
> 91451 has nothing in 1.8 db neither
> 91452 has one entry in 1.8 db.
>
> So the 10 sec timeout is possible. However, I peeked into the event logs;
> seems like our server is logging all process starts/ends. I see that at
> 13:16:48, cmd.exe process was started. 13:16:49 a wermgr.exe is started -
> its windows error reporting tool.  And 13:16.50 a rundll32.exe is started.
> The wermgr.exe ends at 13:16.50 and rundll32.exe at 13.16.55, and after
> that, next cmd.exe starts at 13:16:59
>
> For me it seems those "cmd.exe" starts are related to svnsync, at least
> there are many of those during sync. I tried to find the error report
> generated but failed. Most likely do not know how to search it correctly.

Subversion has repository handles and only attempts to open the
rep-cache once for each repository handle, the result is cached in the
handle.  Running svnsync could open multiple handles but usually reuses
a single handle.  In the case of file:// the svnsync client simply
reuses the handle.  In the case of svn:// and http:// the svnsync client
does the sync over one connection and the server caches the handle for
the connection.

If the rep-cache fails to open when first accessed then this failure can
be cached for the entire svnsync run with the result that the entire
svnsync run will do no deduplication.  This is probably a good thing if
the problem is a corrupt file that will always fail to work.  It is less
good for a transient problem cause by interference from some Windows
anti-virus/indexing.

-- 
Philip Martin
WANdisco


'D:\Development\SVN\Releases\TortoiseSVN-1.9.2\ext\subversion\subversion\libsvn_client\cleanup.c' line 227: assertion failed (svn_dirent_is_absolute(dir_abspath))

2016-01-29 Thread rosa scarz
---
Subversion Exception!
---
Subversion encountered a serious problem.
Please take the time to report this on the Subversion mailing list
with as much information as possible about what
you were trying to do.
But please first search the mailing list archives for the error message
to avoid reporting the same problem repeatedly.
You can find the mailing list archives at
http://subversion.apache.org/mailing-lists.html

Subversion reported the following
(you can copy the content of this dialog
to the clipboard using Ctrl-C):

In file
 
'D:\Development\SVN\Releases\TortoiseSVN-1.9.2\ext\subversion\subversion\libsvn_client\cleanup.c'
 line 227: assertion failed (svn_dirent_is_absolute(dir_abspath))
---
Aceptar
---


Re: 'D:\Development\SVN\Releases\TortoiseSVN-1.9.2\ext\subversion\subversion\libsvn_client\cleanup.c' line 227: assertion failed (svn_dirent_is_absolute(dir_abspath))

2016-01-29 Thread Andreas Stieger
Hi,

rosa scarz wrote:
> Please take the time to report this on the Subversion mailing list
> with as much information as possible about what
> you were trying to do.

You did not do that.

> In file
>  
> 'D:\Development\SVN\Releases\TortoiseSVN-1.9.2\ext\subversion\subversion\libsvn_client\cleanup.c'
>  line 227: assertion failed (svn_dirent_is_absolute(dir_abspath))

Update to 1.9.3 and try again.

Andreas


Re: svn-all-fast-export crash (was: Re: Svn 1.9 repository 20% bigger than svn 1.8 repository)

2016-01-29 Thread Ryan Schmidt

> On Jan 28, 2016, at 1:54 AM, Gert Kello  wrote:
> 
> I have a svn 1.9 repository, created with svnsync, that has ~15 revisions 
> and size about 45 GB. Due to some issues in svn-all-fast-export I wanted to 
> have svn 1.8 version repository so I downgraded it by doing svnadmin (v 1.9) 
> dump /svnadmin (v 1.8) load cycle.

Gert,

I was going to mention that I'm also trying to use svn-all-fast-export with a 
repository of ~145000 revisions, created by svnsync 1.9 from an older 
repository (which was at one point converted from cvs), and that I'm also 
having issues, specifically svn-all-fast-export crashes after every import, and 
branches and tags don't get imported. Then I noticed that you already commented 
on the bug report I filed about that:

https://github.com/svn-all-fast-export/svn2git/issues/5

I'll try doing svn-all-fast-export with Subversion 1.8 libraries instead to 
confirm if that fixes it for me too.