こんな奇遇があるのか!超焦った話
この数週間いろんなリニューアルやら運用変更が重なってまーまー大変です。
そんな今日このごろ、久々に全身の血の気が引いた事象が発生ました((((;゚Д゚))))
我々システム屋?え?お前システム屋だったの?っていう突っ込みはうまく躱して、システム屋というのは指一本で全システムを停める・壊す事が可能です。suとかrootとかsupervisorやらの特権モードになって特権コマンドを撃てるからです。
もちろん故意にシステムを指一本で破壊するわけではなく「間違って」「誤って」システム止めたり全データを消しちゃうことも可能な訳です。
ユーザーをBanするプログラム
Ban、バン、バン。誰かの歌ではなくバンです。悪いことしたり、ルール違反を犯した人のアクセス権を無くすやつ。俺世代のシステム屋だと「revoke」が馴染み深いけど、最近ではbanっていう言葉が使われるようです。「アカウントをバンされた」みたいな。
banとは : 禁止、禁止令、(世論の)無言の圧迫、反対、破門、追放、公権剥奪
https://ejje.weblio.jp/content/banより
で、とある外国人向けのユーザー管理システムで、やむを得ずアカウントをBANする仕組みを作りました。1年ほどの前の話。
BANしたユーザーは備考欄ににBannedって入力するようにしてるんですが、たまにシャレでBurnって入力もしてました。あ、因みにその画面は俺専用画面なので、俺以外は見れません。だからシャレでBurn(燃やした!)って入れたりしてた。
以上が前フリです。ここから本題です。
ユーザー情報を一部書き換えるプログラム
本日、ちょっと不具合があって、複数ユーザー情報の一部を書き換えることになりました。2~3件ならコンソールからSQLコマンド直打ちで逃げられるけど、この先もちょいちょい書き換えることになりそう。
なのでブラウザから書き換えられるプログラムを作ることに。
作るってもゼロから作るのではなく、過去に作った似た機能のプログラムをコピってそれをベースにするわけです。今回のはユーザーをBanするプログラムが一番近かったので、それをコピーしてたたき台に。ある程度作ってからテストします。
テストってもSQL一発で全ユーザー情報を削除することも可能なので、かなり慎重に、そして緊張しながら行います。
一人目のユーザーではちょっと失敗。それを踏まえ修正。
そして2人目でそれは起こった・・・
このプログラムはあくまでも一部を書き換えるものであって、BANには一切関係無いんですが、書き換えた箇所が・・・
Burn
ってなってる((((;゚Д゚))))
え?
この時、まじで背筋が凍って全身の血の気が引きました。
SQLの書き方間違えば、一発で全てのユーザーをBANすることもできちゃうからです。え?俺間違って全ユーザーの名前をBurnに書き換えちゃた?((((;゚Д゚))))
コンピュータがハングしたのではなく俺自身がしばらくハング((((;゚Д゚))))
((((;゚Д゚))))
((((;゚Д゚))((((;゚Д゚))))
((((;゚Д゚)
((((;゚Д゚
何度プログラムコードを読み直してもBANしてる箇所は皆無・・・
どーゆーこと?
原因はまさかの!
半分パニクりながらも冷静にコードと実行結果を見てて遂に原因が判明です。
なんと!!!!
テストしたときのユーザーさんの名前が・・・
Brunさん
フランス在住のBurnさんでしたwww
BanでもBurnでもなくBrunさんw
俺には最初Burnに見えたけど、よくよく見たらBrunでしたw
font-size:9pxは老眼にツライw
数万件レコードのうちの3件で書き換えして、まさか3件のうちの一人がBrunさんww
こんな偶然というか奇遇ってあるんだなー。すげー。モッテルのか俺?
っていう話でした(*´ω`*)
カテゴリ:日記・携帯更新