こんにちは。左目の充血が数週間続いている川口です。
今日は豪華2本立てです。
今回カテゴリを新設しました。
「川口の開発日記」とかいう、わからない人にとってはつまらないカテゴリです。
なるべくわからない人にもわかるように書きたいんですけど…。
何を開発していくか決まっているわけじゃないです。
日々書いているプログラムの話やブログの管理の話などをだらだらと書いていくつもりです。
さて、今回は500エラーの話です。
目次
500エラーってなんぞや
ウェブサイトには、数種類のエラーが存在します。
よく見るのは404エラー、ページが存在しないというエラーです。
(このブログの404エラーはこんな感じです。)
他には403エラー(閲覧権限が与えられていない)なども多いですね。
そんな感じで、ウェブサイトの状態に番号が割り当てられています。
500エラーは、別名「Internal Server Error」。
サーバーの処理でエラーが起きてるよというやつです。
こういうブログにも、プログラムは使われているわけです。
そのプログラムに間違いがあると、処理できないよということで500エラーになり、閲覧ができなくなってしまうんですね。
謎の500エラー
このブログには、2種類の記事があります。
ひとつがこれみたいな、普通のブログの投稿。
もうひとつが OVERVIEW や MEMBERS のような、固定ページと呼ばれるページです。
事件は後者の固定ページで起こります…。
ある日、固定ページを書き換え、更新をしようとすると……謎の500エラーが起きました………。
数日後、もう一度試してみると、またもや500エラー………。
「あれ…?おかしいなぁ……こわいなぁ…こわいなぁ……。」
原因を探してみてもわかりません………。
「固定ページを更新したときだけ起きるし……なんだこれ………。」
自分のプログラムを確認しても、やっぱり間違いはありません………。
そこで、投稿や固定ページの更新と同時に動きそうなプログラムを、ひとつずつ止めてみました………。
すると、なんとプッシュ通知のプログラム(他社製)を停止したときには500エラーが起きないのです………。
「…!…これだ……!!」
中を確認してみると………なんとそこには……………
引数を渡し忘れた関数が………!!!
そりゃエラーも出ますよね。
わかる人にはわかるとてもこわい話でした。
余談その1
先日Twitterでお詫びしたとおり、変なプッシュ通知を飛ばしてしまいました。
【ブログ更新 2/2】
ReUs RTer(自動RTするやつ)の対象ツイートについて公開いたしました。
今後はこれに基づいて運営してまいります。また、本日誤ったプッシュ通知が送信されました。
申し訳ありませんでした。— ReUs@変な乗り物を作る男達 (@ReUs_Shibaura) April 16, 2017
これの原因、プッシュ通知のプログラムで起きるエラーの検証です。
中身見ていろいろ試してみたら送信されてしまいました…。
余談その2
1年ほど前、川口、佐藤、竹脇の3人で、共同でプログラムを書くという課題に取り組みました。
コンパイルしようとすると、printfが動かない…!?
確認すると、竹脇がstdio.hをインクルードし忘れていました。
うっかりやっちゃうことってあるよね。