Well -- just doing a simple test connect and disconnect eat up nearly 1,000
items (multiple connects and disconnects have no effect on the qty of items
eaten, at this point -- so, I'm "guessing" that some of this is due to
autoloading and just loading the modules to be used), but selecting no rows
only eats up 6.  Inserting a number into a simple table doesn't eat any SVs.
That's if I'm using it right.

Jeff

 -----Original Message-----
From: Gary Gauthier [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 30, 2002 1:41 PM
To: [EMAIL PROTECTED]
Subject: RE: Apparent memory leak in DBI v1.30


  I'll see what I can do. For you to run it, I'll need to get you a copy of
the database and some data.
  I have to switch to something else here for balance of today, so I'll see
about doing it first thing tomorrow.

  Did note, however, that I dropped by a count of 22 (reported by Leak) when
I explicity
  set the recordset pointer to 'undef', even though it was defined as a 'my'
variable. Will see
  if i can figure out why. Sounds like a scoping issue.

  Regards;
  Gary


  >>> "Jeff Urlwin" <[EMAIL PROTECTED]> 07/30/2002 12:34:35 PM >>>

  If you can wrap the small test up for me, I may be able to get to it, I
just don't want to promise it :)

  Jeff
    -----Original Message-----
    From: Gary Gauthier [mailto:[EMAIL PROTECTED]]
    Sent: Tuesday, July 30, 2002 12:30 PM
    To: [EMAIL PROTECTED]
    Subject: RE: Apparent memory leak in DBI v1.30


    Jeff;
    I am also on vacation for a week beginning Thursday evening, so it
wouldn't matter anyway.
    Thanks for letting me know.

    By the way; I constructed a small program to do some testing, and it is
still showing leakage.
    I'll see what I can find out, and I'll wait to hear from you when you
get back.

    Have a good vacation.

    Regards;
    Gary


    >>> "Jeff Urlwin" <[EMAIL PROTECTED]> 07/30/2002 12:00:40 PM >>>

    Gary -- I don't know if anyone has DEBUGGING turned on.  That's an
interesting question.   I haven't gotten around to the memory leak testing
yet.  I may just have to have a debugging version of perl, which is a pain
and large and slow.  I don't blame you for not doing it!  I'm not sure I
will be able to look into memory leaks further until I get back from
Vacation next week.  I leave on Thursday with lots to do between now and
then.

    Regards,

    Jeff
      -----Original Message-----
      From: Gary Gauthier [mailto:[EMAIL PROTECTED]]
      Sent: Tuesday, July 30, 2002 10:57 AM
      To: [EMAIL PROTECTED]
      Subject: RE: Apparent memory leak in DBI v1.30


      Jeff;

      You may not believe it, but I had a feeling such a thing might happen
with a Microsoft product,
      and I designed the modules to allow me to specify a handle or a
connection string for each level in
      the process. I changed it over to separate connections and ran it.
While the program worked, the
      Devel::Leak showed a count of 52046 before and 53333 after a short
test of 11 queries in total.

      Do you know of anyone who has a copy of the Ativestate Perl with the
Debugging turned on?
      I understand that the Leak detector gives more diagnostic info, if
that is enabled. The reason I
      don't build it myself is that I'm trying to use 'tried and true'
versions where possible, to cut the
      number of degreees of freedom in the problem-space.

      Regards;
      Gary


      >>> "Jeff Urlwin" <[EMAIL PROTECTED]> 07/30/2002 10:21:31 AM
>>>

      >
      > DBD::ODBC::st execute failed: [Microsoft][ODBC SQL Server
      > Driver]Connection is b
      > usy with results for another hstmt (SQL-S1000)(DBD:
      > st_execute/SQLExecute err=-1
      > ) at TestStep_Record.pm line 410, <STDIN> line 1.
      >
      > Am I to understand from this that ODBC connections do not permit
nested
      > queries to use the same connection handle? I'm sure ADO does. The
      > code queries
      > the database, then uses the result of each record to launch
      > another query on a second table.

      Gary --

      That's VERY database dependant and, no, technically, SQL Server
doesn't
      support it.  Oracle does, for example.  There is a way, though, to get
it to
      work for SQL Server.  See the perldoc DBD::ODBC for the full
description in
      the section on DBD::ODBC 0.29.  However: I remember an e-mail I
received
      from someone with *STRONG* knowledge on this and I believe the e-mail
      indicated that you can actually put your SQL Server in a "spin loop"
where
      you have to restart the machine.  Don't quote me on that, but it
sounded
      like there could be a problem.  I can't find it, but I remember
reading
      something about it.  Use it at your own risk...:)

      Regards,

      Jeff
      >
      > Regards;
      > Gary
      >
      >
      > >>> Tim Bunce <[EMAIL PROTECTED]> 07/30/2002 8:51:25 AM >>>
      > On Tue, Jul 30, 2002 at 08:21:39AM -0400, Gary Gauthier wrote:
      > > Jeff and Tim;
      > >
      > > The program only uses non-parameterized SELECT statements,
      > > accesses an SQL2000 database using DBD:ODBC,
      > > and data is always read using bound variables. Unfortunately;
      > > it is a VERY large application, all object-oriented, and doesn't
      > > lend itself to being made smaller to test for leaks.
      >
      > You could try going in the other direction... write a small script
      > that does the same kind of thing and see if it leaks.
      >
      > If it doesn't then we're likely to point the finger at your
