Jump to content


< Back to Forum


 

Run Module Not Returning As Expected


  • Please log in to reply

#1 JShipley 14 January 2016 - 12:02 AM

We have run into an issue where the run module returns a fail when it should return a success. The run module is set to wait for program to finish. The program details are as follows:

 

c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

 

The program simply takes a wav file and converts it to mp3. The sox program being called executes successfully and creates the mp3 file. So we added the result file at the end of the command giving us this:

 

c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > "c:\program files\voiceguide\data\VGRUNRESULT_$RV_LINEID.TXT"

 

 

this results in a timeout. With no VGRUNRESULT being created.

 

We also have a php script that we call like so:

 

c:\php\php.exe c:\voicescripts\it-msg-rpc\vm-ticket-req.php $RV_LINEID

 

this php creates a file named VGRUNRESULT_$RV_LINEID.TXT in voiceguide\data that contains [variable]{12345}. This still results in the timeout path being taken. Why is the run module not returning success?

  • 01.PNG
  • 02.PNG
  • Attached File  log.zip   34.32KB   70 downloads


#2 SupportTeam 14 January 2016 - 03:46 AM

VGRUNRESULT file is something that can optionally be created by the ran program to return information/results back to VoiceGuide afterwards.

It is not however necessary that any information/results be returned to VoiceGuide from a ran program.

Starting the program and then letting the module take the 'fail' path afterwards is fine. The 'fail' path does not necessarily mean that something went wrong with the running of the program, just that no 'results' were returned.

 

 

Trace shows that when sox.exe is called the system is not able to detect that program stopped running, and eventually a timeout path is taken. Not sure why the system would not detect the end of process running.

 

Can you try to run the sox.exe without the redirect ( the '>' ) at the end?

 

ie. make the command line just:

 

c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

 

or:

 

command.com /c c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

 

sox.exe output would not be in format expected by VoiceGuide anyway.

 

(What is the output of c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

when it is ran from a normal Windows cmd.exe window?)

 

 

The Run Program module does not have to take a 'Success' path afterwards. The Run Program module starts the command line and taking a 'Fail' path afterwards does not mean that the ran program did not function, it just means that the ran program did not return explicit results using either the COM/WCF interfaces or the result file. Also if the outcome of the ran program is not needed immediately by the VoiceGuide script then there is usually not need to make the script wait for that ran program to complete.


155801.697   7   3   1 state [RunThis] Run Program
155801.697   7   3   1       rv    replace start [c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_$RV_LINEID.TXT]
155801.698   7   3   1       rv    replace end   [c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_3.TXT]
155801.701   7   3   1       File.Exists(c:\sox-14-3-2\sox.exe) is true
155801.701   7   3   1       running program=[c:\sox-14-3-2\sox.exe], arguments=[c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_3.TXT], windowStyle=Hide, timeout=1
155801.703   7   3   1       ShellExe start [c:\sox-14-3-2\sox.exe][c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_3.TXT]
155801.706   7   3   1       Run Program waiting... (processHandle=5512, pid=5328)

...

155812.421   4   3   1 timer EV_TIMEOUT_CHECKONSTATE
155812.421   4   3   1       q_scr +     evScriptEvent 9007 EV_TIMEOUT_CHECKONSTATE
155812.421   7   3   1       q_scr run   evScriptEvent sCode=[EV_TIMEOUT_CHECKONSTATE] iActionID=0, crn=0 [0|0|0|0|0][|||||] 00:00:00 max:2|00:00:00.0230023
155812.421   7   3   1       se    EV_TIMEOUT_CHECKONSTATE 9007  0|0|0  || LineState=LS_RUN_WAITTILLFINISHED
155812.421   7   3   1       LsRunWaitTillFinished EV_TIMEOUT_CHECKONSTATE lCode2Str=EV_TIMEOUT_CHECKONSTATE
155812.421   7   3   1       IsProcessRunning sModuleClearScriptProcessWasCalledFrom=TAG_RESERVERD_VoiceGuide_ClearScript_Completed, CurrModuleTitle=RunThis
155812.421   7   3   1       LsRunWaitTillFinished: process still running
155812.426   7   3   1 ERROR v7.4.5614.28656 (16-May-15 14:55:11.73) LsRunWaitTillFinished (timeout) objVbsOrExeProcess.Kill : Process has exited, so the requested information is not available.


#3 SupportTeam 14 January 2016 - 10:33 AM

Can you please advise if the Windows 7 installed on this machine is the stock standard version, or whether it is different in any way to the standard Windows 7 install ?

 

Have any changes been made to it afterwards? Has any anti-virus type software been installed on this system?