Resolver problemas

Erro no Git unable to create thread Resource temporarily unavailable

Revisto a 2 min de leitura Git recursos

O erro "unable to create thread: Resource temporarily unavailable" indica que o sistema não conseguiu criar outra thread. Não distingue por si só entre memória, limite de processos ou threads, ulimit ou outro recurso.

Conserve o comando completo, a saída e a hora. Verifique a versão e a configuração existente e correlacione a falha com PMEM, NPROC e os snapshots de Resource Usage:

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

Se ocorrer durante pack-objects, repita uma única vez o mesmo subcomando limitando as threads e a janela nessa execução:

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

Para index-pack, limite apenas as threads:

git -c pack.threads=1 SUBCOMANDO

Se o teste resolver o problema e precisar de manter o ajuste, aplique-o apenas ao repositório:

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

Não configure pack.packSizeLimit para este erro: limita o tamanho de cada ficheiro pack, não a criação de threads, e pode gerar repositórios maiores e mais lentos. Evite --global, a menos que tenha demonstrado que todas as operações da conta precisam dele. Se falhar mesmo com uma thread, contacte o suporte com a hora, o comando e as métricas.

Alcance e reversão do ajuste

Substitua SUBCOMANDO pela operação real e os seus argumentos; é um marcador, não um subcomando do Git. Antes de guardar uma opção local, anote se já existia e o seu valor. Depois do teste, restaure-a; se antes não existia, elimine apenas essa opção local.

pack.windowMemory limita a janela utilizada para procurar deltas, não toda a memória do Git. Reduzir as threads pode aumentar o tempo de trabalho e não garante ultrapassar um limite de processos já ocupado por outras tarefas. Se o erro aparecer com o prefixo remote:, verifique se é gerado pelo servidor remoto: a configuração local não altera o seu ambiente.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.