Skip to content

[GRDM-62502] WEKOへのメタデータ登録が「INTERNAL SERVER ERROR」で終わることがある問題を修正 - #779

Draft
yacchin1205 wants to merge 2 commits into
RCOSDP:developfrom
yacchin1205:fix/migration-historical-models
Draft

[GRDM-62502] WEKOへのメタデータ登録が「INTERNAL SERVER ERROR」で終わることがある問題を修正#779
yacchin1205 wants to merge 2 commits into
RCOSDP:developfrom
yacchin1205:fix/migration-historical-models

Conversation

@yacchin1205

@yacchin1205 yacchin1205 commented Aug 20, 2026

Copy link
Copy Markdown

Purpose

WEKO へのメタデータ登録操作の後、進捗を取得する weko_get_publishing_file が 500 を返し、画面にエラーダイアログが表示されて登録完了の表示に進みません。サーバ側は KeyError: 'progress' で失敗しています。

進捗取得は AsyncResult.info を複数回参照していますが、info は参照のたびに celery のバックエンドへ問い合わせるため、タスクが進行中の間は参照ごとに内容が変わります(celery は完了状態になるまで結果をキャッシュしません)。'progress' in aresult.info で判定した後、aresult.info['progress'] を取り出す前にタスクが完了へ遷移すると、info の中身が進捗({'progress': ...})から結果({'result': ...})に変わり、キーが存在しなくなります。

画面は進捗を毎秒ポーリングしており、登録が成功する瞬間にこの遷移を引くと失敗します。同じ実装が _get_publishing_project_metadata_progress、および Metadata アドオンの get_task_result / metadata_get_importing_dataset にもあるため、あわせて修正します。

Changes

  • WEKO / Metadata アドオンの進捗取得で、AsyncResultstateinfo を1度だけ取得した値で判定するように変更(WEKO では重複していた解釈処理を _resolve_deposit_task に集約)

QA Notes

  • 権限判定のコードには触れていません
  • 事象はタスクの状態遷移と進捗取得が重なったときにのみ発生するため、画面操作での再現は確率的です。判定と取り出しの間で完了へ遷移する状況をユニットテストで固定しています

Documentation

None

Side Effects

None

Ticket

GRDM-62502

@yacchin1205 yacchin1205 changed the title 20250906からのアップグレード失敗とWEKO登録時の500エラーを修正 [GRDM-62502] 20250906からのアップグレード失敗とWEKO登録時の500エラーを修正 Aug 21, 2026
@yacchin1205
yacchin1205 force-pushed the fix/migration-historical-models branch from f9aa83e to e7bff0a Compare August 24, 2026 01:33
@yacchin1205 yacchin1205 changed the title [GRDM-62502] 20250906からのアップグレード失敗とWEKO登録時の500エラーを修正 [GRDM-62502] WEKOへのメタデータ登録が「INTERNAL SERVER ERROR」で終わることがある問題を修正 Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant