beetmover doesn't skip GCS uploads when it claims to

オープン
#676 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
google-cloud, python
領域
cloud

調査の方向性

beetmoverscript/gcloud.py の set_gcs_client と upload_to_gcs から始め、続いて beetmoverscript/script.py と beetmoverscript/utils.py にあるそれらの呼び出し元を追跡します。クライアントが存在しない場合の経路を再現または追跡し、それぞれの早期リターン条件によって GCS へのアップロードがスキップされ、AttributeError が発生しないことを確認します。

索引モデルが issue の本文から書いたものです。

説明

beetmoverscript

set_gcs_client has a number of error conditions that result in an early return, and context.gcs_client being unset. The messages given claim that GCS uploads will be skipped, but instead it continues on and ends up failing. For example:

2023-02-23 01:22:56,468 - beetmoverscript.gcloud - WARNING - GCS bucket <Bucket: mozilla-releng-dep-partner> doesn't exist. Skipping GCS uploads.
2023-02-23 01:22:56,470 - beetmoverscript.task - DEBUG - Loading release_props from task's payload: {'appName': 'Firefox', 'appVersion': '112.0', 'branch': 'try', 'buildid': '20230222192533', 'hashType': 'sha512', 'platform': 'linux'}
2023-02-23 01:22:56,470 - beetmoverscript.task - INFO - Action types: ['push-to-partner']
<snip>
2023-02-23 01:22:56,716 - beetmoverscript.task - DEBUG - Loading release_props from task's payload: {'appName': 'Firefox', 'appVersion': '112.0', 'branch': 'try', 'buildid': '20230222192533', 'hashType': 'sha512', 'platform': 'linux'}
2023-02-23 01:22:59,227 - beetmoverscript.script - INFO - put /app/workdir/cot/XMhpfS5_T4aYb2qrypIxyQ/releng/partner/test/test-002/win32/he/target.installer.exe: 200
2023-02-23 01:22:59,228 - charset_normalizer - DEBUG - Encoding detection on empty bytes, assuming utf_8 intention.
2023-02-23 01:22:59,413 - beetmoverscript.script - INFO - put /app/workdir/cot/XMhpfS5_T4aYb2qrypIxyQ/releng/partner/test/test-002/win64/en-CA/target.installer.exe: 200
2023-02-23 01:22:59,413 - charset_normalizer - DEBUG - Encoding detection on empty bytes, assuming utf_8 intention.
2023-02-23 01:22:59,432 - beetmoverscript.script - INFO - put /app/workdir/cot/XMhpfS5_T4aYb2qrypIxyQ/releng/partner/test/test-002/win64/he/target.installer.exe: 200
2023-02-23 01:22:59,432 - charset_normalizer - DEBUG - Encoding detection on empty bytes, assuming utf_8 intention.
2023-02-23 01:22:59,466 - beetmoverscript.script - INFO - put /app/workdir/cot/XMhpfS5_T4aYb2qrypIxyQ/releng/partner/test/test-002/win32/en-CA/target.installer.exe: 200
2023-02-23 01:22:59,466 - charset_normalizer - DEBUG - Encoding detection on empty bytes, assuming utf_8 intention.
Traceback (most recent call last):
  File "/app/bin/beetmoverscript", line 8, in <module>
    sys.exit(main())
  File "/app/lib/python3.9/site-packages/beetmoverscript/script.py", line 683, in main
    client.sync_main(async_main, config_path=config_path, default_config=default_config, should_validate_task=False)
  File "/app/lib/python3.9/site-packages/scriptworker/client.py", line 166, in sync_main
    loop.run_until_complete(_handle_asyncio_loop(async_main, context))
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/app/lib/python3.9/site-packages/scriptworker/client.py", line 205, in _handle_asyncio_loop
    await async_main(context)
  File "/app/lib/python3.9/site-packages/beetmoverscript/script.py", line 335, in async_main
    await action_map[context.action](context)
  File "/app/lib/python3.9/site-packages/beetmoverscript/script.py", line 168, in push_to_partner
    await move_partner_beets(context, mapping_manifest)
  File "/app/lib/python3.9/site-packages/beetmoverscript/script.py", line 485, in move_partner_beets
    await await_and_raise_uploads(cloud_uploads, context.config["clouds"], context.bucket)
  File "/app/lib/python3.9/site-packages/beetmoverscript/utils.py", line 333, in await_and_raise_uploads
    await raise_future_exceptions(cloud_uploads[cloud])
  File "/app/lib/python3.9/site-packages/scriptworker/utils.py", line 409, in raise_future_exceptions
    succeeded_results, _ = await _process_future_exceptions(tasks, raise_at_first_error=True)
  File "/app/lib/python3.9/site-packages/scriptworker/utils.py", line 443, in _process_future_exceptions
    raise exc
  File "/app/lib/python3.9/site-packages/beetmoverscript/gcloud.py", line 92, in upload_to_gcs
    bucket = Bucket(context.gcs_client, name=bucket_name)
AttributeError: 'Context' object has no attribute 'gcs_client'
主要言語
Python
スター
16
フォーク
38
平均マージ
1日 7時間
マージ済み PR(30日)
14

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

mozilla-releng/scriptworker-scripts のほかの issue

mozilla-releng/scriptworker-scripts の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。