Commit eed868d
fix(container): Codex 第二回 review 指摘 (HIGH/MED) 対応
[HIGH] 既存 image-only サービスで marker bootstrap
PR 適用前から手動 docker pull 済みの公開 image は marker が無く、
_pull_age_days() が永遠に None を返して定期 pull が発火しない不具合。
image-only かつ marker 不在のケースで marker を「now」で bootstrap し、
次回以降 threshold-based pull が正しく作動するよう修正。
option (a) (即 pull) ではなく option (b) (現時点を起点に記録) を選択。
理由: 初回 up での予期せぬネットワーク呼び出しを避け、
最大 7 日の更新遅延 (SLA 厳密ではない) を受容する方が UX として穏便。
[MED] marker filename の衝突を hash で防止
re.sub による単純置換は lossy で、
'a/b:c' と 'a_b/c' がともに 'a_b_c' に衝突する問題があった。
filename を `<sanitized[:60]>--<sha256[:12]>` 形式に変更し、
人間可読性と衝突耐性を両立。
[LOW] 未来 mtime のクランプ
時刻巻き戻しや手動 mtime 操作で marker mtime が未来を指すと、
時刻差が負値になり pull_age < max_age が常に成立して
refresh が永続抑止される問題があった。
負値検出時は warning ログを出して 0 を返すよう修正。
動作確認:
- collision: a/b:c, a_b/c, a:b/c が全て異なる hash で識別される
- bootstrap: marker 無し既存 image で初回 up 時に marker 作成、age=0
- future mtime: 5 日先の mtime → warning + age=0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent decf80f commit eed868d
1 file changed
Lines changed: 34 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
507 | 508 | | |
508 | 509 | | |
509 | 510 | | |
510 | | - | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
511 | 524 | | |
512 | 525 | | |
513 | 526 | | |
| |||
596 | 609 | | |
597 | 610 | | |
598 | 611 | | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
599 | 616 | | |
600 | 617 | | |
601 | 618 | | |
602 | 619 | | |
603 | 620 | | |
604 | | - | |
605 | | - | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
606 | 624 | | |
607 | 625 | | |
608 | 626 | | |
609 | | - | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
610 | 632 | | |
611 | 633 | | |
612 | 634 | | |
613 | | - | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
614 | 643 | | |
615 | 644 | | |
616 | 645 | | |
| |||
0 commit comments