freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
[freetds] One row good, two rows "memory exhausted"
- From: Mark Bird <markabird AT hotmail.com>
- To: <freetds AT lists.ibiblio.org>
- Subject: [freetds] One row good, two rows "memory exhausted"
- Date: Sun, 14 Sep 2008 02:15:43 +0000
Hi there,
A little more info, I turned on logging in freetds.log and what I find is
very interesting. In the log everything seems fine until PHP starts to read
from the result set that returns 2 records. Then, apparently as it tries to
read the second record, you read "leaving dbnextrow() returning BUF_FULL" and
it appears to begin trying to read the second record again and again, each
time ending with "leaving dbnextrow() returning BUF_FULL" It appears to get
into some kind of endless loop until it finally runs out of memory.
Below is the section of the log that begins repeating. If anybody has any
ideas I'd appreciate it a ton. Thanks!
util.c:162:Changed query state from PENDING to READING
token.c:510:processing result tokens. marker is d1(ROW)
token.c:2166:tds_process_row(): reading column 0
token.c:1915:tds_get_data: type 39, varint size 2
token.c:1975:tds_get_data(): wire column size is 23
util.c:162:Changed query state from READING to PENDING
buffering.h:231:buffer_transfer_bound_data(0x5555644c41b0 4040 -1
0x5555644c41a0 1)
dblib.c:2030:leaving dbnextrow() returning REG_ROW/MORE_ROWS
dblib.c:6884:dblastrow(0x5555644c41a0)
dblib.c:2698:dbclrbuf(0x5555644c41a0, 0)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:1948:dbnextrow(0x5555644c41a0)
dblib.c:1961:dbnextrow() dbresults_state = 2 (_DB_RES_RESULTSET_ROWS)
dblib.c:2030:leaving dbnextrow() returning BUF_FULL
dblib.c:6884:dblastrow(0x5555644c41a0)
dblib.c:2698:dbclrbuf(0x5555644c41a0, 0)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:1948:dbnextrow(0x5555644c41a0)
dblib.c:1961:dbnextrow() dbresults_state = 2 (_DB_RES_RESULTSET_ROWS)
dblib.c:2030:leaving dbnextrow() returning BUF_FULL
dblib.c:6884:dblastrow(0x5555644c41a0)
dblib.c:2698:dbclrbuf(0x5555644c41a0, 0)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:1948:dbnextrow(0x5555644c41a0)
dblib.c:1961:dbnextrow() dbresults_state = 2 (_DB_RES_RESULTSET_ROWS)
dblib.c:2030:leaving dbnextrow() returning BUF_FULL
dblib.c:6884:dblastrow(0x5555644c41a0)
dblib.c:2698:dbclrbuf(0x5555644c41a0, 0)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:3032:dbdatlen(0x5555644c41a0, 1)
dblib.c:3040:dbdatlen() type = 39, len= 23
dblib.c:3060:dbdata(0x5555644c41a0, 1)
dblib.c:1948:dbnextrow(0x5555644c41a0)
dblib.c:1961:dbnextrow() dbresults_state = 2 (_DB_RES_RESULTSET_ROWS)
dblib.c:2030:leaving dbnextrow() returning BUF_FULL
dblib.c:6884:dblastrow(0x5555644c41a0) ...
Then it just repeats over and over...
Thanks for taking a look.
Mark
_________________________________________________________________
See how Windows Mobile brings your life together—at home, work, or on the go.
http://clk.atdmt.com/MRT/go/msnnkwxp1020093182mrt/direct/01/
-
[freetds] One row good, two rows "memory exhausted",
Mark Bird, 09/13/2008
- <Possible follow-up(s)>
-
[freetds] One row good, two rows "memory exhausted",
Mark Bird, 09/13/2008
- Re: [freetds] One row good, two rows "memory exhausted", James K. Lowden, 09/14/2008
Archive powered by MHonArc 2.6.24.