b2 sync fails with Connection error

未关闭
#431 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
15/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
python
领域
cli

调研方向

The traceback runs from b2/sync/sync.py through b2/bucket.py and b2/raw_api.py into b2/b2http.py, where _translate_errors raises B2ConnectionError and _translate_and_retry handles retries. Start by reading those retry and error paths and reproducing a connection reset or DNS failure against a mocked endpoint. The issue itself asks two questions (how to resume a sync, and how to prevent the failure), so a first step is agreeing with maintainers on what behaviour to change.

由索引模型根据 Issue 内容生成。

描述

invalid/environmental

My b2 sync will run for a few weeks and then eventually there will be this traceback and any subsqeuent attempt to sync will fail with an error. How do I start my sync again, and how do I prevent this from happening again?

ERROR:b2.console_tool:ConsoleTool command error
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/b2/console_tool.py", line 1031, in run_command
    return command.run(args)
  File "build/bdist.linux-x86_64/egg/b2/console_tool.py", line 816, in run
    allow_empty_source=args.allowEmptySource,
  File "/usr/local/lib/python2.7/dist-packages/logfury-0.1.2-py2.7.egg/logfury/v0_1/trace_call.py", line 84, in wrapper
    return function(*wrapee_args, **wrapee_kwargs)
  File "build/bdist.linux-x86_64/egg/b2/sync/sync.py", line 261, in sync_folders
    source_folder, dest_folder, args, now_millis, reporter
  File "build/bdist.linux-x86_64/egg/b2/sync/sync.py", line 135, in make_folder_sync_actions
    dest_file) in zip_folders(source_folder, dest_folder, reporter, exclusions, inclusions):
  File "build/bdist.linux-x86_64/egg/b2/sync/sync.py", line 93, in zip_folders
    current_b = next_or_none(iter_b)
  File "build/bdist.linux-x86_64/egg/b2/sync/sync.py", line 36, in next_or_none
    return six.advance_iterator(iterator)
  File "build/bdist.linux-x86_64/egg/b2/sync/folder.py", line 201, in all_files
    self.folder_name, show_versions=True, recursive=True, fetch_count=1000
  File "build/bdist.linux-x86_64/egg/b2/bucket.py", line 208, in ls
    self.id_, start_file_name, start_file_id, fetch_count
  File "build/bdist.linux-x86_64/egg/b2/session.py", line 38, in wrapper
    return f(api_url, account_auth_token, *args, **kwargs)
  File "build/bdist.linux-x86_64/egg/b2/raw_api.py", line 361, in list_file_versions
    maxFileCount=max_file_count
  File "build/bdist.linux-x86_64/egg/b2/raw_api.py", line 138, in _post_json
    return self.b2_http.post_json_return_json(url, headers, params)
  File "build/bdist.linux-x86_64/egg/b2/b2http.py", line 299, in post_json_return_json
    return self.post_content_return_json(url, headers, data, try_count, params)
  File "build/bdist.linux-x86_64/egg/b2/b2http.py", line 272, in post_content_return_json
    response = _translate_and_retry(do_post, try_count, post_params)
  File "build/bdist.linux-x86_64/egg/b2/b2http.py", line 116, in _translate_and_retry
    return _translate_errors(fcn, post_params)
  File "build/bdist.linux-x86_64/egg/b2/b2http.py", line 76, in _translate_errors
    raise B2ConnectionError(str(e0))
B2ConnectionError: Connection error: ('Connection aborted.', error(104, 'Connection reset by peer'))
ERROR: Connection error: ('Connection aborted.', error(104, 'Connection reset by peer'))
Sat Mar 3 00:08:32 PST 2018
ERROR: Connection error: HTTPSConnectionPool(host='api001.backblazeb2.com', port=443): Max retries exceeded with url: /b2api/v1/b2_list_buckets (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f8f67db3950>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Sun Mar 4 00:00:02 PST 2018
ERROR: Connection error: HTTPSConnectionPool(host='api001.backblazeb2.com', port=443): Max retries exceeded with url: /b2api/v1/b2_list_buckets (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f291064d950>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Mon Mar 5 00:00:02 PST 2018
ERROR: Connection error: HTTPSConnectionPool(host='api001.backblazeb2.com', port=443): Max retries exceeded with url: /b2api/v1/b2_list_buckets (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f08bd22a950>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Tue Mar 6 00:00:02 PST 2018
ERROR: Connection error: HTTPSConnectionPool(host='api001.backblazeb2.com', port=443): Max retries exceeded with url: /b2api/v1/b2_list_buckets (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f950737b950>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Wed Mar 7 00:00:02 PST 2018
ERROR: Connection error: HTTPSConnectionPool(host='api001.backblazeb2.com', port=443): Max retries exceeded with url: /b2api/v1/b2_list_buckets (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f6306ddb950>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Thu Mar 8 00:00:02 PST 2018
ERROR: Connection error: HTTPSConnectionPool(host='api001.backblazeb2.com', port=443): Max retries exceeded with url: /b2api/v1/b2_list_buckets (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f84ef093950>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Fri Mar 9 00:00:02 PST 2018
主要语言
Python
星标
638
派生
138
平均合并
8 小时 27 分钟
30 天内合并 PR
8

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Backblaze/B2_Command_Line_Tool 的其他 Issue

查看 Backblaze/B2_Command_Line_Tool 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。