"lscgid: request validation failed!" after upgrade from 3.0RC1 / RC2 to 3.0 release

#1
Hi.

Yesterday, I upgraded our servers from version 3.0RC1 / 3.0RC2 to the final 3.0 version. Some 64bit Solaris, some 32bit Solaris.

Since the upgrade, cgi scripts cannot be executed. All requests get the following error:

HTTP 500
lscgid: request validation failed!

I have tried to debug it for a while, bu to no avail. The lshttpd process correctly dispatches requests for existing .cgi files to the lscgid handler. For non-existent files, a HTTP 404 is returned, as expected.

lscgid does very little, see the output from truss:

Code:
29510:  accept(0, 0x00000000, 0x00000000, SOV_DEFAULT)  = 1
29510:  fork1()                                         = 7244
29510:  lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
7244:   fork1()         (returning as child ...)        = 29510
29510:  close(1)                                        = 0
7244:   getpid()                                        = 7244 [29510]
7244:   lwp_self()                                      = 1
7244:   lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
7244:   fcntl(1, F_DUP2FD, 0x00000000)                  = 0
7244:   time()                                          = 1174908967
7244:   time()                                          = 1174908967
7244:   pollsys(0x08046D70, 1, 0x08046D40, 0x00000000)  = 1
7244:   read(0, 0x08046E30, 84)                         = 84
7244:     01\0\0\003\0\0\0A001\0\010\0\0\002\0\0\011\0\f\0 P\0\0\0 P\0\0\0
7244:     \0\0\0\0\0\0A00F\0\0\0\0\0\0C012\0\0\0\0 <\0\0\0\0\0\0\0 x\0\0\0
7244:     \0\0\0\0\0\0\0\012 k ^ J \ ] U i ) m y v
7244:   time()                                          = 1174908967
7244:   write(0, 0x08046C80, 46)                        = 46
7244:      S t a t u s : 5 0 0\n\n l s c g i d :   r e q u e s t   v a l i
7244:      d a t i o n   f a i l e d !
7244:   close(0)                                        = 0
7244:   _exit(0)
29510:      Received signal #18, SIGCLD, in pollsys() [caught]
29510:        siginfo: SIGCLD CLD_EXITED pid=7244 status=0x0000
Searching both these forums and Google for the "request validation failed" string returns nothing.

Did something change between 3.0RC2 and 3.0 final in regard with executing CGI scripts?

Relevant snippets from our configuration httpd_config.xml:
Code:
       <virtualHost>
         <name>ADC</name>
         <vhRoot>/www/adc/current</vhRoot>
         <configFile>$SERVER_ROOT/conf/vhconf.xml</configFile>
         <allowSymbolLink>1</allowSymbolLink>
         <enableScript>1</enableScript>
         <restrained>0</restrained>
         <maxKeepAliveReq>100</maxKeepAliveReq>
         <smartKeepAlive>1</smartKeepAlive>
         <setUIDMode>0</setUIDMode>
         <chrootMode>0</chrootMode>
         <chrootPath></chrootPath>
         <staticReqPerSec></staticReqPerSec>
         <dynReqPerSec></dynReqPerSec>
         <outBandwidth></outBandwidth>
         <inBandwidth></inBandwidth>
       </virtualHost>
Code:
    <scriptHandler>
      <suffix>cgi</suffix>
      <type>cgi</type>
      <handler>cgi</handler>
    </scriptHandler>
vhconf.xml - nothing specific to CGI.

I've tried turning off all Gzip compression, no change.

We have four FCGI apps, configured as external applications, those work correctly. It's only the CGI apps, which are not spelled out, one by one, that stopped working.

Any help/suggestion is appreciated.


Thanks,
Juraj Ziegler
 

xing

LiteSpeed Staff
#2
Please make sure you are using "devpoll" as the event scheduler within LiteSpeed. You can use our webui or change it by hand. We have reports of the latest Solaris having problems with poll with LiteSpeed. Devpoll is the optimized event scheduler for Solaris. However, we default to "poll" for portability reasons.

Let us know if devpoll makes a difference. Regardless, you should use devpoll anyways.
 

mistwang

LiteSpeed Staff
#3
This error is pretty strange. "request validation failed" means that the MD5 checksum in the CGI request is currupted, which should not happen at all.
Can you try a clean installation of 3.0.1 on your server?
We failed to reproduce the problem on your test server with 64bit Solaris 10 installation.
 
#4
I have checked again. The same result. I am using "devpoll" and don't see much connection between the scheduler model and the lshttpd - lscgid communication.

I will check 3.0.1 now.
 
#5
It works OK with the 32bit version of 3.0.1. I'm unable to check the 64bit version currently, since I'm having trouble installing it, see my other thread [ERROR] Clock on your server is not accurate, fix it first.
 
#7
Hi. I have checked again, with version 3.1.1 on Solaris 10/x86. The 32-bit version works correctly, the 64-bit version fails again, with the same error as before:

lscgid: request validation failed!
 
Top