Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • G GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 43
    • Issues 43
    • List
    • Boards
    • Service Desk
    • Milestones
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • Infrastructure
  • GitLab
  • Issues
  • #403
Closed
Open
Created Jun 19, 2019 by Andrey Gursky@ag

Failed to pull/fetch on slower connection

On Debian testing using classic modem connection speed (up to 8 KB/s) I'm not able to refresh the gtk+ repository.

gtk+$ git describe
3.96.0-812-g8cfdd6c591

gtk+$ git remote get-url origin
https://gitlab.gnome.org/GNOME/gtk.git

gtk+$ START=$SECONDS; git pull --rebase; echo "elapsed $((($SECONDS-$START)/60)) min $((($SECONDS-$START)%60)) sec"
remote: Enumerating objects: 10320, done.
remote: Counting objects: 100% (10320/10320), done.
remote: Compressing objects: 100% (2404/2404), done.
error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
elapsed 15 min 50 sec

gtk+$ START=$SECONDS; git pull --rebase; echo "elapsed $((($SECONDS-$START)/60)) min $((($SECONDS-$START)%60)) sec"
remote: Counting objects: 100% (10320/10320), done.
remote: Compressing objects: 100% (2404/2404), done.
error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
elapsed 13 min 25 sec

gtk+$ START=$SECONDS; git pull --rebase; echo "elapsed $((($SECONDS-$START)/60)) min $((($SECONDS-$START)%60)) sec"
remote: Enumerating objects: 11049, done.
remote: Counting objects: 100% (11049/11049), done.
remote: Compressing objects: 100% (2557/2557), done.
error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
elapsed 14 min 49 sec

gkt+$ ls -o -g .git/objects/pack/
total 244336
-r--r--r-- 1  14641012 Jun 15 16:23 pack-d16558c84e8e1e8683e7d25358acfa3c0ccabfab.idx
-r--r--r-- 1 217598367 Jun 15 16:23 pack-d16558c84e8e1e8683e7d25358acfa3c0ccabfab.pack
-r--r--r-- 1   5537791 Jun 19 08:07 tmp_pack_mueLBC
-r--r--r-- 1   6676479 Jun 19 01:05 tmp_pack_PHtiTy
-r--r--r-- 1   5726207 Jun 19 01:21 tmp_pack_tuM0kn

$ git --version
git version 2.22.0

GnuTLS: 3.6.7-3
curl:   7.64.0-3

Looks like some (default?) option for a timeout / buffer size is too aggressive (despite the connection is not stalled at all, it is just slower).

P.S. An immediate workaround on a client side is to rebuild git with libcurl4-openssl-dev instead of libcurl4-gnutls-dev:

Receiving objects: 100% (11049/11049), 18.33 MiB | 7.00 KiB/s, done.
Resolving deltas: 100% (8801/8801), completed with 1723 local objects.
...
elapsed 45 min 21 sec

Hopefully the server could be tuned to interoperate nicely with the default git package.

Edited Jun 24, 2019 by Andrey Gursky
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking