Git clone échoue avec une erreur de mémoire insuffisante - “fatal: de mémoire, malloc a échoué (tried to allocate 905574791 octets) / fatal: index-pack a échoué”
Je suis tente de cloner un grand (1.4 GO) dépôt Git en 32 bits Debian VM avec 384 mo de RAM. J'utilise Git 1.7.2.5, et en utilisant le protocole SSH pour cloner (git clone [email protected]:/my/repo')
Le clone échoue avec ce message:
remote: Counting objects: 18797, done.
remote: warning: subobtimal pack - out of memory
remote: Compressing objects: 100% (10363/10363), done.
fatal: out of memory, malloc failed (tried to allocate 905574791 bytes)
fatal: index-pack failed
J'ai essayé de réduire la quantité de mémoire Git utilise pour remballer sur l'hôte référentiel fin, et le remballage:
git config pack.windowMemory 10m
git config pack.packSizeLimit 20m
git repack -a -d
Mes questions sont les suivantes:
- Est-ce un de la taille du client (clone) problème ou faut-il être résolu dans le repo que je suis le clonage?
- Dans les deux cas, est-ce que je peux faire pour faire le clone de réussir? Beaucoup de solutions potentielles en ligne impliquer une ou l'autre des choses suivantes, dont aucune n'est acceptable dans ce cas:
- l'évolution du contenu du référentiel de fond (c'est à dire la suppression de fichiers volumineux)
- donnant la VM qui est en train de faire le clone de plus de RAM
- donnant la VM qui est en train de faire le clone 64 bits PROCESSEUR virtuel
- transfert de la bande (par exemple à l'aide de Rsync ou SFTP pour le transfert de l' .répertoire git)
Merci d'avance.
Hav-vous vérifié que vous avez assez d'espace disque (sur le clonage de la machine) pour que l'ensemble du packfile (900-quelque chose de MO)?
Romain: Oui - j'ai au moins 5,5 GO de disponible sur la machine faire le clonage.
Yup cela m'a mordu une fois, quand j'avais été à l'aide de gros fichiers binaires dans le référentiel. Jetez un oeil à git-bup pour d'autres moyens si c'était la cause
Romain: Oui - j'ai au moins 5,5 GO de disponible sur la machine faire le clonage.
Yup cela m'a mordu une fois, quand j'avais été à l'aide de gros fichiers binaires dans le référentiel. Jetez un oeil à git-bup pour d'autres moyens si c'était la cause
OriginalL'auteur grw | 2011-09-30
Vous devez vous connecter pour publier un commentaire.
git clone
ne sera pas regarder à votrepack.packSizeLimit
paramètre, il va de toute façon tout transférer dans un seul pack - sauf si ça a changé depuis la dernière fois que j'ai regardé.À l'aide de SCP ou Rsync peut-être un moyen de travailler autour de votre problème en effet. Retrait de la "inutile" de gros fichiers, puis de les remballer le référentiel que vous essayez de clone pourrait également aider.
Donner plus de RAM pour la machine virtuelle peut également aider - je ne pense pas que vous aurez besoin d'une version 64 bits de l'adresse de l'espace à allouer 900 MO... on pourrait aussi lui donner assez d'espace de SWAP pour gérer les 900 MO paquet au lieu de l'augmentation de la RAM.
il mange de la mémoire que pour certains - économie de bande passante - les opérations... C'est comment git devient vite
Je suis d'accord sur ce @sehe dit... Git est la mémoire de la faim que lorsque c'est le seul moyen facile de réaliser la meilleure performance. Maintenant qu'il est plus mature, les gens travaillent, c'est de se comporter mieux sur plus limité...
Je ne l'espère 😀 Merci pour vos conseils, des gens.
Essayé d'ajouter de swap, mais pas de chance. Toujours pas de clone. =/
OriginalL'auteur Romain
J'ai eu un problème similaire sur Windows à l'aide de MSysGit 32 bits.
Le git 64 bits à partir de Cygwin a fait le travail.
Peut-être que vous devez utiliser une version 64 bits Debian VM (au lieu de 32 bits).
Mon réponse originale à cette question est disponible sur la question Git sur Windows, “mémoire malloc a échoué”.
Quel est votre Système d'Exploitation? (Utilisez-vous WindowsXP?) Est votre Système d'Exploitation 32-bits ou 64-bits? Comment avez-vous installé Git? (téléchargement ou de l'auto-compilé?) Est votre Git 32-bits ou 64-bits? Acclamations 😉
OriginalL'auteur olibre
Aujourd'hui, j'ai eu le même problème. Serveur Git a couru hors de la mémoire, mais gitlab signalé qu'il y a encore de la mémoire disponible. Nous avons vérifié la mémoire avec htop (rapporté aucun n'est disponible), redémarré gitlab et tout est allé de nouveau à la normale.
OriginalL'auteur MateuszL
J'ai affronté le même message d'erreur à chaque fois que je tire et
sudo git pull
m'a effectivement aidé à surmonter ce message d'erreur et tirer a été couronnée de succès.OriginalL'auteur Karthik Balu