Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0000366 [SVNKit] bug major always 2010-03-29 06:16 2010-04-02 21:42
Reporter conor View Status public  
Assigned To oka
Priority normal Resolution open  
Status assigned   Product Version 1.3.x
Summary 0000366: Large diffs with zero'ed file take inordinately long times (maybe forever)
Description We have a customer who has a large text file (in the order of 60 MBytes) which was then replaced with a file containing the same number of zero bytes. Attempting to diff the revisions causes svnkit to either hang or get memory exceptions.

You can see the diff between svn and jsvn operation in the additional information. I had to kill the jsvn run after about 2 hours. The process consumed 95% of one CPU for the duration.

The attached dump exhibits the problem (the test file is about 80M)
Additional Information native svn:

time svn diff -r 2:3 file:///Users/conor/work/fe22/repo/svn/test/ [^] > /dev/null

real 0m8.545s
user 0m5.506s
sys 0m1.631s

svnkit:

time ./jsvn diff -r 2:3 file:///Users/conor/work/fe22/repo/svn/test/ [^] > /dev/null
^C^C./jsvn: line 22: 2016 Killed "$JAVA_HOME/bin/java" $SVNKIT_VM_OPTIONS -Xmx2048m -cp $SVNKIT_CP $SVNKIT_MAINCLASS "$@"

real 117m23.926s
user 111m17.452s
sys 5m38.792s

Tags No tags attached.
planned for version 1.2.x
Attached Files bz2 file icon largezeroed.dump.bz2 [^] (10,327 bytes) 2010-03-29 06:16

- Relationships

-  Notes
(0000799)
oka (administrator)
2010-03-30 20:44

Hello,

Thank you for reporting this issue and providing test data, I'll investigate it soon.
(0000801)
oka (administrator)
2010-04-02 21:42

Hello,

To resolve this problem with the current version of SVNKit, please set the following system property for your application:

-Dq.sequence.memory-threshold=128M

This will make sequence library that is used for diff, to process files smaller than 128M in memory. Without this property set, files larger than 1M are processed with disk cache usage, approach that appears to be extremely slow in this case.

We'll consider increasing default threshold value for the next version of SVNKit.

- Issue History
Date Modified Username Field Change
2010-03-29 06:16 conor New Issue
2010-03-29 06:16 conor File Added: largezeroed.dump.bz2
2010-03-30 20:43 oka Status new => assigned
2010-03-30 20:43 oka Assigned To => oka
2010-03-30 20:44 oka Note Added: 0000799
2010-04-02 21:42 oka Note Added: 0000801


Mantis 1.1.0[^]
Copyright © 2000 - 2007 Mantis Group
Powered by Mantis Bugtracker