Let gitlab-git-http-server handle archive downloads
This change relies on changes in gitlab_git and gitlab-git-http-server.
fixes #2429 (closed)
Merge request reports
Activity
mentioned in merge request gitlab_git!51 (merged)
gitlab_git MR: gitlab_git!51 (merged) . gitlab-git-http-server: gitlab-git-http-server!2 (merged)
Demo video:
golang_git_archive_download_demo.m4v
About the video: First click focusses window. Second click starts download, note there is no wait while the archive is created on disk. The archive is streamed and simultaneously cached on disk. The third click goes to the disk cache.
This implements #2824 (closed)
Reassigned to @DouweM
mentioned in issue #2429 (closed)
113 113 proxy_pass http://gitlab; 114 114 } 115 115 116 location ~ [-\/\w\.]+\.git\/ { 116 location ~ ^/[\w\.-]+/[\w\.-]+/(info/refs|git-upload-pack|git-receive-pack)$ { 117 # 'Error' 418 is a hack to re-use the @gitlab-git-http-server block @jacobvosmaer What can we expect if archive is not built yet (not cached to disk) but we receive a new request? Will the request wait? I mean, do we have some mutex there?
@vsizov both requests will create an archive concurrently, each in a different tempfile. The last tempfile to finish will become the cached archive.
Is it place for (D)DOS attack?
Edited by Valery Sizov@vsizov this implementation does not put a limit on the number of archives being created concurrently.
Added 1 commit:
- 549a840e - Fix NGINX API download regex
Added 1 commit:
- 033a879c - Fix NGINX API download regex
Added 1 commit:
- 83f04853 - Update gitlab_git to 7.2.19
Added 221 commits:
-
83f04853...123669a5 - 220 commits from branch
master
- c993481d - Merge branch 'master' into git-archive-golang
-
83f04853...123669a5 - 220 commits from branch
mentioned in commit 4b28f2d9
mentioned in issue #3063 (closed)
mentioned in issue omnibus-gitlab#875 (closed)