Http 400 on pull - but only with newer versions

Pierre-Yves David pierre-yves.david at ens-lyon.org
Tue Mar 26 09:54:59 UTC 2019


[sending this email again as I forgot to reply to the list]

On 3/21/19 11:00 PM, Aaron Lawrence wrote:
> Hi all,
> 
> I was running TortoiseHg 4.8.2. On our largest repo (16,000 commits, 
> 6GB) I started getting a HTTP 400 error when pulling.

unrelated-remark: 6GB for 16,000 commit is fairly large. Do you have a 
lot of large file committed ? Or do you have a very branchy (many merge) 
repository ? What are the sizes of the .hg/store/00manifest.d` and 
`.hg/store/00changelog.d` files?

> Fiddler proxy showed HTTP Error 400. The size of the request headers is 
> too long.

Can you share a trace with of a pull using the `--debug` flag ? And one 
using both `--debug` and `--config devel.debug.peer-request=yes`

> I noticed that going back to TortoiseHg 3.7.3 actually stopped the 
> problem happening.
> 
> Now I’m running with 3.7.3 and it seems fine. Other people are also 
> using older Hg with the same repo and not having any problem.
> 
> We don’t want to be stuck on an old version of Mercurial though.
> 
> I found people talking about having too many dangling heads. Our repo 
> has 200 topological heads, which seems well below what others had 
> problems with. But more importantly, when I got rid of 50 of them my 
> merging to a graveyard branch, it didn’t help, the 400 error kept 
> happening with 4.8.2.

200 heads is well below the problematic range. Are you using named 
branches ? bookmarks ? If so how many of each ?

> If I did a fresh clone, it would work for a little while then start 
> giving 400 errors again.

That's is odd.

> I could see that the headers went from ~8k to 26k without anything changing.

Can you share some extra details on the http request with such header 
inflation ?

> So I don’t know what to think – why would older mercurial work better? 
> Why does the header request size increase after a few pulls?
> 
> Our server is an old version of Kiln, 2.9.61.0 (DB 202)  running on IIS.

That looks ancient. Have you though about upgrading to a newer version 
for your Mercurial server?

-- 
Pierre-Yves David



More information about the Mercurial mailing list