· Mar 11, 2022

JOB command fails with Embedded Python

It sounds strange though it's embarrassing.

I have a class with ClassMethods written in ISOS and Embedded Python.

The ClassMethods written in ISOS start in the Background as usual. No problems

But my 

ClassMethod setPy() [ Language = python ]
import iris, datetime, time
- - -

Just fails the JOB command with (even 15 sec) timeout and $ZC=0
This is not funny

My actual workaround:
I created a ClassMethod in ISOS, that does an elegant JobStart
and this ClassMethod only runs the Embedded Python ClassMethod.

I'm not amused and hope there is just an undocumented/unknown param missing

I have a feeling about what's going on. But it's not for public discussion. 

Product version: IRIS 2022.1
$ZV: IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2022.1 (Build 114U) Mon Jan 31 2022 01:56:13 EST
Discussion (4)2
Log in or sign up to continue

OK. after some detailed analysis I found these facts that I forward to WRC:

  • normal JOB command ISOS/COS
    • returns $TEST to signal success/fail
    • $ZC the id of the started job.
    • this happens after complete init of the job or eventually timed
    • is always ASYNCHRONOUS  to the background job
  • JOB command for Embedded Python if not timed
    • Hangs until AFTER completion of the started job
    • then return $TEST and $ZC which is useless as the job is gone!
    • acts SYNCHONOUS to the started job 
  • timed JOB command for Embedded Python
    • returns after the timeout with $TEST = 0  ==> FAILED
    • does not return the id of the started JOB
    • though the started Job may work fine
    • you just don't get info and may find out by other means if it is OK
  • Workaround until a fix.
    • Start a background job as ISOS/COS Class Method
    • let this class method start your method in Embedded Python.

Another reason why Embedded Python Pure is just a fiction