2016-03-21 106 views
4

运行用pyCOMPSs实现的应用程序时出现错误。该应用程序运行良好,但我在应用程序中做了一些更改,并且它已停止工作。这是堆栈我从应用程序得到:运行pyCOMPSs应用程序的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中定义为工作目录和应用程序创建该文件夹。难道我做错了什么?

+1

开始执行之前是否存在此文件夹?它是由任务创建的吗? –

+0

该文件夹由应用程序在第一个任务中创建 –

回答

4

在执行定义的任务之前,project.xml中定义的工作目录必须存在,因为它是远程任务执行的地方。根据(py)COMPSs运行时使用的通信适配器,如果它不存在,可以创建它。从您发送的堆栈中,我可以推断出您正在运行GAT适配器,事实并非如此。

你正在做的错事是一个任务正在创建工作目录,而且这是不允许的。工作目录文件夹应该在部署时创建。在这种情况下,运行时正试图在执行期间应该创建的文件夹内运行任务。在一个任务的代码中,可以创建一个文件夹作为一个带有相对路径的沙盒,并且将在工作目录中创建,但请记住即使它们在同一个工作节点中执行,它也不会从一个任务持续到另一个任务。

相关问题