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.
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
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.