RE: Issue with browsing a SVN 1.9.2, schema 7, packed, repository
Hi Stefan, Thanks for your email. We've done two things. One, we realized that our tag folder is to flat and we made an archive organized by release, this moved about 4000 tags in a subfolder. Second, the settings you suggested also made a big difference , this is what we ended up with: # Enable a 1 Gb Subversion data cache for both fulltext and deltas. SVNInMemoryCacheSize 1048576 SVNCacheTextDeltas On SVNCacheFullTexts On MaxMemFree 4096 This fixed the issue we had and also improved performance in general. Thank you so much for your help. Thanks, Michael Cotrut Consultant, DevCentre Canada Border Services Agency Place Vanier, 333 North River road, 17th floor, Tower A, 17th Floor 17077 Ottawa, Ontario 343-291-6097 Office -Original Message- From: Stefan Fuhrmann [mailto:stef...@apache.org] Sent: December 10, 2015 7:42 AM To: users@subversion.apache.org; Cotrut, Michael Subject: Re: Issue with browsing a SVN 1.9.2, schema 7, packed, repository > Hi, > > We've been using SVN for a couple of years, recently we migrated from 1.7.6 > to 1.9.2. We also > migrated (dump and load) some of the larger repositories to schema 7 and > packed them. So, you have not tried the old repository format with 1.9.2? If you should have a copy of that available (backup?), put that one onto the server in a separate dir/location, e.g. "my-repo-old". Test whether the problem occurs with the old format as well. > One of this recently migrated repositories ( SVN 1.9.2 schema 7 repository) > is about 100 > GB mostly jar files under tags. About 9000 tags. Format 7 will hardly give you any advantage with large binary files without deep histories. Results may differ, though. 9000 entries in a single directory is a lot but not excessive. > When browsing the root/tags with TortoiseSVN 1.9.2 the operation hangs and > causes the server > to recycle after a couple of minutes. This happens consistently every single > time we try > to browse the root/tags of the repository. > We've got same issue when testing SmartSVN. It sounds like your server is running out of memory. Observe the memory usage of the httpd.exe processes (there may be 2 of them) while running the request. > The same browsing operation was working in 1.7.6, would take a couple of > minutes (4-5) but > was working. My guess is that SVN 1.9.2 simply uses slightly more memory than 1.7.6 did. A normal 'svn ls -v' should take only a second or so. The long execution time is a strong indicator that your server is doing something expensive and possibly memory-consuming. So, while 1.7.6 might have kept it just below the out-of-memory threshold, 1.9.2 needs a few percent more and crosses it. > Faulting application httpd.exe, version 2.2.29.0, time stamp 0x5550b4ed, > faulting module libsvn_subr-1.dll, > version 1.9.2.65436, time stamp 0x561e5208, exception code 0x4015, fault > offset 0x00026624, > process id 0x968, application start time 0x01d131b996a721ff. 0x4015 is basically an "abort". We do this when we need more memory but can't get it. 9000 directory entries is around the capacity of the default cache configuration (16MB). Make sure, you set the cache to at least 100MB ("SVNInMemoryCacheSize 102400" in httpd.conf) but NOT larger than 1GB in case you are using 32 bit Apache. Set "MaxMemFree" in httpd.conf to something like 4096. The default of 0 is problematic. Also, there is a fair chance that you are using path-based authorization (authz). Disable it and see whether that makes a difference. E.g. create a separate for the same repo without authz. Let us know what you found. -- Stefan^2.
Re: Issue with browsing a SVN 1.9.2, schema 7, packed, repository
On Thu, Dec 10, 2015 at 01:41:40PM +0100, Stefan Fuhrmann wrote: > 0x4015 is basically an "abort". We do this when we need > more memory but can't get it. > > 9000 directory entries is around the capacity of the default > cache configuration (16MB). Make sure, you set the cache to > at least 100MB ("SVNInMemoryCacheSize 102400" in httpd.conf) > but NOT larger than 1GB in case you are using 32 bit Apache. > > Set "MaxMemFree" in httpd.conf to something like 4096. The > default of 0 is problematic. Would it be feasible to avoid crashing when the cache is misconfigured, or even set to the default setting, so users see a performance drop instead of a crash? I know our code is very lazy about checking allocations in general (which I don't like, but that's besides the point). In this context some additional effort into avoiding crashes would be a worthwhile investment.
Creating working copy without checkouting- to use svn add and svn ci form cron for /home
Dear Subversion experts, I would like to monitor /home directory for X-host that is used by 20 X-terminals for eductional classroom. I want to monitor students work flor evalution a to find out who is cheating by copying others programs. I was done svn import for /home succesfully. I do not want to checkout repository to the /home as it is risky svn commit does not work as /home is not working copy o the repository svn import does not work as well becuase of duplicity Is there any way to setup /home as working copy without checkout,please? I was mentioned that I do chcekout in another directory and simply copy .svn directory into /home as a workarround. Does anybody know if it will work,please ? Is it correct or it is solution with as less as possible incorrectness, please? I look forward hearing from you Yours faithfully Peter Fodrek
Re: Creating working copy without checkouting- to use svn add and svn ci form cron for /home
Your questions are somewhat confusing, because you seem to state a number of different problems that you want to solve: - which students are copying? - how to do a checkout without a working copy? - can you just copy the .svn folder of a working copy some place else? (And expect what to work, exactly?) I think your first question is bigger than this mailing list, and I don't see how Subversion can help you solve that problem. Your second question doesn't make sense to me, insofar as I don't understand what you mean by a working copy without a checkout? Do you mean you want person A to checkout, and B uses a working copy? Or do you mean you want a checkout at one point in time, and then later use of the same working copy when the server is not available? For your third question, I have a suspicion you'll be unsatisfied trying that, as the first thing you'll need to do is an "svn revert -R ." to restore the missing files, which will effective amount to having a clean checkout. Eric. On Fri, Dec 11, 2015 at 7:35 AM, Peter Fodrek wrote: > Dear Subversion experts, > > I would like to monitor /home directory for X-host that is used by > 20 X-terminals for eductional classroom. > I want to monitor students work flor evalution a to find out who is > cheating > by copying others programs. > > I was done svn import for /home succesfully. > I do not want to checkout repository to the /home as it is risky > > svn commit does not work as /home is not working copy o the repository > svn import does not work as well becuase of duplicity > > > Is there any way to setup /home as working copy without checkout,please? > > > I was mentioned that I do chcekout in another directory and simply copy > .svn > directory into /home as a workarround. Does anybody know if it will > work,please ? Is it correct or it is solution with as less as possible > incorrectness, please? > > > I look forward hearing from you > > Yours faithfully > > Peter Fodrek >
Re: Unexpected HTTP status 400 'Bad request'.
On 2015-12-08 11:16, Stefan Sperling wrote: please try raising HTTPD's LogLevel to "Debug" or higher. See http://httpd.apache.org/docs/2.4/mod/core.html#loglevel Perhaps that will shed more light on the problem. Hi All. I appreciate the time you guys are taking to help me. Thank you. Here is the output of the *Apache2 error.log* after setting the level to *DEBUG* and re-running the test. *Here is the output from a shell prompt on the Subversion server:* myself@myserver:~/Folder$ svn checkout https://myserver/svn/repository/dev/trunk --username myself dev Passphrase for '/home/myself/Folder/myself.p12': *** Adev/code Adev/code/provider Adev/code/provider/Investor Adev/code/provider/Investor/Properties Adev/code/provider/Plugin Adev/code/provider/Plugin/Properties Adev/code/provider/Client Adev/code/provider/Client/Properties Adev/code/provider/ClientInstitutional Adev/code/provider/Client/Price-wrapper.xml Adev/code/provider/Client/Account.xsd Adev/code/provider/Client/History-sample.xml Adev/code/provider/ClientInstitutional/migrate.xml svn: E175002: Unexpected HTTP status 400 'Bad request' on '/svn/repository/!svn/rvr/3062/dev/trunk/code/provider/Investor/Investor.cs' myself@myserver:~/Folder$ *Most of the Apache2 error.log on the server is filled with GET requests (2,198 of them). Each of the GET requests is made up of 4 lines that look like this:** * [Fri Dec 11 17:40:07.405190 2015] [authz_core:debug] [pid 9390] mod_authz_core.c(809): [client 127.0.0.1:46222] AH01626: authorization result of Require valid-user : denied (no authenticated user yet) [Fri Dec 11 17:40:07.405199 2015] [authz_core:debug] [pid 9390] mod_authz_core.c(809): [client 127.0.0.1:46222] AH01626: authorization result of : denied (no authenticated user yet) [Fri Dec 11 17:40:07.405490 2015] [authz_svn:debug] [pid 9390] mod_authz_svn.c(450): [client 127.0.0.1:46222] Path to authz file is /root/subversion/.apache-auth [Fri Dec 11 17:40:07.405502 2015] [authz_svn:info] [pid 9390] [client 127.0.0.1:46222] Access granted: 'myself' *GET repository:/dev* *The first few requests are OPTIONS and PROPFIND, the rest are all GET requests. Here are the first few (imagine each being made up of the 4 lines above):** * ... OPTIONS repository:/dev/trunk ... OPTIONS repository:/dev/trunk ... OPTIONS repository:/dev/trunk ... PROPFIND repository:/dev/trunk ... OPTIONS repository:/dev/trunk ... REPORT repository:/dev/trunk ... GET repository:/dev ... GET repository:/ ... REPORT repository: ... GET repository:/dev/trunk ... GET repository:/dev/trunk/code ... GET repository:/dev/trunk/code/provider ... GET repository:/dev/trunk/code/provider/Investor ... GET repository:/dev/trunk/code/provider/Investor/Investor.cs ... GET repository:/dev/trunk/code/provider/Investor/provider.Investor.csproj ... GET repository:/dev/trunk/code/provider/Investor/migrate.xml ... GET repository:/dev/trunk/code/provider/Investor/transform.xml ... GET repository:/dev/trunk/code/provider/Investor/data.cs ... GET repository:/dev/trunk/code/provider/Investor/data.xml ... GET repository:/dev/trunk/code/provider/Investor/Properties ... GET repository:/dev/trunk/code/provider/Investor/Properties/AssemblyInfo.cs ... (continues on for 2,198 requests) * **After removing all the GET requests, here is what remains in the Apache2 error.log file:** * [Fri Dec 11 17:40:02.071015 2015] [ssl:info] [pid 9390] [client 127.0.0.1:46222] AH01964: Connection to child 0 established (server my.server.org:443) [Fri Dec 11 17:40:02.071400 2015] [ssl:debug] [pid 9390] ssl_engine_kernel.c(1940): [client 127.0.0.1:46222] AH02044: No matching SSL virtual host for servername myserver found (using default/first virtual host) [Fri Dec 11 17:40:07.368155 2015] [ssl:debug] [pid 9390] ssl_engine_kernel.c(1397): [client 127.0.0.1:46222] AH02275: Certificate Verification, depth 1, CRL checking mode: none [subject: CN=CertificateAuthority,OU=Development,O=MyCompany,L=MyTown,ST=MyState,C=CA / issuer: CN=CertificateAuthority,OU=Development,O=MyCompany,L=MyTown,ST=MyState,C=CA / serial: D8F3B73A249AB90D / notbefore: Dec 7 04:48:38 2011 GMT / notafter: Dec 4 04:48:38 2021 GMT] [Fri Dec 11 17:40:07.368283 2015] [ssl:debug] [pid 9390] ssl_engine_kernel.c(1397): [client 127.0.0.1:46222] AH02275: Certificate Verification, depth 0, CRL checking mode: none [subject: CN=myself,OU=Development,O=MyCompany,ST=MyState,C=CA / issuer: CN=CertificateAuthority,OU=Development,O=MyCompany,L=MyTown,ST=MyState,C=CA / serial: 100124 / notbefore: Dec 7 04:53:34 2011 GMT / notafter: Dec 4 04:53:34 2021 GMT] [Fri Dec 11 17:40:07.368923 2015] [ssl:debug] [pid 9390] ssl_engine_kernel.c(1860): [client 127.0.0.1:46222] AH02041: Protocol: TLSv1.2, Cipher: ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) [Fri Dec 11 17:40:07.369230 2015] [ssl:debug] [pid 9390] ssl_engine_kernel.c(245): [client 127.0.0.1:46222] AH02034