Could not find job ID from stdout file (cromwell with an unusual backend)

Hi Cromwell Team,
Trying to get hello world working on our internal HPC and cromwell.

Our cluster software outputs something like this on a job submission:

mxq_group_id=206187 
mxq_group_name=cromwell
mxq_job_id=16988030

The backend config I'm trying to use:

 MXQ {
     actor-factory = "cromwell.backend.impl.sfs.config.ConfigBackendLifecycleActorFactory"

     config {
       runtime-attributes = """
       Int cpu = 1
       Int runtime_minutes = 10
       Int memory_gb = 1
       """
    
      submit = """
       sub \
       --stdout ${out}.sub \
       --stderr ${err}.sub \
       --group-name=cromwell \
       --threads=${cpu} \
       --memory=${memory_gb}G \
       --runtime=${runtime_minutes}m \
       /usr/bin/env bash ${script}
       """
      
      job-id-regex = "mxq_job_id=(\\d+)"
     
    <...>
     }
}

With the command:

java -Dconfig.file=cromwell.conf -jar cromwell.jar run test.wdl

it throws the error:

[2018-11-09 18:13:45,02] [info] WorkflowExecutionActor-33ee300a-782d-47ae-a1e9-35a494e8bf11 [33ee300a]: Starting myWorkflow.myTask
[2018-11-09 18:13:46,15] [info] DispatchedConfigAsyncJobExecutionActor [33ee300amyWorkflow.myTask:NA:1]: echo "hello world"
[2018-11-09 18:13:46,23] [info] DispatchedConfigAsyncJobExecutionActor [33ee300amyWorkflow.myTask:NA:1]: executing: sub \
--stdout /cromwell/cromwell-executions/myWorkflow/33ee300a-782d-47ae-a1e9-35a494e8bf11/call-myTask/execution/stdout.sub \
--stderr /cromwell/cromwell-executions/myWorkflow/33ee300a-782d-47ae-a1e9-35a494e8bf11/call-myTask/execution/stderr.sub \
--group-name=cromwell \
--threads=1 \
--memory=1G \
--runtime=10m \
/usr/bin/env bash /cromwell/cromwell-executions/myWorkflow/33ee300a-782d-47ae-a1e9-35a494e8bf11/call-myTask/execution/script
[2018-11-09 18:13:46,27] [error] DispatchedConfigAsyncJobExecutionActor [33ee300amyWorkflow.myTask:NA:1]: Error attempting to Execute
java.lang.RuntimeException: Could not find job ID from stdout file. Check the stderr file for possible errors: /cromwell/cromwell-executions/myWorkflow/33ee300a-782d-47ae-a1e9-35a494e8bf11/call-myTask/execution/stderr.submit
      at cromwell.backend.impl.sfs.config.DispatchedConfigAsyncJobExecutionActor.getJob(ConfigAsyncJobExecutionActor.scala:231)
      at cromwell.backend.sfs.SharedFileSystemAsyncJobExecutionActor.$anonfun$execute$2(SharedFileSystemAsyncJobExecutionActor.scala:143)
      at scala.util.Either.fold(Either.scala:188)

The stderr file empty:

cat /cromwell/cromwell-executions/myWorkflow/33ee300a-782d-47ae-a1e9-35a494e8bf11/call-myTask/execution/stderr.submit

The stdout as expected contains the job_id info:

cat /cromwell/cromwell-executions/myWorkflow/33ee300a-782d-47ae-a1e9-35a494e8bf11/call-myTask/execution/stdout.submit
mxq_group_id=206187 
mxq_group_name=cromwell
mxq_job_id=16988030

I'm wondering, why can't it pickup the job-id here?

Tagged:

Best Answer

Answers

Sign In or Register to comment.