in reply to Re^10: apache/perl caching problem
in thread apache/perl caching problem
That looks very much like your server is running mod_perl or something with similar characteristics.
For comparison, here are some logs from a couple of CGI scripts running on my system: one under mod_perl and the other not. Note that with mod_perl the same process id appears over and over while without mod_perl each request causes a new process to be started.
cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 cgi under mod_perl process id 3660 cgi under mod_perl process id 3660 cgi under mod_perl process id 3660 cgi under mod_perl process id 3660 cgi under mod_perl process id 3660 cgi under mod_perl process id 3632 cgi under mod_perl process id 3660 cgi under mod_perl process id 3660 cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 cgi under mod_perl process id 3660 cgi under mod_perl process id 3660 cgi under mod_perl process id 3660 cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 cgi under mod_perl process id 3632 standard cgi process id: 3926 standard cgi process id: 3928 standard cgi process id: 3929 standard cgi process id: 3930 standard cgi process id: 3931 standard cgi process id: 3933 standard cgi process id: 3934 standard cgi process id: 3935 standard cgi process id: 3936 standard cgi process id: 3938 standard cgi process id: 3939 standard cgi process id: 3940 standard cgi process id: 3941 standard cgi process id: 3942 standard cgi process id: 3944 standard cgi process id: 3945 standard cgi process id: 3984 standard cgi process id: 3986 standard cgi process id: 3987
As all your requests are making it to the server and you can see the server running a mixture of versions of your script, you can forget about proxy servers.
Previously you said that you sometimes saw responses from old versions of your script even after you restarted the server. I expect you will find you were mistaken (no offense intended) and that after you restart the server you no longer receive responses from versions from before the restart.
When you restart your apache server, you should see entires similar to the following in your web server error log:
[Wed May 05 19:29:50 2010] [notice] caught SIGTERM, shutting down [Wed May 05 19:30:19 2010] [notice] Apache/2.2.12 (Ubuntu) mod_perl/2. +0.4 Perl/v5.10.0 configured -- resuming normal operations
As for the ps output, the PID column shows the process ID, the STIME column shows when the process was started. In the sample you posted, all the processes are apache2 server processes. This confirms that it is apache2 that is running your CGI script and that it is doing so within the server process, as mod_perl does.
Assuming you are running mod_perl (fairly certain at this point) then after each restart you should only see the latest version in the logs (and responses) and any new versions introduced since restarting the server.
You can confirm your server is running mod_perl by checking the configuration for your website. You might find the mod_perl configuration manual helpful for understanding what to look for in your apache configuration file.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^12: apache/perl caching problem
by Anonymous Monk on Sep 26, 2010 at 15:22 UTC |