SafariとTracの相性問題が解決?
MacのSafariからTracを使っていると、時々wikiやチケットの更新に失敗することがある。「変更を送信」ボタンを押したのに、なぜか表示は元のまま変更が加わらないのだ。ウェブブラウザの「戻る」ボタンで元の編集画面に戻ってから再度更新すれば上手く行くので、何かのタイミングによるものかと思いつつも実害は無いので放置していた。
ところが、先日PHPでツールを作っていた時に、Safariからのファイルアップロードにおいて高い頻度で失敗することに気がついた。正確な数字は控えていないけれど、感覚的に言うと4,5回に1回程度の割合で失敗してしまうようだ。いくらチーム内でしか利用しないツールとはいえ、これでは使い物にならない。調べてみたら、Safariのアップロード機能の相性の悪さはかなり有名な問題らしい。
- あんのたんのブログ : php製アップローダをSafariに対応させる - livedoor Blog(ブログ)
- python - Django file upload failing occasionally - Stack Overflow
- 5760 – Safari hangs when uploading files to certain php scripts
そこで上記サイトの情報に従って、Apacheの設定ファイル(MacOS Xなら/private/etc/apache2/httpd.conf)へ下記を追記してみたところ、問題の発生が無くなりアップロード機能は快調に動くようになった。
BrowserMatch "Safari" nokeepalive
これと同時に、Tracの更新失敗の問題も発生しなくなったような気がする。あくまで感覚的なものなので、これが本当の解決策になったのか分からない。実は他の変更が絡んでいるのかも知れないし、問題が発生しない状況が偶然続いているのかも知れない。少なくとも上記の変更を加えた後の数日間は問題が発生していない。これが本当に解決策になっているのか、しばらく様子を見てみたいと思う。