OSの改行コード違いでではまった話
今回の記事は、過去何度も経験したトラブルなのに、久しぶりに発生した為解決までに寄り道してしまった話です。
お客様でWebをサーバを立ち上げられた時、Peal言語をご利用されたいと言う事で、サーバにLinux、編集にWindowsを選定されたのが事の始まりです。
前提の知識として、Webの作成に使われるテキストファイルは、改行コードを付ける事で行の最後と判断しますが、OSによってこれが違います。
Linux(Unix系)は、「LF (Line Feed)」
Windowsは、「CR (Carriage Return)」+「LF」
そのため、Windowsで編集したファイルは、Linuxへ移動する際に改行コードを変換する必要があります。それでは、トラブルのお話です。
ある日、Webページが動かなくなったと連絡がありました。
まずは問題確認で、お客様に症状を再現頂き「ページ内に検索結果が表示されない」という事がトラブルと言う事が分かりました。
※余談ですが、お客様とトラブルの認識合わせは重要です。
影響範囲の確認で、他のPCでも同じ問題が起きる事からサーバ側と判断しました。過去類似の症状でPC側の原因と言う事もあり、範囲確認は必須です。
絞り込み作業で、Webブラウザの機能でソースを確認、Perlを呼んでいる事が分かりました。他のPerlを使うページは動作する事から、問題のページのプログラムに問題があると判断しました。
現物確認で、ソースファイルを自分のPCに取り込んで内容を表示、Windows側に保管されている物と違いがありませんでした。
Linuxのログイン権限がないで、管理者へLog確認を依頼しました。すぐに、「改行コード」が違っており直したら動いたと回答がありました。
原因も分かったので、発生理由の調査です。WindowsからUnixへファイルを転送には専用アプリを利用します。アプリにある「改行コード」を自動で変更する機能が、今回は変更せず転送したのが原因でした。次回から手動設定で転送する事で一応の歯止めとました。
既知の問題であるのですが、ひさしぶりに遭遇すると手間取りました。