2016-03-21 23 views
4

pyCOMPSで実装されたアプリケーションを実行中にエラーが発生しました。アプリケーションはうまくいっていましたが、アプリケーションのいくつかの変更を行い、動作を停止しました。pyCOMPSアプリケーションを実行中のSCP障害

--- START OF NESTED EXCEPTION STACK TRACE --- 
*** stack trace of GATInvocationException 
    --- START OF NESTED EXCEPTION STACK TRACE --- 
    *** stack trace of GATInvocationException 
     --- START OF NESTED EXCEPTION STACK TRACE --- 
     *** stack trace of IOException 
     java.io.IOException: Error during SCP transfer. 
     at com.trilead.ssh2.SCPClient.put(SCPClient.java:592) 
     at com.trilead.ssh2.SCPClient.put(SCPClient.java:456) 
     at org.gridlab.gat.io.cpi.sshtrilead.SshTrileadFileAdaptor.put(SshTrileadFileAdaptor.java:418) 
     ... 
Caused by: java.io.IOException: Remote scp terminated with error (scp: /gpfs/scratch/wdir_pycompss: No such file or directory). 
     at com.trilead.ssh2.SCPClient.readResponse(SCPClient.java:59) 
     at com.trilead.ssh2.SCPClient.sendFiles(SCPClient.java:166) 
     at com.trilead.ssh2.SCPClient.put(SCPClient.java:588) 
     ... 15 more 

     --- END OF NESTED EXCEPTION STACK TRACE --- 
    *** stack trace of MethodNotApplicableException 
LocalFile: cannot copy to remote destination 
    --- END OF NESTED EXCEPTION STACK TRACE --- 
--- END OF NESTED EXCEPTION STACK TRACE --- 

それはフォルダが見つからなかったが、それはproject.xmlの中でWORKINGDIRとして定義され、アプリケーションがこのフォルダを作成していることを述べている:これは私がアプリケーションから持っているスタックです。私は何か間違っているのですか?

+1

実行を開始する前にこのフォルダは存在しますか?タスクによって作成されますか? –

+0

フォルダは、最初のタスクでアプリケーションによって作成されます。 –

答えて

4

project.xmlに定義されている作業ディレクトリは、リモートタスクが実行される場所であるため、定義済みタスクの実行前に存在する必要があります。 (py)COMPSランタイムによって使用される通信アダプタに応じて、存在しない場合は作成することができます。あなたが送ったスタックから、GATアダプターを使って走っていると推測できます。そうではありません。

あなたがしている間違ったことは、作業ディレクトリが作成中であり、許可されていないということです。作業ディレクトリは、展開時に作成する必要があります。この場合、ランタイムは、実行中に作成する必要があるフォルダ内でタスクを実行しようとしています。タスクのコードの中で、相対パスを持つサンドボックスとしてフォルダを作成することができます。これは作業ディレクトリ内に作成されますが、同じワーカーノードで実行されてもタスク間で永続することはありません。