[Bug 5171] New: too large request with many-headed repo + IIS with isapi

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Sat Apr 2 00:38:51 UTC 2016


https://bz.mercurial-scm.org/show_bug.cgi?id=5171

            Bug ID: 5171
           Summary: too large request with many-headed repo + IIS with
                    isapi
           Product: Mercurial
           Version: stable branch
          Hardware: PC
                OS: Windows
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: bundle2
          Assignee: bugzilla at selenic.com
          Reporter: cyano at me.com
                CC: mercurial-devel at selenic.com,
                    pierre-yves.david at ens-lyon.org

At Edlund we're hosting Mercurial with IIS using the isapi_wsgi module (and
code similar to contrib/win32/hgwebdir_wsgi.py).

When pulling from a repository with a large number of heads (more than 1300, as
output from hg heads), and when there are no changes to pull, a getbundle
command is still generated with a very large argument set easily spanning 20
X-HgArgs. This exceeds the default total request size of IIS.

Changing the IIS configuration unfortunately doesn't work because:

1. isapi_wsgi constructs a wsgi environment by requesting the server variable
ALL_HTTP from the isapi module in PyWin32. This contains all custom HTTP
headers (including all X-HgArgs).

2. The isapi module in PyWin32 calls a Win32 function with a buffer of at most
64 kB.

This limits the total request size to 64 kB. Currently, I have hacked
isapi_wsgi to circumvent this, but it would be nice if getbundle would send a
more modest argument list.

A somewhat similar problem was reported in 3319.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list