The Persistence of Vision Raytracer (POV-Ray).
This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.
Opened by Ben Weston - 2012-08-03
Last edited by Chris Cason - 2012-09-04
FS#250 - ini shell-outs always fail
I’ve got an ini file that looks like this:
Post_Frame_Return=U
Post_Frame_Command=notepad.exe
And when I render a scene using that ini file, it renders correctly but then
gives me this error:
Render halted because the post-frame shell-out (’notepad.exe’) requested POV-Ray
to generate a user abort.
Render failed
.....and it doesn’t open notepad.
I’ve unchecked the “Disable Starting Other Programs” and I’ve tried various
variations on what exe to run and whether to do it Pre/Post Frame/Scene, and
nothing has worked.
Testing on Linux : kind of same effect... maybe need another entry in flyspray.
vfe/unix/vfeplatform.cpp has a nice:
Which mean, for unix, it's always false... No shellout!
To Original Poster: did you also change the [Shellout Security] section in povray.conf ?
(default to "forbidden", must be set to "allowed")
I've changed the script I/O restrictions in the menu so there should be no restriction. There's no povray.conf on Windows as far as I can see.
(Sorry for the delayed reply, I was on holiday.)
The reason it doesn't open notepad is that you haven't provided the full path to the program. If you use c:\windows\system32\notepad.exe, it should work. The message indicating that a user abort was requested is because of the 'U' setting to Post_Frame_Result. POV-Ray doesn't (currently) differentiate between the program itself issuing a failure code and a launch failure cause by e.g. an incorrect filename or invalid path.
I've tried with the full path, and various different exes, to no avail. Notepad.exe shouldn't need the path since it's on the system's standard path, i.e. it works from the command line without a path.
Does it work on your PC?
Yes it works for me. As for not needing the path, keep in mind that the system search path is a convention applied by the windows shell (explorer.exe). It does not apply to programs created using the Windows CreateProcess() API (see http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425.aspx), specifically: "The string can specify the full path and file name of the module to execute or it can specify a partial name. In the case of a partial name, the function uses the current drive and current directory to complete the specification. The function will not use the search path. This parameter must include the file name extension; no default extension is assumed."
What I recommend you do if you are still having issues is to obtain Microsoft's free procmon utility (http://technet.microsoft.com/en-us/sysinternals/bb896645) and run it with the filter set to only show activity from pvengine.exe (or whatever the executable is named on your system - there are several possibilities), halt capture and clear the window, launch POV, then just before starting the parse start capturing activity (control-e toggles capture in procmon). Then look at what it shows. One of the calls (there will be lots, it's quite verbose) will be to launch the process; let me know what that shows.
I do apologise, I just tried it with the full path and it worked! I honestly thought that was the first thing I'd tried.
Thanks for your help, and sorry for the erroneous bug report (I'm a programmer myself, so I know how annoying this is).