Résoudre les problèmes

Erreur Git unable to create thread Resource temporarily unavailable

Vérifié le 3 min de lecture Git ressources

L'erreur "unable to create thread: Resource temporarily unavailable" indique que le système n'a pas pu créer un thread supplémentaire. Elle ne distingue pas à elle seule la mémoire, une limite de processus ou de threads, ulimit ou une autre ressource.

Conservez la commande complète, la sortie et l'heure. Vérifiez la version et la configuration existante, et rapprochez l'échec des métriques PMEM, NPROC et des snapshots de Resource Usage :

git --version
git config --show-origin --get-regexp '^pack\.'
ulimit -u

Si cela se produit pendant pack-objects, répétez une seule fois la même sous-commande en limitant les threads et la fenêtre pour cette exécution :

git -c pack.threads=1 -c pack.windowMemory=100m SUBCOMANDO

Pour index-pack, limitez uniquement les threads :

git -c pack.threads=1 SUBCOMANDO

Si le test résout le problème et que vous devez conserver le réglage, appliquez-le uniquement au dépôt :

git config --local pack.threads 1
git config --local pack.windowMemory 100m

Ne configurez pas pack.packSizeLimit pour cette erreur : il limite la taille de chaque fichier pack, pas la création de threads, et peut produire des dépôts plus gros et plus lents. Évitez --global sauf si vous avez démontré que toutes les opérations du compte en ont besoin. Si l'échec persiste même avec un seul thread, contactez l'assistance en indiquant l'heure, la commande et les métriques.

Portée et annulation du réglage

Remplacez SUBCOMANDO par l'opération réelle et ses arguments ; c'est un marqueur, pas une sous-commande de Git. Avant d'enregistrer une option locale, notez si elle existait déjà et sa valeur. Après le test, rétablissez-la ; si elle n'existait pas, supprimez uniquement cette option locale.

pack.windowMemory limite la fenêtre utilisée pour rechercher les deltas, pas toute la mémoire de Git. Réduire les threads peut allonger la durée du travail et ne garantit pas de passer sous une limite de processus déjà occupée par d'autres tâches. Si l'erreur apparaît avec le préfixe remote:, vérifiez si c'est le serveur distant qui la génère : la configuration locale ne modifie pas son environnement.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.