From: "Anton Blomberg" <anton.blomberg@swiss.se>
Subject: Jobdonecommand not executed
   Date: Thu, 21 Feb 2008 12:00:25 -0500
Msg# 1690
View Complete Thread (6 articles) | All Threads
Last Next
Hi
I'm trying to use the -jobdonecommand to execute a python script when a rush 
job is done.
There is no problem with the submit or rendering, but the jobdonecommand is 
never executed.
I set it to:
jobdonecommand python //server01/jobdone.py
but that script never runs. And no errors about it is logged.
Are there any parameters that can interfere with the jobdonecommand that I 
need to set to enable/disable it?

/Anton
--
Swiss International | www.swiss.se




   From: Greg Ercolano <erco@(email surpressed)>
Subject: Re: Jobdonecommand not executed
   Date: Thu, 21 Feb 2008 17:00:51 -0500
Msg# 1691
View Complete Thread (6 articles) | All Threads
Last Next
Anton Blomberg wrote:
> I'm trying to use the -jobdonecommand to execute a python script when a rush 
> job is done.
> There is no problem with the submit or rendering, but the jobdonecommand is 
> never executed.
> I set it to:
> jobdonecommand python //server01/jobdone.py

Hi Anton,

	If you're using one of the submit scripts, and are using
	the "Job Done Command:" prompt, then you would just type at
	the prompt:

		python /path/to/your/jobdone.py

	(ie. without typing 'jobdonecommand')

	When the last frame finishes rendering, that command
	will be executed, and the stdout/stderr of the command
	will appear in a file called 'jobdonecommand.log' in the
	log directory for your job.

	You would only specify the 'jobdonecommand' as part of the
	command *if* you are supplying this in the 'Submit Options:'
	prompt of the submit form (where you can insert any submit
	commands), or if you are writing your own submit script,
	and are doing all the submit commands yourself, eg:

rush -submit << EOF
    title          YOUR_JOB
    frames         1-10
    command        python /path/to/your/command.py -arg1 -arg2
    jobdonecommand python /path/to/your/jobdone.py
EOF

	If you are still having trouble, supply more details
	about which prompt you're filling out, and include
	the contents of 'rush -ljf' and 'rush -lf' for your job,
	the directory contents of your log directory, and if
	there is one, the contents of the 'jobdonecommand.log'
	file.

> but that script never runs. And no errors about it is logged.
> Are there any parameters that can interfere with the jobdonecommand that I 
> need to set to enable/disable it?

	There shouldn't be anything else you should need to set.
	Let me know how it goes by following up on the group.

