Hello.

I have posted a note here before, and want to thank those that took time
to try to solve this strange problem, but unfortunately none of the
suggestions have helped us so far, except for helping us ruling out things
that could have been incorrect.
Now I have received some more information since the last time so I'll try
again.

I have tried to be brief, but this is a complicated problem so it does
need some text to fully understand.

Basically we are losing data sent to a mod_perl program. We request the
page "page.fxml?name=al&adress=sweden&problem=huge". When our program
receives this request it will only be "page.fxml" without any of the
arguments sent.

Ok, first of all, yes we use the extension fxml - we want to mix
non-mod_perl files among my mod_perl files so we have set the apache up to
run mod_perl only on .fxml extension files. Works fine (apart from our
problem), but the problem happens even when we parse all files.

Second, we dont get this problem all the time. It occurs very infrequently
and (what appears to be) for total random reasons. On one machine (we have
several installations of this program) we will get the error 5 minutes
after the machine started up and after a restart not for 24 hours. On one
we will get it after 5-10 requests being sent to the apache server after
restart and on another not a single error for 24 hours of continous very
hard use (test scripts accessing like mad).

Third, which might be important, we almost always use vhosts to set up
different instances of sites that will run the code.

We have a temporary solution to the problem, being that we restart the
server every second hour. This has reduced the number of errors we get,
but not eliminated them. One day (24 hour period) we can have 100-150
errors on one site, orther days we can get 700-800 errors (when we send
roughly 17500 requests to the server during this time period). And this is
when we do the restarts every sencond hour. If we don't the amount of
errors will be up to almost half of the requests.

The apache logs the request correctly to the access log but when we try to
access the arguments in mod_perl they will just not be there anymore. We
assume that the apache hands the data over to mod_perl who then hand it
over to our program, this is what seems to go wrong on occasion.

What we would like to do is find a way to track a request all the way
through the apache and mod_perl to, finally, our program.

Can this be done easily?
Has anyone else encountered a problem like this?
Does anyone know anything about this problem?
Help! :o)

-----

Technical information:

Solaris/mod_perl 1.25/apache 1.3.19
Debian GNU/Linux, latest stable/mod_perl 1.26/apache 1.3.23

Both use Perl 5.6.1


-------- lines from the httpd.conf file:
PerlModule              MyProjects::Project1

<files                  *.fxml>
    sethandler          perl-script
    perlhandler         MyProjects::Project1::handler
    options             execcgi followsymlinks includes
</files>
---------------------------------------



-------- lines from the Project1.pm file:
sub handler($)
{
    $^W = 1; # gripe about the little things
    my $r = shift;
    my $apr;
    my %parm;

    $apr = Apache::Request->new($r);

    if($r->method() eq 'POST' || $r->method() eq 'GET')
    {
        my @keys = $apr->param();

        foreach my $key (@keys)
        {
            $parm{$key} = $apr->param($key);
            print STDERR "Inargs: $key = " . $parm{$key} . "\n";
        }
    }
    .
    .
    .
---------------------------------------
(this will from time to time not generate anything)


Thankful for any and all help that can help us find this annoying problem.

/Hakan

-
 Hi! I'm a .signature virus!
 Copy me into your .signature file to help me spread!

Reply via email to