Linux上でWindowsAPI実装のフレームワークの”wine”を利用してMT4を稼働させると、あるタイミング(要因)で落ちることがあるようです。
今日も試しに、実体験的に落ちやすいKeltnerProをLinux上のwineで稼働させていましたが、案の定半日後ぐらいにMT4が落ちていました。
wineはエラーログ等をファイルに出力しないようですので、今日はterminalからMT4を起動し、どのようなメッセージが出力されてるのかを捕捉しました。
結果的に、wineのネット制御のモジュールに不具合があるようです。因みに、現在利用しているwineのバージョンは、1.6.2です。
net.cのサイズチェックの箇所で問題が起きているようです。
read_ssl_chunkのところですね。
その他のfixmeは目を瞑りましょう。。。
というわけで、wineのソースコードに対し、根本的な対処が必要なようですので、解決策がないかをググりました。
現状おそらく対処方法としては2つあり
- winehqのメーリングリストに投稿されているパッチ:”winhttp: Use a helper to send data and take care of EINTR”をソースコードに当てる
- wineのバージョンを、開発系の1.7系にする
上記方法のどちらかで対処できそうな気がしますので、比較的簡単なはずの、wineのバージョンを1.7系に切り替える作戦で対処してみようと思います。