Gsutil: O objeto 'ForkAwareLocal' não tem atributo 'conexão' para cp multithread

Criado em 9 set. 2020  ·  7Comentários  ·  Fonte: GoogleCloudPlatform/gsutil

Ao executar gsutil -m cp -r gs://example/ ./ em uma pasta bastante grande no macOS com o sistema Python 3.7 (para evitar os problemas de #961), vejo muitas instâncias do seguinte erro:

Exception in thread Thread-4:
Traceback (most recent call last):
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/multiprocessing/managers.py", line 788, in _callmethod
    conn = self._tls.connection
AttributeError: 'ForkAwareLocal' object has no attribute 'connection'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/platform/gsutil/gslib/command.py", line 2348, in run
    cls = copy.copy(class_map[caller_id])
  File "<string>", line 2, in __getitem__
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/multiprocessing/managers.py", line 792, in _callmethod
    self._connect()
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/multiprocessing/managers.py", line 779, in _connect
    conn = self._Client(self._token.address, authkey=self._authkey)
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/multiprocessing/connection.py", line 492, in Client
    c = SocketClient(address)
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/multiprocessing/connection.py", line 619, in SocketClient
    s.connect(address)
ConnectionRefusedError: [Errno 61] Connection refused

Como resultado, o comando parece travar após iniciar um primeiro lote de downloads.

Comentários muito úteis

A solução alternativa -o " GSUtil:parallel_process_count=1 " funciona para mim no Big Sur (macOS 11.2), mas é frustrante para mim que isso continue a persistir como um problema na plataforma Mac.

Todos 7 comentários

Eu tenho exatamente o mesmo problema no OSX 10.15.6, gcloud {308.0.0, 297.0.1}, gsutil {4.53, 4.51}, python 3.7.8.

O mesmo no OSX 10.15.7, gcloud 303.0.0, gsutil 4.52, python 3.6.5

O mesmo no gcloud 317.0.0, python 3.7.7

Obrigado por relatar isso! Também consegui reproduzir esse bug e descobri que desabilitar o multiprocessamento ajudou. Você pode fazer isso definindo parallel_process_count=1 na seção GSUtil do arquivo de configuração do boto ou adicionando o seguinte sinalizador ao seu comando: -o "GSUtil:parallel_process_count=1" . Embora isso desabilite o multiprocessamento, o multithreading ainda deve estar habilitado, então você ainda poderá paralelizar suas transferências.

Acho que esse problema está relacionado a problemas mais gerais com multiprocessamento no MacOS que o PR #1107 nos deixou vulneráveis ​​(https://github.com/GoogleCloudPlatform/gsutil/pull/1107#issuecomment-698555319). Se você ainda estiver tendo esse problema depois de desativar o multiprocessamento, informe-nos!

Obrigado por fornecer uma solução alternativa, funcionou para mim.

Esta ferramenta é uma piada embora. Nem uma única versão já que 297 funciona fora da caixa sem algum tipo de patch.

A solução alternativa -o " GSUtil:parallel_process_count=1 " funciona para mim no Big Sur (macOS 11.2), mas é frustrante para mim que isso continue a persistir como um problema na plataforma Mac.

Não funciona para mim, eu recebo CommandException: Destination URL must name a directory, bucket, or bucket subdirectory for the multiple source form of the cp command. por favor conserte seu produto de piada

Esta página foi útil?
0 / 5 - 0 avaliações