{"thread":{"id":"34358","subject":"git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","startedAt":"2013-07-05T20:48:32Z","lastAt":"2013-07-06T03:41:53Z","messageCount":7,"participants":["David Rothenberger","Kyle McKay"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"222652","messageId":"kr7beq$ilk$1@ger.gmane.org","threadId":"34358","inReplyTo":null,"subject":"git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","fromName":"David Rothenberger","fromEmail":"daveroth@acm.org","sentAt":"2013-07-05T20:48:32Z","receivedAt":"2013-07-05T20:48:32Z","isPatch":false,"sender":{"key":"daveroth@acm.org","avatar":null},"body":"I recently upgraded my Subversion server to 1.8.0 and started\nreceiving the following error from \"git svn fetch\":\n\nTemp file with moniker 'svn_delta' already in use at /usr/lib/perl5/vendor_perl/5.10/Git.pm line 1024.\n\nThis occurs only when using an http:// URL; svn:// URLs work fine.\n\nI think this is related to skelta mode [1] with serf. When I add\n\"SVNAllowBulkUpdates Prefer\" to mod_dav configuration, the error\ngoes away. (Similarly, if I add \"http-bulk-updates = yes\" to\n~/.subversion/servers.)\n\nThe server is running WanDisco's 1.8.0 distribution on 64-bit Debian\n7.0. The client is Cygwin: svn version 1.8.0 and git version\n1.8.3.2.\n\nI initially reported this to the subversion users mailing list, but\nwas (not so politely) told to report this to the git-svn authors.\nI'm not so sure, since the problem goes away simply by downgrading\nthe subversion-perl bindings back to 1.7.\n\n[1] http://subversion.apache.org/docs/release-notes/1.8.html#serf-skelta-default\n\n-- \nDavid Rothenberger  ----  daveroth@acm.org\n\nTeutonic:\n        Not enough gin.\n"},{"id":"222653","messageId":"E82AC74E-3294-415D-8E59-97DDD213B11A@gmail.com","threadId":"34358","inReplyTo":"kr7beq$ilk$1@ger.gmane.org","subject":"Re: git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","fromName":"Kyle McKay","fromEmail":"mackyle@gmail.com","sentAt":"2013-07-05T22:58:27Z","receivedAt":"2013-07-05T22:58:27Z","isPatch":false,"sender":{"key":"mackyle@gmail.com","avatar":"https://avatars.githubusercontent.com/u/813346?v=4"},"body":"On Jul 5, 2013, at 13:48, David Rothenberger wrote:\n> I recently upgraded my Subversion server to 1.8.0 and started\n> receiving the following error from \"git svn fetch\":\n>\n> Temp file with moniker 'svn_delta' already in use at /usr/lib/perl5/ \n> vendor_perl/5.10/Git.pm line 1024.\n>\n> This occurs only when using an http:// URL; svn:// URLs work fine.\n[snip]\n> The client is Cygwin: svn version 1.8.0 and git version\n> 1.8.3.2.\n\nThe subversion 1.8 release has removed the neon library, all svn  \nclient http access now always goes through the serf library.  If you  \nput \"http-library = serf\" in the \"[global]\" section of the  \n\"~/.subversion/servers\" file you will get the 'svn_delta' error with  \ngit-svn when running earlier versions of the svn client as well.\n\n> I initially reported this to the subversion users mailing list, but\n> was (not so politely) told to report this to the git-svn authors.\n> I'm not so sure, since the problem goes away simply by downgrading\n> the subversion-perl bindings back to 1.7.\n\nThat changes the default http client access back to neon which doesn't  \nexhibit the problem.  Adding \"http-library = serf\" as described above  \nwill make the problem reappear with the 1.7 subversion-perl bindings  \n(and the 1.6 as well).\n\nKyle\n"},{"id":"222654","messageId":"51D75196.4030100@acm.org","threadId":"34358","inReplyTo":"E82AC74E-3294-415D-8E59-97DDD213B11A@gmail.com","subject":"Re: git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","fromName":"David Rothenberger","fromEmail":"daveroth@acm.org","sentAt":"2013-07-05T23:07:02Z","receivedAt":"2013-07-05T23:07:02Z","isPatch":false,"sender":{"key":"daveroth@acm.org","avatar":null},"body":"On 7/5/2013 3:58 PM, Kyle McKay wrote:\n> On Jul 5, 2013, at 13:48, David Rothenberger wrote:\n>> I recently upgraded my Subversion server to 1.8.0 and started\n>> receiving the following error from \"git svn fetch\":\n>>\n>> Temp file with moniker 'svn_delta' already in use at\n>> /usr/lib/perl5/vendor_perl/5.10/Git.pm line 1024.\n>>\n>> This occurs only when using an http:// URL; svn:// URLs work fine.\n> [snip]\n>> The client is Cygwin: svn version 1.8.0 and git version\n>> 1.8.3.2.\n> \n> The subversion 1.8 release has removed the neon library, all svn client\n> http access now always goes through the serf library.  If you put\n> \"http-library = serf\" in the \"[global]\" section of the\n> \"~/.subversion/servers\" file you will get the 'svn_delta' error with\n> git-svn when running earlier versions of the svn client as well.\n\nThat was not my experience. I did try this with the 1.7 perl bindings\nand libraries and with \"http-library = serf\" in by servers and it worked\nfine. I confirmed that serf was being used with a Wireshark trace.\n\n-- \nDavid Rothenberger  ----  daveroth@acm.org\n\nTo downgrade the human mind is bad theology.\n                -- C. K. Chesterton\n"},{"id":"222655","messageId":"kr7jvu$62n$1@ger.gmane.org","threadId":"34358","inReplyTo":"kr7beq$ilk$1@ger.gmane.org","subject":"Re: git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","fromName":"David Rothenberger","fromEmail":"daveroth@acm.org","sentAt":"2013-07-05T23:14:12Z","receivedAt":"2013-07-05T23:14:12Z","isPatch":false,"sender":{"key":"daveroth@acm.org","avatar":null},"body":"On 7/5/2013 1:48 PM, David Rothenberger wrote:\n> I recently upgraded my Subversion server to 1.8.0 and started\n> receiving the following error from \"git svn fetch\":\n> \n> Temp file with moniker 'svn_delta' already in use at /usr/lib/perl5/vendor_perl/5.10/Git.pm line 1024.\n> \n> This occurs only when using an http:// URL; svn:// URLs work fine.\n\nI traced git-svn and discovered that the error is due to a known\nproblem in the SVN APIs. ra_serf does not drive the delta editor in\na depth-first manner as required by the API [1]. Instead, the calls\ncome in this order:\n\n 1. open_root\n 2. open_directory\n 3. add_file\n 4. apply_textdelta\n 5. add_file\n 6. apply_textdelta\n\nThis is a known issue [2] and one that the Subversion folks have\nelected not to fix [3].\n\n[1]\nhttp://subversion.apache.org/docs/api/latest/structsvn__delta__editor__t.html#details\n[2] http://subversion.tigris.org/issues/show_bug.cgi?id=2932\n[3] http://subversion.tigris.org/issues/show_bug.cgi?id=3831\n\n-- \nDavid Rothenberger  ----  daveroth@acm.org\n\nmanagement, n.:\n        The art of getting other people to do all the work.\n"},{"id":"222657","messageId":"5675CCAE-F4E8-48B7-8B63-BE91AAE09DD5@gmail.com","threadId":"34358","inReplyTo":"51D75196.4030100@acm.org","subject":"Re: git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","fromName":"Kyle McKay","fromEmail":"mackyle@gmail.com","sentAt":"2013-07-06T01:01:27Z","receivedAt":"2013-07-06T01:01:27Z","isPatch":false,"sender":{"key":"mackyle@gmail.com","avatar":"https://avatars.githubusercontent.com/u/813346?v=4"},"body":"On Jul 5, 2013, at 16:07, David Rothenberger wrote:\n> On 7/5/2013 3:58 PM, Kyle McKay wrote:\n>> On Jul 5, 2013, at 13:48, David Rothenberger wrote:\n>>> I recently upgraded my Subversion server to 1.8.0 and started\n>>> receiving the following error from \"git svn fetch\":\n>>>\n>>> Temp file with moniker 'svn_delta' already in use at\n>>> /usr/lib/perl5/vendor_perl/5.10/Git.pm line 1024.\n>>>\n>>> This occurs only when using an http:// URL; svn:// URLs work fine.\n>> [snip]\n>>> The client is Cygwin: svn version 1.8.0 and git version\n>>> 1.8.3.2.\n>>\n>> The subversion 1.8 release has removed the neon library, all svn  \n>> client\n>> http access now always goes through the serf library.  If you put\n>> \"http-library = serf\" in the \"[global]\" section of the\n>> \"~/.subversion/servers\" file you will get the 'svn_delta' error with\n>> git-svn when running earlier versions of the svn client as well.\n>\n> That was not my experience. I did try this with the 1.7 perl bindings\n> and libraries and with \"http-library = serf\" in by servers and it  \n> worked\n> fine. I confirmed that serf was being used with a Wireshark trace.\n\nI had it always fail right away from my home ISP (kinda slow  \nconnection), but when running on a host with quite a different  \ninternet connection it would sometimes run for a while before  \ngenerating the error (maybe a couple hundred revisions fetched) for  \nsome sources, but it would *always* eventually fail.\n\nFor this reason I also believe the problem is timing sensitive.\n\nTry doing \"git svn clone --quiet http://dev.heuristiclab.com/svn/hl/ \ncore\" with \"~/.subversion/servers\" section \"[global]\" including  \n\"http_library = serf\".  I find this one always seems to fail right  \naway for me with git-svn over serf but will clone fine over neon (if  \nyou can stand to wait long enough).\n\nI have been looking into using serf for git-svn clones ever since I  \ndiscovered how very much faster snvrdump works on an http url over  \nserf as compared to neon.\n\nKyle\n"},{"id":"222658","messageId":"51D77AB1.9020708@acm.org","threadId":"34358","inReplyTo":"5675CCAE-F4E8-48B7-8B63-BE91AAE09DD5@gmail.com","subject":"Re: git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","fromName":"David Rothenberger","fromEmail":"daveroth@acm.org","sentAt":"2013-07-06T02:02:25Z","receivedAt":"2013-07-06T02:02:25Z","isPatch":false,"sender":{"key":"daveroth@acm.org","avatar":null},"body":"On 7/5/2013 6:01 PM, Kyle McKay wrote:\n> On Jul 5, 2013, at 16:07, David Rothenberger wrote:\n>> On 7/5/2013 3:58 PM, Kyle McKay wrote:\n>>> On Jul 5, 2013, at 13:48, David Rothenberger wrote:\n>>>> I recently upgraded my Subversion server to 1.8.0 and started\n>>>> receiving the following error from \"git svn fetch\":\n>>>>\n>>>> Temp file with moniker 'svn_delta' already in use at\n>>>> /usr/lib/perl5/vendor_perl/5.10/Git.pm line 1024.\n>>>>\n>>>> This occurs only when using an http:// URL; svn:// URLs work fine.\n>>> [snip]\n>>>> The client is Cygwin: svn version 1.8.0 and git version\n>>>> 1.8.3.2.\n>>>\n>>> The subversion 1.8 release has removed the neon library, all svn client\n>>> http access now always goes through the serf library.  If you put\n>>> \"http-library = serf\" in the \"[global]\" section of the\n>>> \"~/.subversion/servers\" file you will get the 'svn_delta' error with\n>>> git-svn when running earlier versions of the svn client as well.\n>>\n>> That was not my experience. I did try this with the 1.7 perl bindings\n>> and libraries and with \"http-library = serf\" in by servers and it worked\n>> fine. I confirmed that serf was being used with a Wireshark trace.\n> \n> I had it always fail right away from my home ISP (kinda slow\n> connection), but when running on a host with quite a different internet\n> connection it would sometimes run for a while before generating the\n> error (maybe a couple hundred revisions fetched) for some sources, but\n> it would *always* eventually fail.\n> \n> For this reason I also believe the problem is timing sensitive.\n> \n> Try doing \"git svn clone --quiet\n> http://dev.heuristiclab.com/svn/hl/core\" with \"~/.subversion/servers\"\n> section \"[global]\" including \"http_library = serf\".  I find this one\n> always seems to fail right away for me with git-svn over serf but will\n> clone fine over neon (if you can stand to wait long enough).\n\nYes, you're right. That one fails for me too with 1.7, although I note\nthat the server itself is running 1.5. Still, the reason is the same --\na non-depth-first drive of the delta editor from serf.\n\n-- \nDavid Rothenberger  ----  daveroth@acm.org\n\n\"If Diet Coke did not exist it would have been necessary to invent it.\"\n                -- Karl Lehenbauer\n"},{"id":"222661","messageId":"EAE13443-DA86-4965-999D-3CA36962AFE2@gmail.com","threadId":"34358","inReplyTo":"kr7jvu$62n$1@ger.gmane.org","subject":"Re: git-svn \"Temp file with moniker 'svn_delta' already in use\" and skelta mode","fromName":"Kyle McKay","fromEmail":"mackyle@gmail.com","sentAt":"2013-07-06T03:41:53Z","receivedAt":"2013-07-06T03:41:53Z","isPatch":false,"sender":{"key":"mackyle@gmail.com","avatar":"https://avatars.githubusercontent.com/u/813346?v=4"},"body":"On Jul 5, 2013, at 16:14, David Rothenberger wrote:\n> On 7/5/2013 1:48 PM, David Rothenberger wrote:\n>> I recently upgraded my Subversion server to 1.8.0 and started\n>> receiving the following error from \"git svn fetch\":\n>>\n>> Temp file with moniker 'svn_delta' already in use at /usr/lib/perl5/ \n>> vendor_perl/5.10/Git.pm line 1024.\n>>\n>> This occurs only when using an http:// URL; svn:// URLs work fine.\n\nI have created a patch (separate emails) that seems to work.  However,  \nif the server being fetched against is not configured well for use  \nwith serf then \"Error retrieving REPORT (54): Connection reset by peer  \nGit/SVN/Ra.pm line 282\" errors can occur and/or the fetch can be  \nhorribly slow compared to using neon.  If the \"Connection reset\" error  \noccurs, the fetch can be restarted to get more revisions until it dies  \nagain.\n\nKyle\n"}]}