Clone repo from remote URL fails

Mads Kiilerich mads at kiilerich.com
Wed Dec 12 11:58:07 UTC 2018


On 12/11/18 5:03 PM, Thomas De Schampheleire wrote:
> El mar., 11 dic. 2018 a las 12:19, Mads Kiilerich
> (<mads at kiilerich.com>) escribió:
>>> It's been a while that I tested this, but I wonder if it could be
>>> related to a mercurial version? This instance is running 4.7.2.
>>> In commit 03dfcbe52906 there has been a change in this area, but I
>>> didn't investigate it further.
>>
>> Yes, that change was insufficient.
>>
>> Proposed fix on
>> https://kallithea-scm.org/repos/kallithea-incoming/changeset/8107a49198fbbb1474f84cc0e6c8c1cfea5d2de4
> Thanks.
>
>> Extra annoying that it just fails in a URL validation check. The actual
>> clone works ... and it would fail if the URL was invalid. So it would
>> perhaps be better to drop the check and just try it, similar to how ssh
>> URLs are handled?
> Note that I was cloning from an SSH URL.


Right. How about 
https://kallithea-scm.org/repos/kallithea-incoming/changeset/8670f5906fa6760638cb5485a03c675b68c589fe 
?


> I noticed an unrelated problem: cloning a repo with many heads from
> Kallithea gives:
> requesting all changes
> abort: error: Connection reset by peer
>
> I can reproduce with 2000 heads, 500 was not enough.
> Quick script to create so many heads, in an existing repo:
> for i in (seq 1 2000); hg up 0; date >> Makefile; hg commit -m
> "head$i"; hg push http://localhost:5000/foobar -f -r .; end
>
> (but I now realize I could have been faster by doing it on the server
> directly and then invalidating the cache).
>
> I was told that cloning a repo over HTTP causing Mercurial to send
> certain info, like heads, in HTTP headers. This is probably related.
> I'm using uwsgi here with default settings.
> See also https://github.com/unbit/uwsgi/issues/355, from that it seems
> this is a hard limitation (max buffer size is 64K and can apparently
> not be increased).


Yes, I agree, that is a Mercurial / http problem with excessive repo heads.

We have much more heads, and I think we still use mod_wsgi where it 
works with proper configuration.

You can perhaps avoid the problem by marking old heads as secret phase.

/Mads



More information about the kallithea-general mailing list