One row good, two rows "memory exhausted"
Mark Bird <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <[email protected]> |
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/