Re: Strange Error

[email protected] ("Jerry Kaidor")
Newsgroups perl.dbi.users
Message-ID <[email protected]>
> Yep it is something on the XS side of things.
>
> Perhaps the chap who wrote the DBD driver left in some debugging code?
*** Where would I look for it?  All I see in DBD on my system is Perl.

>
> Are you doing any recursive calls or queries??

*** Not that I know of.

  I tried an experiment to localize the error in time:

sub mark
      {
      my $string = shift;
      open ( LOGFILE, ">>/var/log/httpd/error_log" );
      print LOGFILE $string;
      close LOGFILE;
      }

  Then I stuck invocations to this here and there in the code.  It didn't
really work - the apache error log complained about trying to write to a
closed file - but that was good enough for me, because THAT error wound
up in the same file as my weird errors.

   The way CGI::Application works, is you accumulate all the HTML you plan
to output in a perl scalar, and then return it to CGI::Application when
you're done.  I put a call to mark() before the very last return to
CGI::Application, and the WEIRD ERROR IS STILL AFTER THAT.  This is
interesting because at that point, my app has done ALL the DBI work,
and all that's left is for CGI::Application to pump the HTML out to the
outside world.

  Of course with multi-threading and multiple processes, things may not be
happening in the order that I think....

   One possibly cogent hint I found is in the DBD::mysql documentation -
you have to be sure that Mysql, Perl and the DBD are compiled with the
same compiler.  Guy says that a lot of problems get fixed that way.  I
am reluctant to recompile all that stuff on my production server, and
will probably have to set up a second server to try it out.....

                       - Jerry Kaidor















>
>
> On Fri, Sep 3, 2010 at 10:35 AM, Jerry Kaidor <[email protected]> wrote:
>
>> Hello,
>>
>>   My name is Jerry Kaidor.  I am seeing some cryptic errors in a web
>> application that I'm writing.  Driving me nuts. My code runs under
>> CGI::Application, and uses DBI with the mysql driver.  Here is the
>> error message, which appears in /var/log/httpd/error_log:
>>
>> ----------------- snip ------------------------
>>
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6] SV =
>> RV(0x8c6212c) at 0x8c62120
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   REFCNT = 1
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   FLAGS =
>> (ROK,READONLY)
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   RV =
>> 0x8c61ef0
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]     SV =
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6] PVHV(0x8c57b84)
>> at 0x8c61ef0
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]       REFCNT =
>> 1
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]       FLAGS =
>> (OBJECT,OOK,SHAREKEYS)
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   STASH =
>> 0x8700430
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6] \t"DBI::db"
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   ARRAY =
>> 0x8c66878
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   KEYS = 0
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   FILL = 0
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   MAX = 7
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   RITER = -1
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]
>> [Fri Sep 03 07:11:35 2010] [error] [client 10.120.102.6]   EITER = 0x0
>>
>> -------------------- endsnip ------------------------------------
>>
>>   The Linux system is based on Slackware 13.0.  I have upgraded to the
>> latest DBI and DBD::mysql via CPAN.  The Linux kernel is 2.6.29.6-smp.
>> Perl is "v5.10.0 built for i486-linux-thread-multi".  The mysql server
>> is 5.0.84.  The webserver is Apache 2.2.13.
>>
>>   I have done a fair amount of googling on this, no joy, except that the
>> error messages seem to be about some kind of Perl internals distress.
>> I also asked the CGI::Application mailing list - they know nothing.
>> One person suspected the DBD driver because it uses C code interfaced
>> to Perl via XS.
>>
>>   Anybody have a clue?  BTW, the application seems to work fine.   I'm
>> just seeing this error in the httpd error log.
>>
>>   Thanks in advance,
>>
>>                       - Jerry Kaidor ( [email protected] )
>>
>>
>>
>>
>
> --
> The best compliment you could give Pythian for our service is a referral.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.