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]>