稼働中バイナリを差し替えるときの atomic rename パターン
まとめ 稼働中の ELF バイナリに cp で上書きすると Text file busy (ETXTBSY) で失敗する 一時ファイルに書き出して mv -f で差し替える atomic rename で回避できる rename(2) はディレクトリエントリだけを書き換え、古い inode は実行中プロセスが使い続ける Rails で同じ問題に遭遇しなかったのは Capi...
まとめ 稼働中の ELF バイナリに cp で上書きすると Text file busy (ETXTBSY) で失敗する 一時ファイルに書き出して mv -f で差し替える atomic rename で回避できる rename(2) はディレクトリエントリだけを書き換え、古い inode は実行中プロセスが使い続ける Rails で同じ問題に遭遇しなかったのは Capi...
まとめ GitHub App の bot user (<slug>[bot]) を @<slug> で mention しても、bot がその repo の participant になるまで auto-link されず plain text のまま表示される bot が participant になる条件は「その repo で 1 度でもコメント済み」「...
参考: Amazon RDS event categories and event messages まとめ RDS Multi-AZ の failover は「別 AZ への切替」と「同一 AZ での復旧」の2パターンがある RDS-EVENT-0015 (Multi-AZ failover to standby complete) → 別 AZ への切替 RDS-EV...
まとめ AI への技術指示が誤解されるのは「出力例」だけ提示しているケースが多い 出力例に加えて スコープ(実行範囲) ロジック(生成ルール) データソース(入力源) を併記すると一発で伝わる 出力例単独だと AI 側が前提を勝手に補完してしまい、間違った方向に作り込みが走る きっかけ AI コーディングエージェントに「フェールオーバー検証スクリプトの出力で 1a → ...
参考: HTTPS公開サイトへの即座の攻撃について まとめ HTTPS証明書を発行すると CT Log(証明書透明性ログ) に即座に記録され、誰でも検索できる 攻撃者はcertstreamでCT Logをリアルタイム監視しており、証明書発行から数分以内にスキャンが来る 開発・ステージング環境はBasic認証+IP制限で守る。本番はWAF サブドメイン名を隠すにはワイル...
まとめ SES のサプレッションリストはリージョンごとに独立している。正しいリージョンを確認すること Hard Bounce が発生すると SES がアドレスを自動的にサプレッションリストに登録し、以降の送信がすべてブロックされる サプレッションリストから削除してもブロックされたメールは再送されない。手動で再送が必要 現象 あるユーザーへの招待メールをはじめ、OTP...
参考: マネーフォワードのGitHub不正アクセス事件をエンジニア視点で読み解く まとめ ソースコードへの認証情報ハードコードと本番データのテスト流用は「当時は正解だった判断」が組織の成長とともにアップデートされなかった結果 削除済みファイルも git log -p で復元できる。リポジトリをクローンされると歴史ごと盗まれる セキュリティ問題は「人の意識」ではなく「機械的...
はじめに anyenv はシェル初期化に依存したシム方式でランタイムを管理する。この設計が bubblewrap sandbox のようなシェル初期化を行わない環境と相性が悪く、node や npm が見つからずに大量の回避策が走る問題に直面した。 根本解決として mise への移行を検討した際に生じた疑問と、移行手順をまとめる。 anyenv と mise それぞれの仕組み a...
GitHub で「親 issue を議論ハブにして、確定した作業単位を sub-issue として 1 issue = 1 PR の粒度で切り出す」運用を感覚的にやっていたが、AI に sub-issue を実装させるようになって複数の事故が起きた。 人間だけで回していた頃は「親 issue を見れば文脈が分かる」「ラベルで状態を表せばいい」程度の暗黙ルールで動いていた。AI に sub-...
状況 ビルド成果物(数 MB の Go バイナリ)を誤って commit して push してしまった。.gitignore で追跡解除しても 履歴には残り続ける ためリポジトリサイズが膨らむ。 クリーンに除去するには履歴の書き換えが必要で、これは破壊的操作なので force-push と各クライアントの再 clone(または reset)が伴う。 主な選択肢 1. git filt...
遭遇したエラー git pull 実行時に以下の警告が出た。 Auto packing the repository in background for optimum performance. See "git help gc" for manual housekeeping. warning: The last gc run reported the following. Pleas...
背景 複数リポジトリのタスクを一元管理する仕組みを構築するにあたり、GitHub Projects v2 を gh CLI で操作する方法を調査した。 Classic PAT が必要 gh project コマンドは Fine-grained PAT では動作しない。 Fine-grained PAT はユーザー所有の Projects に現在非対応(GitHub ドキュメント...
結論 Claude Code の Auto Mode 中に外部システム(チケット管理ツール)への書き込みコマンドを実行したら、Permission for this action has been denied. で止められた。設定の deny ルールでも hook でもなく、公式機能 “Permission Classifier” によるリアルタイムのリスク評価が正体だった。 参...
参考: Floci の最初の1ヶ月:41サービスへ拡大した AWS エミュレータ LocalStack を CI で使っていると、Pro 機能の認証や有償ライセンスに引っかかる場面がある。代替を探していて Floci にたどり着いたので、概念だけメモしておく。手順ではなく「何のためのツールなのか」を腹落ちさせるのが目的。 Floci とは AWS サービスをローカルでエミュレー...
まとめ SSE-S3 のみの運用は「暗号化されている」が「鍵管理は統制されていない」状態 SSE-S3 が守るのは物理層レベルの脅威のみ。運用面の漏洩には寄与しない SSE-KMS 未使用 = 鍵レベル多重防御・鍵利用ログ・顧客主導キーローテーション・クロスアカウント鍵制御・コンプライアンス対応がすべて欠落 前提:S3 の at-rest 暗号化方式 ...