On Wed, 2007-04-25 at 22:34 +0100, Tim Bunce wrote:
> On Wed, Apr 25, 2007 at 02:45:47PM -0500, Scott T. Hildreth wrote:
> > On Wed, 2007-03-28 at 21:26 +0100, Tim Bunce wrote:
> > > On Wed, Mar 28, 2007 at 01:54:51PM -0500, Scott T. Hildreth wrote:
> > > > I should also mention that this is a $dbh->do( "an insert statement").
> > > > A quick look at DBI::ProxyServer, shows that the NUMFIELDS indicates
> > > > a select, therefore in this case 'undef' would be returned for an
> > > > insert.  Should it be initialized to '0', to quite warnings on
> > > > non-selects?
> > > 
> > > That would work. As would:
> > > 
> > >     $sth->SUPER::STORE('NUM_OF_FIELDS' => $numFields) if $numFields;
> > > 
> > > Doing both would make life easier for people who can't upgrade client
> > > and server at the same time.
> > > 
> > > But I wonder if this is really the issue. Why hasn't anyone reported
> > > undef warnings on insert statement before? Would be good to add a test
> > > case to t/80proxy.t that reproduces the problem before you fix it.
> > 
> >   Upgrading DBI to 1.54 (where the proxy server runs) has seemed to fix
> >   this issue.   Do you think tests should still be added to t/80proxy.t?
> 
> Or perhaps a doc patch to stress the risks of client and server getting
> out of sync.

   What I have seen is that a newer client connecting to the older
server is trouble.  I have not had an issue with the older clients
connecting to the new server.  Which make sense, since I was having
problems with the newer clients expecting functionality that was 
present in the older server.    

> 
> Or perhaps identify the precise way the version skew affects the client
> and server and have them report a useful error when they detect it.

  Okay, I would say that the Proxy Server should always be a version
that is >= to the newest client.


> 
> Tim.
> 
> > > Tim.
> > > 
> > > p.s. Any volunteers to work on a daemon wrapper for DBI::Gofer::Execute
> > > so it can be used as a replacement for the current DBI proxy server.
> > > (DBD::Gofer is potentially significantly faster than DBD::Proxy.)
> > > If so please start a new thread and I'll give a brain dump...
> > > 
> > > 
> > > > On Wed, 2007-03-28 at 13:35 -0500, Scott T. Hildreth wrote:
> > > > > So I tracked this down further, DBD::Proxy gets an array returned 
> > > > > from the client calling
> > > > > the server.  Which is ultimately put into @outData, and 
> > > > > $outData[0]($numFields) is 'undef'
> > > > > and produces this warning,
> > > > > 
> > > > >   Use of uninitialized value in subroutine entry at 
> > > > >    /usr/local/perl-5.8.8/lib/site_perl/5.8.8/i686-linux/DBD/Proxy.pm 
> > > > > line 566.
> > > > > 
> > > > >  
> > > > > Here is where @outData is spliced,
> > > > >   
> > > > > DBD::Proxy::st::execute(/usr/local/perl-5.8.8/lib/site_perl/5.8.8/i686-linux/DBD/Proxy.pm:559):
> > > > >   559:            my ($numFields, $numParams, $names, $types) = 
> > > > > splice(@outData, 0, 4);
> > > > > 
> > > > > I guess my next step is to run the Proxy server in debug mode and 
> > > > > figure out why numFields
> > > > > is not filled in.  I was hoping someone might know what is going on 
> > > > > before I do that.
> > > > > 
> > > > > 
> > > > > Thanks
> > > > > 
> > > > > 
> > > > > On Thu, 2007-01-18 at 15:37 -0600, Scott T. Hildreth wrote:
> > > > > > ###########################################################
> > > > > > 
> > > > > >   Perl            : 5.008008    (i386-freebsd)
> > > > > >   OS              : freebsd     (6.1-stable)
> > > > > >   DBI             : 1.53
> > > > > >   DBD::mysql      : 3.0004
> > > > > >   DBD::Sponge     : 11.10
> > > > > >   DBD::SQLite     : 1.12
> > > > > >   DBD::Proxy      : 0.2004
> > > > > >   DBD::Multiplex  : 2.00
> > > > > >   DBD::File       : 0.35
> > > > > >   DBD::ExampleP   : 11.12
> > > > > >   DBD::DBM        : 0.03
> > > > > >   DBD::CSV        : 0.22
> > > > > >   DBD::AnyData    : 0.08
> > > > > > 
> > > > > > ##########################################################
> > > > > > 
> > > > > > For every database call, do, execute, ...etc I get the warning,
> > > > > > 
> > > > > > Use of uninitialized value in subroutine entry
> > > > > > at 
> > > > > > /usr/local/perl-5.8.8/lib/site_perl/5.8.8/i386-freebsd/DBD/Proxy.pm
> > > > > > line 567.
> > > > > > 
> > > > > > Which is " 'NUM_OF_FIELDS' => $numFields, ".
> > > > > > 
> > > > > > I don't think this matters but, the proxy is connecting to 
> > > > > > DBD::Oracle,
> > > > > > the connect is in another module that is inherited by the module I 
> > > > > > am 
> > > > > > testing.  
> > > > > > 
> > > > > > I am also getting disconnect errors on the DESTROY,
> > > > > > 
> > > > > >         (in cleanup) DBD::Proxy::db disconnect failed: Can't call 
> > > > > > method
> > > > > > "disconnect" on an undefined value
> > > > > > at 
> > > > > > /usr/local/perl-5.8.8/lib/site_perl/5.8.8/i386-freebsd/DBD/Proxy.pm
> > > > > > line 311 during global destruction.
> > > > > > 
> > > > > >         (in cleanup) DBD::Proxy::db DESTROY failed: Can't call 
> > > > > > method
> > > > > > "disconnect" on an undefined value
> > > > > > at 
> > > > > > /usr/local/perl-5.8.8/lib/site_perl/5.8.8/i386-freebsd/DBD/Proxy.pm
> > > > > > line 311 during global destruction.
> > > > > > 
> > > > > > 
> > > > > > My eyes are glazing over, so any help would be appreciated.  I'm 
> > > > > > sure it
> > > > > > is something simple I am missing here...
> > > > > > 
> > > > > > 
> > > > > > Thanks.
> > > > > > 
> > > > > > 
> > > > -- 
> > > > Scott T. Hildreth <[EMAIL PROTECTED]>
> > -- 
> > Scott T. Hildreth <[EMAIL PROTECTED]>
-- 
Scott T. Hildreth <[EMAIL PROTECTED]>

Reply via email to