> 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 <je...@tr2.com> 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 ( je...@tr2.com )
>>
>>
>>
>>
>
> --
> The best compliment you could give Pythian for our service is a referral.
>


Reply via email to