125 継続お問い合わせ『ダンジョンが臭い』1
「継続したなぁ」
「継続しましたねぇ」
異臭騒ぎもすっかり収まった保守サポート部であるが、臭いのトラブルはドラ子を許してはくれなかった。
日頃の行いゆえだろうかと、ドラ子は最近の不規則な生活を自省しつつ、届いたお問い合わせに目を通す。
──────
マニュアルに目を通し、再度清掃をしても臭いは消えませんでした。
情報を送りますのでよろしくお願いします。
──────
相変わらずの簡潔な文章であるが、そこに文句を言うこともない。
ドラ子は届いた情報を解凍しながら、ついついぼやく。
「なんか最近、微妙に面倒なお問い合わせが増えた気がするんですよね」
ここ最近のお問い合わせを思ってのことだった。
面倒臭さで言えば回復の泉の件が別格ではあったが、最近ドラ子の対応チケットの難易度が上がって来ている気がしていた。
もちろん、ミミックが家具機能であることを案内するだけの簡易なチケットも無くなりはしないが、そうでないチケットが増えた。
最初は簡易チケットの顔をしている癖に、継続して障害解析に繋がるようなチケットも、最近よく回って来ているように感じる。
「まぁ、秋だからな」
「関係あります?」
「読書の秋、スポーツの秋、食欲の秋、そしてダンジョンの秋って良く言うだろ」
「ウチの地方では言わないですけど」
と口では返しつつ、少しだけドラ子は思った。
まぁ、何をするにも快適な季節というなら、ダンジョン攻略にも適した季節だったりするのかもしれないと。
「真夏の灼熱の中でダンジョン攻略とか、真冬の極寒の中でダンジョン攻略とか、基本マゾしかやらないからな。冒険者だって寒さが厳しくなる前に追い込みくらいかける」
「言われてみればそうかもですけど……?」
「で、冒険者の数が増えれば増えるほど、Solomonの稼働も上がって、結果として不具合が発生する可能性も増える。だから、秋は不具合が多くなるんだ」
「そうかな……そうかも……」
メガネは自信満々に言い切った。
そうまではっきりと断言されると、ドラ子としても説得力を感じてしまう。
なお、もしここに白騎士(仮)が居れば──「あの、異世界で四季は共通ではないですし、この世界の季節とかは特に関係ないと思いますけど……」と冷静に突っ込んだだろうが、ここにはドラ子しかいなかった。
つまるところ、ドラ子に難しいチケットが回ってくるようになったのは、単に新人補正を少しずつ解除しているだけの話であった。
「と、解凍終了」
そんな無駄話をしていたところで、ドラ子は顧客から送られて来たダンジョンの設定情報を展開する。
基本的には、要望を出した通りの情報が入っているのだが、それ以外にオマケがあった。
「……なんか、要求した覚えのないログとかもめっちゃ入ってるんですけど」
今回ドラ子はメインシステムログとエラーログ、それに稼働させていた筈の環境構築機能のログを要求しただけなのだが、明らかにその他の機能のログも大量に送られて来ていた。
「たまにいるよな。頼んでない情報もセットでくれるお客さん」
「どうしましょうか?」
「どうもしなくて良いだろ。くれる分はありがたく貰っておけ。もしこっちが要求した情報だけでは解明できなくても、そういうオマケから何かが分かることもある」
思ったよりも膨大だったデータに怯んだドラ子だったが、メガネは特に感慨も無さそうに言うのみだった。
実際、情報が足りないならともかく、余分に入っていても困ることは特にない。
せいぜい、情報を探すのが少し手間取る程度だ。
「で、先輩。私はこれからどうすればいいですか?」
さて、とチケット対応の準備を済ませたドラ子が、悪びれることなく尋ねた。
メガネはそれを白けた目で見る。
「どうするもこうするも、チケット対応始めればいいだろ」
「何から始めたら良いのか、実は良く分かりません」
「お前なぁ」
他力本願姿勢なドラ子に、ガラにも無く説教をしようかと思ったメガネだったが、それは寸での所で飲み込んだ。
そういえば、ゴーレム部長の機嫌のために、あれこれと横から口出しをして回答を書かせたのは自分だったからだ。
ドラ子のお問い合わせへの理解を置いてけぼりにして、さっさと回答を書かせてしまった自覚はあった。
ましてや、障害解析に発展したチケットであれば、放っておいたらドラ子が勝手に迷子になって、時間を浪費するだけかもしれない。
そこまで考えて、メガネは仕方なく今回の調査のイメージを伝えた。
「…………とりあえず、前回の回答で書いたように、まずは状況の切り分けだよ」
「ふむふむ」
状況の切り分け、とは読んで字の如く、事象が発生する状況を分解して、その原因を探ろうとする行為だ。
例えば『三人で一斉に宝箱を開けたら、入れていた筈の薬草がなくなる』といった、新規不具合らしき事象があったとする。
まずやることは、顧客から事象が発生する状況を教えて貰って、それがこちらの環境でも再現できるか確認することだ。
ここで再現できなければ顧客の環境固有の何かが原因かもしれないとなるし、再現できたら更に状況を細分化していく。
『三人で一斉に開ける』ことがトリガーなのか『宝箱の種類』によるのか『宝箱の中身が薬草』だから発生するのか、といった具合に、状況を少しずつ変えて行って事象が発生する条件を割り出すのだ。
条件がある程度絞り込めたら、ようやくソースコードの該当箇所の確認に入り、不具合が発生する術式の特定に入っていく。
そして最後に、どの辺りの術式が悪さをしているのかまで分かれば、開発に不具合情報を投げて、新規不具合として認定して貰う、といった感じが一連の流れとなる。
とはいえ、挙げた例のようにすんなり行く事はほとんどない。
だいたいは、どこかで躓いたり、原因の特定ができず迷子になったり、開発チームが新規不具合と認めたがらなくて、なんとか仕様ってことにできないかと四苦八苦したりするのだが、今は良いだろう。
既存の不具合っぽくない動きをしていれば、新規不具合の可能性を考えてこういう対処をするのが、今回のようなケースとなる。
「つまり、こっちでまず状況再現を試みて、それができたら新規不具合認定の方向にってことですね?」
「大雑把に言えばそうなる。その前に、ログを確認して既存の不具合にひっかかりそうにないかのチェックも大事だけどな」
そう。
明らかに新規不具合っぽい事象であっても、実際は既存の不具合と同じ原因で発生していると言った事もままある。
そういった場合は、エラーログなんかがヒントになっていたり(既存不具合でエラーを吐く奴はだいたい詳細や備考に記載がある)する。
そのため、まずはエラーを吐いているか確認して、それを不具合情報のところで検索してみるのが、最初にやるべきことと言えるかもしれない。
「了解です。そこまで分かれば大丈夫です。先輩は自分の仕事に戻っていいですよ」
自信満々にドラ子が言い切ったので、一抹の不安を覚えながらメガネは自分の担当しているチケットに戻る。
そんなメガネへの感謝もそこそこに、ドラ子は教わった通りにログの確認を始める。
「手始めに、メインシステムかな」
まずメインシステムログを確認すれば、環境構築システムの清掃機能が働いた時間、そして、その清掃がなにやら異常終了したらしきログが確認できた。
「既存不具合の可能性もある、かな」
ここで異常終了している、ということは、清掃機能がうまく働いていないのとほぼ同義である。
続いて、ドラ子は先程清掃をしていた時間帯を確認しつつ、エラーログの方を見てみる。
すると、思いのほかあっさりと、それらしいエラーメッセージが確認できた。
『Out of Memory Error』
まるで「記憶にございません」としらばっくれる偉い人のような単語だが、もちろんそんなことはない。
これは、術式で使う領域の確保が上手くいかなかったことを示すエラーメッセージだった。
要するに、顧客の環境では清掃機能を利用しようとしているのだが、何らかの原因でコアの領域が足りなくなって、清掃機能が異常終了していた、という状況が想定された。
「とりあえず、エラーメッセージが出てるなら検索してみるか」
未だに原因は分からずだが、ひとまず既知不具合の可能性を考慮して、ドラ子は不具合一覧を開く。
そして、検索をかけてみて、軽く絶望した。
「先輩」
「なんだ?」
「なんで『Out of Memory Error』が発生する不具合、こんなに多いんですかね」
「それはね、Solomonだからだよ」
そう、不具合一覧の備考欄には大量の『Out of Memory Error』の記載があったのだ。
それこそ、仮に既知不具合だったとしても、そこから本命を探し当てるのは困難なのであった。




