Por que o tar é interrompido com 100% da CPU se a lista de arquivos tiver espaços à esquerda?

3

O TAR trava com 100% de carga da CPU se a opção --files-from <LISTFILE> for usada e o <LISTFILE> contiver espaços à esquerda. Por que isso?

Para reproduzir: dados dois arquivos file1 e file2 de conteúdo arbitrário e um arquivo list com o seguinte conteúdo:

file1
  file2

Quando eu emito tar czf test.tar.gz --files-from list , o comando nunca termina, e a carga do sistema é ~ 1.

Se eu alterar list para ler

file1
file2

O comando tar acima é concluído sem problemas.

Isso acontece na edição do servidor LTS do Ubuntu 14.04.2 e no meu desktop Ubuntu 14.10; ambos têm o tar 1.27.1 do GNU.

    
por bovender 16.04.2015 / 03:43

2 respostas

0

Não consigo reproduzir os resultados que você está obtendo, embora eu possa fazer com que o tar jogue um erro ao fazer o que você descreve.

Ignorar isso, fornecendo uma lista com espaços antes que um nome de arquivo esteja incorreto; espaços em branco não são insignificantes no Unix. Se você disser ao tar que um arquivo é chamado de "arquivo2", então o tar procurará um arquivo chamado "arquivo2" e, se ele não encontrar um, haverá um erro.

Se você renomear file2:

mv file2 '  file2'

e depois executar o tar, funciona.

De qualquer forma, o tar deve ser eliminado, e não travar como ocorre no sistema.

    
por 16.04.2015 / 04:34
0

Eu reproduzi esse comportamento. Isso é como um bug para mim (o tar é enforcado com 100% cpu).

Esse problema estava impedindo que meu host Proxmox restaurasse os backups corretamente. E foi graças a essa pergunta que eu descobri sobre isso.

Como solução temporária, fiz o downgrade para o tar v1.26, aqui link (se você use Debian / Ubuntu, baixe sua versão .deb correspondente e instale com o dpkg -i, é bem simples) e funcionou para mim.

    
por 04.09.2015 / 15:57

Tags