Rmpi パッケージを使用して実行している OpenMPI クラスターにジョブを送信する R パッケージがあります。コンソールから R セッションを実行すると、すべてが期待どおりに機能します。ただし、次のようにOpenCPUサーバーから関連する関数を実行しようとすると(無実を保護するために詳細が変更されました):
curl -XPOST http://99.999.999.99/ocpu/library/MyPackage/R/my_cluster_function
次のエラーが表示されます。
R call failed: process died.
(パッケージ内のその他の非クラスター呼び出し関数は、OpenCPU を介して期待どおりに動作します)。/var/log/kern.log
さまざまな要求が apparmor によるものであることに気付きました。OpenMPIが必要なファイルにアクセスできるようにDENIED
エントリを追加することで、それらのほとんどを解決できました。/etc/apparmor.d/opencpu.d/custom
ただし、場所の「オープン」リクエストに関連する次の 2 つの問題 (ここでも IP アドレスが変更されました) を解決できません"/"
。
Oct 26 03:49:58 99.999.999.99 kernel: [142952.551234] type=1400 audit(1414295398.849:957): apparmor="DENIED" operation="open" profile="opencpu-main" name="/" pid=22486 comm="orted" requested_mask="r" denied_mask="r" fsuid=33 ouid=0
Oct 26 03:49:58 99.999.999.99 kernel: [142952.556422] type=1400 audit(1414295398.857:958): apparmor="DENIED" operation="open" profile="opencpu-main" name="/" pid=22485 comm="apache2" requested_mask="r" denied_mask="r" fsuid=33 ouid=0
これを私の apparmor ルールに追加しても役に立ちませんでした:
/* r,
2 つの質問:
- opencpu がルート レベル ディレクトリから読み取ろうとするのはなぜですか (または、これは別の意味ですか)?
- もっと緊急に、どうすればこの apparmor の問題を解決できますか?
ありがとう。