application.
      >
      > Probably worth trying it with an older version of the DBI as a
check.
      > And/or with an older DBD::ODBC version.
      >
      > > How does one use the Devel::Leak module to the best advantage?
      >
      > Read the docs. It's not too complicated
      >     http://search-beta.cpan.org/author/NI-S/Devel-Leak/Leak.pm
      >
      > Tim.
      >
      > > It may be the easiest way to check it out.
      > >
      > > Regards;
      > > Gary
      > >
      > >
      > > >>> Tim Bunce <[EMAIL PROTECTED]> 07/29/2002 4:38:39 PM >>>
      > > On Mon, Jul 29, 2002 at 09:52:33AM -0400, Jeff Urlwin wrote:
      > > > Gary -- it's more likely in DBD::ODBC than DBI.
      > >
      > > But not by much :)
      > >
      > > Probably worth trying it with an older version of the DBI as a
check.
      > >
      > > > If you can create a
      > > > self-contained sample, it would be greatly appreciated and
      > looked at faster
      > > > :)
      > >
      > > Yes, a _small_ simple self-contained example script is a big help.
      > > Copy the problem script and keep cutting away at it till the leak
      > > goes away, or it gets so small it's obvious where the problem is.
      > >
      > > > You didn't indicate if the loop is a set of inserts, queries,
      > etc.  Does it
      > > > have longs?  What's the LongReadLen value?
      > > >
      > > > If you can, include a drop table and create table statement
      > at the top,
      > > > insert test data, then run through something similar to your
      > loop that's
      > > > leaking.
      > > >
      > > > Tim -- if you have suggestions as to how to approach this
      > with Perl, I'd be
      > > > very appreciative!
      > >
      > > The "keep making the sample code smaller" approach usually works
well.
      > >
      > > The Devel::Leak module may be useful:
      > > http://search-beta.cpan.org/author/NI-S/Devel-Leak-0.02/Leak.pm
      > >
      > > Another approach is to let the process grow huge (many MB) then
      > > core dump it and look through the binary (using less or other
viewer
      > > that can read binary) and look for clues/patterns in the leaked
memory.
      > >
      > > Tim.
      > >
      > > > Regards,
      > > >
      > > > Jeff
      > > > >
      > > > > Tim;
      > > > >
      > > > > I'm using DBI v1.30 and DBD-ODBC v0.43. My database(SQL2000)
app
      > > > > is invoked about 40,000 times over the course of about 2 days
to
      > > > > generate test scripts for some automated test equipment. I've
      > > > > been noticing the memory usage creeping up over the course of
the
      > > > > runs (up to  Meg per loop at times). I have seen a report on
the
      > > > > developers mail list regarding this problem in recent
versions.
      > > > > Have you done any tests to check for leaks, or have you had
any
      > > > > reports of leaks? Perhaps there is some peculiarity of
SQL2000,
      > > > > that requires explicit releasing of handles or buffer space?
      > > > >
      > > > > Any help would be appreciated.
      > > > >
      > > > > Regards;
      > > > > Gary
      > > > >
      > > >
      > > >
      >


Reply via email to