Created attachment 26502 [details] localhost.2011-01-18.log I have web application hosting CGI executable with the following settings for CGI <servlet> <servlet-name>cgi</servlet-name> <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>cgiPathPrefix</param-name> <param-value>WEB-INF/cgi</param-value> </init-param> <init-param> <param-name>executable</param-name> <param-value></param-value> </init-param> <init-param> <param-name>passShellEnvironment</param-name> <param-value>true</param-value> </init-param> </servlet> This was Ok in Tomcat 6.0.29 but not in 6.0.30, see attachment.
You have <init-param> <param-name>executable</param-name> <param-value></param-value> </init-param> i.e. you are setting executable="". The logs say that the attempt to execute "" failed. The change between 6.0.29 and 6.0.30 in CGIServlet is http://svn.apache.org/viewvc?view=revision&revision=1004424 In 6.0.29 the command to be executed was built as a single string, concatenating the components. In 6.0.30 all the components are passes in as an array. Are you sure that the empty string is a valid value for the "executable"? I do not think that that is a valid value. Thus I am closing this issue as INVALID. If you need further assistance, please ask on the users@ list.
Discussed on dev@ Fixed in trunk in r1061412 and will be in 7.0.7. Proposed for 6.0.x
Fixed in 6.0.x and will be included in 6.0.31 onwards.