タグ

2022年7月30日のブックマーク (4件)

  • 「バグを意図的にバグのまま残す」という選択肢がある

    はじめに gcc v12.1において、C++の正規表現ライブラリstd::regexに、正規表現のバリデーションを改善するパッチ(以下"改善パッチ"と表記)が取り込まれました。改善パッチによって、これまではバリデーションにひっかからなかった不正な正規表現文字列が"正しく"不正なものと認識されて例外が発生するようになりました。 これだけ聞けばいいことだけのように思えるかもしれませんが、実はそうでもなかったりします。経験豊富なかたであれば見た瞬間ゾッとしたかもしれません。記事では、この一見問題なさそうな改善パッチによって発生しうる問題、および、その具体的例について紹介するとともに、この手のパッチを当てるかどうかは難しい判断になるという知見を共有します。 結論 改善パッチによって発生する問題 発生条件 gcc v12.1以降、あるいは改善パッチをバックポートされた任意のバージョンを使ってC++

    「バグを意図的にバグのまま残す」という選択肢がある
    bootJP
    bootJP 2022/07/30
  • KDDI通信障害は“作業マニュアルの取り違え”から ヒューマンエラーで補償額73億円

    auなどで7月2日に発生した通信障害は、約81時間にわたり合計3043万回線に影響を与えた。KDDIは29日の会見で、障害発生の原因はルーターの設定ミスと説明したが、そのミスが発生したのは、作業マニュアルの取り違えからだった。 「(今回の通信障害は)防がなければならなかったものと思っている。(ルーターの)設定ミス(が原因)と言っているが、作業における指示ミスだった。オペレーターは指示通り作業した」 KDDIの高橋誠社長はそう話した。 障害発生から回復までの流れはこうだ。まず、通信ネットワーク内の中継ルーターをメンテナンスする際に設定ミスが発生。ユーザーが通信する際に発信端末から送られる「位置登録」がルーターに足止めされ、音声通信に使うネットワーク機器「VoLTE交換機」まで正常に届かない状態になった。 これによりルーターとVoLTE交換機の間で位置登録の再送が何度も繰り返され、VoLTE

    KDDI通信障害は“作業マニュアルの取り違え”から ヒューマンエラーで補償額73億円
    bootJP
    bootJP 2022/07/30
  • Multiversion Concurrency Control(MVCC) その1 - Qiita

    次のような実行スケジュールを考える。T1がxを読んだらコミット前にT2がやってきてxの値を書き換えてしまった。 このトランザクションの挙動は S2PLであればT1がxを読んだ時点でロックされるのでT2はロックが取れず停止する OCCであれば、T1がコミットしようとしてValidateする段階でAbortする というように、通常であれば走りえない。しかし、このT1の実行はT2がコミットした後であってもコミットできてもT1→T2の順に動作が完了したという形にSerializeできるので、当はAbortする必要がない。つまりこの実行はSerializableだがCSRの外にある実行スケジュールという事になる。 1983年のTODSのPhilip A. BernsteinらによるMultiversion concurrency control-theory and algorithmsでは、この

    Multiversion Concurrency Control(MVCC) その1 - Qiita
    bootJP
    bootJP 2022/07/30
  • マイグレーションしないRDBMS

    README.md マイグレーションしないRDBMSが欲しい! 課題 PostgreSQLなどの既存のRDBMSはスキーマを持つ。スキーマがあることは良いことだが、このスキーマのライフサイクルはアプリケーションコードのライフサイクルと乖離しがちで、結果として以下のような問題が発生する。 特に自動化をしない場合はマイグレーションをデプロイとは別に行う必要が発生する。これにより、 シンプルに作業が面倒。 承認フローが追加で必要になる。または、デプロイはレビューの管理下に置かれているのにマイグレーション側が適切に管理されないなどのミスマッチが起きる。 マイグレーション忘れ、マイグレーションのリバート忘れのリスクがある。 異なるバージョンのアプリケーションは同時に存在できるがスキーマは同時に存在できない。これにより、 ある種のスキーマ変更はローリングデプロイ環境下では実質的に実行できない。 (テー

    マイグレーションしないRDBMS
    bootJP
    bootJP 2022/07/30