【障害記録】No.9:副問い合わせが一意にならずにシステムエラー
自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。
障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)
9 | A | アプリ | 副問い合わせが一意にならずにシステムエラー | ★★☆☆☆ |
自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。
障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)
9 | A | アプリ | 副問い合わせが一意にならずにシステムエラー | ★★☆☆☆ |
「テキストボックスやテキストエリアに文字を入力してサーバにPOSTするとき、リクエストを送るブラウザによってサーバ側が受け取る文字(正確には「文字コード」)が変わる」
というケースを発見したっていうか実際に遭遇した。
これはちょっと前にツイッターでつぶやいた以下の内容に端を発し、事象を追求していく中でわかった事実である
unicodeの私用領域付近のコードをサーバにPOSTすると、サーバ側で受け取るコードがブラウザによって変わるという、謎の現象の話を聞いた。ホントかよと思い簡単なアプリ作って実験してやるぜと思ってたら半日が過ぎていた。真面目に仕事しないとな…(′・ω・`)
— rmブランクスラッシュ(rm) (@rm_blank_slash) 2017年7月26日
これが、どういう理由や背景があるものなのかわからないが、
こういう、「サーバ処理に届く前に値を書き換えられる」というようなことやられると、
基本サーバ側で待ち構えているプログラムでは手の出しようがなくなるので、ちょっと困る。
(自分たちが作った範囲以外で起きる事象に対する動作保障はできない、というのが一般的な見解だ…昨今はそれが通じないことも多いが)
とりあえず実験してわかった範囲での記録をここに挙げていく。
※実験の過程で、WikipediaのUnicodeのページを参考にさせていただいた。
https://ja.wikipedia.org/wiki/Unicode
以後「Wikipedia」でという記述が合ったら上記のリンク先のページがそれだと解釈していただきたい。
自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。
障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)
8 | B | アプリ | 月次のデータ削除処理が48時間を超えて長時間走行 | ★★★☆☆ |
自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。
障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)
6 | B | アプリ | アップロード処理のレスポンス改善対応 | ★★☆☆☆ |
ふと思い立ってやってみた実験。
jar内と自作したクラス、もしくはjar同士などで、クラスが競合している場合の動きを実験する。
「競合」って言い方が正しいのかどうかわからないが、要するに
「com.test.Test」みたいなクラスがあったとき、
それとまったく同じパッケージ構成・名前のクラスが、別々の場所にそれぞれ2つ(ないし2つ以上)存在していた場合の挙動に関する実験である。
現プロジェクトでも一部のクラスが完全競合しているので動きが少し気になっていたのだ。
周囲の風説(?)に寄れば、「こういう場合、Javaの気まぐれに寄るので、どっちのクラスが使われるのかわからない」という、恐ろしい内容も耳にしている。
一方で、「クラスパスに指定した順(クラスローダ―が読み込む順)に応じて順次上書きしていく」というような話も聞いている。
どっちが正しいのか?実験してみる。
まあそもそも競合なんておこさないほうがいいに決まってるんだけどね。
自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。
障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)
6 | B | ハード | 大容量データのFTP転送によるサーバ過負荷と、それに伴うシステム一時停止 | ★★★★☆ |
javascript,jqueryによるオブジェクト表示非表示制御に関する個人的なメモ
自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。
障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)
5 | B | アプリ | 内部処理におけるデータ区分変換誤りの対応 | ★☆☆☆☆ |
仕事に飽きたので(最近よく飽きるのだ)眠気覚ましと頭の体操の為に適当な数学の問題に挑戦する。
ノリはこれに近い。
挑戦する問題はこれ↓だ!(Windows標準の数式エディタで書いたので細部がいまいちだがまあいいや)
Twitterでよく出てくる「絵文字」「顔文字」その他「不思議な文字」の正体を追跡する暇つぶしコーナー
主にtwemojiの簡単な実装方法の紹介(むしろその程度にしか知らん)と、絵文字や顔文字に関する情報の収集や整理等。