-- 
Greg Ercolano, erco@(email surpressed)
Seriss Corporation
Rush Render Queue, http://seriss.com/rush/
Tel: (Tel# suppressed)
Fax: (Tel# suppressed)
Cel: (Tel# suppressed)

   From: "Anton Blomberg" <anton.blomberg@swiss.se>
Subject: Re: Jobdonecommand not executed
   Date: Fri, 22 Feb 2008 05:01:23 -0500
Msg# 1692
View Complete Thread (6 articles) | All Threads
Last Next
Hi Greg,
thank you for your fast answer.

> If you are still having trouble, supply more details
> about which prompt you're filling out, and include
> the contents of 'rush -ljf' and 'rush -lf' for your job,
> the directory contents of your log directory, and if
> there is one, the contents of the 'jobdonecommand.log'
> file.

I am using a custom made python GUI-script to do the submit.
It seems not to be the problem due to all the info showing up properly for 
the job in irush.
There must be something wrong with my syntax/some setting that prevents the 
script to run.
Here is my 'rush -ljf' for the test job (i shortened down things like long 
paths and command, because there's no problems with it and it takes a lot of 
long args):

C:\Rush\bin>rush.exe -ljf jobserver.709
          Jobid: jobserver.709
          State: Done
       ActState: Done
       RebootId: 13
          Title: MAYA_TEST.MB
    DefPriority: 1
         LogDir: //logserver/logs/rush/jobserver.709
         LogExt:
       LogFlags: -
     ImgCommand: //tools/imgc.pyw
            Ram: 2048
           Nice: 10
        MaxCpus: 0
        MaxTime: 02:00:00
   MaxTimeState: fail
   LicPauseSecs: 00:01:00
  LicPauseTimer: 00:00:00
     FrameFlags: off
        Command: python //tools/maya-render.py -arg -arg -arg
ChkCommand:
 JobDoneCommand: python //tools/jobdone.py
JobStartCommand:
 JobDumpCommand:
   AutoDump: off
   WaitForState: dump
    WaitForTime: -
           User: anton.blomberg (11002/11001)
       DoneMail: -
       DumpMail: -
      StartDate: Thu Feb 21 17:10:36 2008
        EndDate: -
        Elapsed: 17:40:49
         Frames: 1
      FramesQue: 0
      FramesRun: 0
     FramesDone: 1
     FramesFail: 0
     FramesHold: 0
           Cpus: doris4=1@1
       Notes[0]: -
       Criteria:

and here is 'rush -lf':
STAT FRAME   TRY HOSTNAME        PID     JOBID            START 
ELAPSED  NOTES
Done 0001    7   doris4          716     jobserver.709      02/21,17:40:53 
00:00:35


there is no jobdonecommand.log.


/Anton
--
Swiss International | www.swiss.se


"Greg Ercolano" <erco@(email surpressed)> wrote in message 
news:1691-rush decimal general at seriss decimal com...
> Anton Blomberg wrote:
>> I'm trying to use the -jobdonecommand to execute a python script when a 
>> rush
>> job is done.
>> There is no problem with the submit or rendering, but the jobdonecommand 
>> is
>> never executed.
>> I set it to:
>> jobdonecommand python //server01/jobdone.py
>
> Hi Anton,
>
> If you're using one of the submit scripts, and are using
> the "Job Done Command:" prompt, then you would just type at
> the prompt:
>
> python /path/to/your/jobdone.py
>
> (ie. without typing 'jobdonecommand')
>
> When the last frame finishes rendering, that command
> will be executed, and the stdout/stderr of the command
> will appear in a file called 'jobdonecommand.log' in the
> log directory for your job.
>
> You would only specify the 'jobdonecommand' as part of the
> command *if* you are supplying this in the 'Submit Options:'
> prompt of the submit form (where you can insert any submit
> commands), or if you are writing your own submit script,
> and are doing all the submit commands yourself, eg:
>
> rush -submit << EOF
>    title          YOUR_JOB
>    frames         1-10
>    command        python /path/to/your/command.py -arg1 -arg2
>    jobdonecommand python /path/to/your/jobdone.py
> EOF
>
> If you are still having trouble, supply more details
> about which prompt you're filling out, and include
> the contents of 'rush -ljf' and 'rush -lf' for your job,
> the directory contents of your log directory, and if
> there is one, the contents of the 'jobdonecommand.log'
> file.
>
>> but that script never runs. And no errors about it is logged.
>> Are there any parameters that can interfere with the jobdonecommand that 
>> I
>> need to set to enable/disable it?
>
> There shouldn't be anything else you should need to set.
> Let me know how it goes by following up on the group.
>
> -- 
> Greg Ercolano, erco@(email surpressed)
> Seriss Corporation
> Rush Render Queue, http://seriss.com/rush/
> Tel: 626-795-5922
> Fax: 626-795-5947
> Cel: 310-266-8906 



   From: Greg Ercolano <erco@(email surpressed)>
Subject: Re: Jobdonecommand not executed
   Date: Fri, 22 Feb 2008 07:52:57 -0500
Msg# 1693
View Complete Thread (6 articles) | All Threads
Last Next
Anton Blomberg wrote:
> C:\Rush\bin>rush.exe -ljf jobserver.709
>           Jobid: jobserver.709
> [..]
>          LogDir: //logserver/logs/rush/jobserver.709
> [..]
>  JobDoneCommand: python //tools/jobdone.py

	Hmm, that all looks OK, provided the directory
	//logserver/logs/rush/jobserver.709/
	..and the path
	//tools/jobdone.py
	..are both accessible from host "jobserver"
	(which is where the jobdonecommand is invoked).

	eg. login to machine 'jobserver' as anton.blomberg,
	open a DOS window and invoke these two commands:

dir \\logserver\logs\rush\jobserver.709
dir \\tools/jobdone.py

	..if they both work, then I'm stumped (see below).

	If they fail, then that's the problem; the paths
	have to resolve on the jobserver as well as the
	render nodes.

	BTW, the fact I'm showing backslashes (\) in that dir command
	instead of frontslashes (/) is just to serve the purposes of
	DOS; the frontslashes you have submitted with are fine.

	I'm sure it's /trying/ to run the command, but my guess
	offhand is it can't because maybe it can't reach either
	of those two directories from the machine "jobserver".

	Take a look in jobserver's c:\rush\var\Orushd.log
	to see if there are any errors about the command or the
	log directory. If rush couldn't run the command, and couldn't
	create the log, it would advertise the problem in the rushd.log
	on the job server machine (in this case, "jobserver").

	Look in the Orushd.log (as opposed to the rushd.log) because
	the command tried to run yesterday (02/21), and the rushd.log
	rotates out at midnight ever night.

	If need be, contact me directly via private email, and
	we can arrange an interactive chat so we can try a few
	things in realtime.

-- 
Greg Ercolano, erco@(email surpressed)
Seriss Corporation
Rush Render Queue, http://seriss.com/rush/
Tel: (Tel# suppressed)
Fax: (Tel# suppressed)
Cel: (Tel# suppressed)

   From: Greg Ercolano <erco@(email surpressed)>
Subject: Re: Jobdonecommand not executed
   Date: Fri, 22 Feb 2008 08:00:24 -0500
Msg# 1694
View Complete Thread (6 articles) | All Threads
Last Next
Greg Ercolano wrote:
> 	eg. login to machine 'jobserver' as anton.blomberg,

    Oops, forgot this is a windows machine.

    Correction to the above: login to machine 'jobserver'
    as *what ever user the rushd service is configured to run as*,
    since that is the user rush will be running your command as,
    and is the permission context that will be used to access the
    file server.

    BTW, I'm a little surprised that the UNC paths you're using
    don't include a volume name. Normally UNC paths are of the format:

\\someserver\somevolume\xxx

    but your path to the jobdone.py script seems to be missing a volume
    name, which I think is not possible under windows.

    Also, a typo in my last response:

> dir \\logserver\logs\rush\jobserver.709
> dir \\tools/jobdone.py

    The frontslash in that last line should be a backslash, eg:

	dir \\tools\jobdone.py

    My guess is that's not a valid path, due to the missing volume name,
    but since the log directory looks correct (\\logserver\logs\rush\..)
    I would think the jobdonecommand.log would be created, and show an
    error message from python about the script not being found.

    However, if \\logserver\logs is not a valid UNC path on jobserver,
    that would explain the absence of the jobdonecommand.log, and surely
    there will be an error in the rushd.log about it.


-- 
Greg Ercolano, erco@(email surpressed)
Seriss Corporation
Rush Render Queue, http://seriss.com/rush/
Tel: (Tel# suppressed)
Fax: (Tel# suppressed)
Cel: (Tel# suppressed)

   From: Greg Ercolano <erco@(email surpressed)>
Subject: Re: Jobdonecommand not executed
   Date: Tue, 04 Mar 2008 16:46:30 -0500
Msg# 1697
View Complete Thread (6 articles) | All Threads
Last Next
> 	Take a look in jobserver's c:\rush\var\Orushd.log
>	to see if there are any errors about the command or the
>	log directory. If rush couldn't run the command, and couldn't
>	create the log, it would advertise the problem in the rushd.log
>	on the job server machine (in this case, "jobserver").

    Turns out this was the problem being advertised in the rushd.log:

02/29,15:50:58 INFO       jobdonecommand 'python //agnes/resources/tech/admin/jobdone.py' failed for jobid=sierra2.890: unknown uid 11002

    ..which means the submitting user's uid/gid on the job server
    was different from the uid/gid for his account on the machine
    he was submitting from, the discrepancy causing this error.

    Solution is for the sysadmin to reconfigure his account on
    the job server to have matching uid/gid values to his account
    on the submit host.