メンテでらりったところをまとめておく

社内試験に無事に合格したので、本番用アカウントをやっととることができたので、やっとメンテナンスに参加することができました。

もうほんとに社内試験に落ちまくっていじられてたまに、凹んだりしてるんですが俺若いから!まだ22歳だから!院生に何を言われたって凹まないぞ!!

 

さて、一昨日メンテナンスに参加した訳ですが、結構大規模な手順でどっかで緊急対応しなければならないと思ったいたのですが、案の定割と対応に困る物が出て来たのでまとめておきます。

将来、新卒を抱えてメンテナンスに出る時に落ち着いて対応出来る気が全くしないので、今のうちの経験値ためておきます。

 

1.管理画面にアクセス出来ない

DBの作業が終わり、リリースする前に現行のバージョンで動作確認を行ったのですが、管理画面にアクセス出来ないという自体が起こりました。

状況をまとめると

1.DBの不要なカラムを削除した。ソースコードでそれらを参照しないように対応済み

2.memcachedは再起動済み

3.htaccessを切り替えて、開発権限のみアクセス出来る状態

4.404や503などエラーは表示されず、真っ白な画面

5.errorlogには何も出ていない

という状況です。

 

4,5からソースコードレベルの話ではないということが分かったのですが、そこから結構四苦八苦悩みました。

DBの存在しないカラムを参照しているから、このような事態になったかと思ったのですが、エラーログが出ていない事から1であることもありえない。

残りは2,3というわけなのですが、memcachedのpidは新しくなっている事を確認したので、消去法的に3しかありえない。というところまでは30分ほどで結論に至りました。

で、どうするか。という話になったのですが、一旦htaccessをリリース状態に切り替えて動作を確認したところ、問題なく動きました。

(認証付きの管理画面だし問題ないだろうとの事で。一瞬だけ)

 

先輩もhtaccessでどのような制御をしているかを知らなかったので、結構怖かったです。というか手順読み合わせで確認してくれよ...

 

2.memcachedがrestartできないというエラーがめっちゃでる

その後、リリースを行い、念のためにmemcachedを再起動させたのですが、

複数あるうちのいくつかのサーバのmemcachedがすごいエラーを飛ばしてきました。

内容を見る限りは、fail to restartなのでうまく死んでいない。とのこと。

memcachedの再起動にはshellスクリプトでちゃっちゃか行うだけなので、おそらく不具合が起きたっぽい。

psでpidを調べてからkill そして起動を行う事で対処完了。たいした話ではないけど、結構怖かったです。アラート音が。

 

3.管理画面と一部サービスが503を返す

リリース作業が全て完了し、最終的な動作確認を行ったところ、一部サービスが503を返しました。

errorlogを監視するも何にも出ていない。

さっきと同じhtaccessの問題かと思ったが、先ほどと同様のhtaccessに切り替えても、503errorがでているので、どうやら別の問題。

依存関係にある他の部署からの連絡は特にないのでサーバの問題かと思ったが、やはりerrorlogは全く出ていない。

こいつはお手上げかと思ったが、全く別のサービスでネットワークエラーが検出されたようで、全体的な503errorが出たとの事。

何もやっていないのに直ったとかいうエンジニアにあるまじき事を言って、解決

 

 

 

という感じで中規模くらいの対応が3つでました。2,3はそこまででもなかったのですが、まだなにもしてないってのに1の段階で結構はまってしまい、終始ヒヤヒヤしたメンテナンスでした。

俺はもう上長に電話する準備万端でスタンバって居たのですが、先輩が落ち着いて対応していてかっけーなと少し思いました。

 

原因を洗い出していっこいっこ踏みつぶして行く消去法が一番間違いなかったです。

まさかhtaccessだとは思いませんでしたが。

あと手順は便利です。

原因を洗い出す時に漏れなく検知することが出来るんで。

 

 

何事もなかったとは言いませんが、結果的にon scheduleでメンテナンス終了してよかったです。

次はまじで何にもなく終わる事を祈ります