1

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 つの質問:

  1. opencpu がルート レベル ディレクトリから読み取ろうとするのはなぜですか (または、これは別の意味ですか)?
  2. もっと緊急に、どうすればこの apparmor の問題を解決できますか?

ありがとう。

4

1 に答える 1