From: Ernest Ellingson Date: 2005-01-09T04:51:26+09:00 Subject: Re: postgres-pr Michael Neumann wrote: > Ernest Ellingson wrote: > >> Michael Neumann wrote: >> >>> Ernest Ellingson wrote: >>> >>>> Thanks Michael >>>> I'm still not sure about Pg.rb. Where is it? It's not in the DBI >>>> or the DBD directory. Does it exist? How do I get it? >>> >>> >>> >>> >>> Ah, okay. I think it's not bundled with the Windows-Installer, as you >>> need the postgres.so or postgres-pr libraries. And postgres.so is/was >>> not available for Windows AFAIK. >>> >>> You can download it from here: >>> >>> http://ntecs.de/viewcvs/viewcvs/dbd-pg/trunk/src/?root=ruby-dbi >>> >>> Just put the Pg.rb into the DBD/Pg directory (create the Pg directory). >>> >>>> As for postgres-pr I tried the test_connection.rb code changed the >>>> uri to 'tcp://ipaddress:5432' and the other parameters to >>>> appropriate values. Apparently a connection is being made but the >>>> same blow up in page files occurs 1.25 GB's. The program finally >>>> errors out with this trace. I should mention the database is on >>>> another machine running RH linux 9 and postgresql 7.4. >>> >>> >>> >>> >>> Hm, very strange. Does using TCPSockets generally work on your >>> platform without problems? >>> >>>> c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.3.3/lib/buffer.rb:64:in >>>> `read': failed to allocate memory (NoMemoryError) >>> >>> >>> >>> >>> I should include some debug code. It might be, that there's a >>> negative buffer-length which gets interpreted as an unsigned value... >>> or something like this. You're on a 32-bit machine, right? >>> >>> Regards, >>> >>> Michael >>> >>> >> I haven't had a problem with smtp or gets or posts with httpAccess2 so >> I believe that TCPsockets are working fine. I am running a 32 bit >> machine >> WindowsXP svc Pack 2. > > > Could you patch message.rb of postgres-pr with the following patch, and > tell me what you get on STDOUT: > > Index: message.rb > =================================================================== > --- message.rb (revision 475) > +++ message.rb (working copy) > @@ -32,6 +32,8 @@ > type = stream.readbytes(1).unpack('C').first unless startup > length = stream.readbytes(4).unpack('N').first # FIXME: length > should be signed, not unsigned > > + p length > + > raise ParseError unless length >= 4 > > # initialize buffer > > Regards, > > Michael > > Hi Michael: The p length statement yields 1178686529 Which is where the page file blow up happens. I put a p type line in too. the type is 69 Ernie