Bugs item #2975433, was opened at 2010-03-23 12:47
Message generated for change (Comment added) made by sbenz
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=2975433&group_id=56967
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Mapi
Group: Clients "stable"
Status: Open
Resolution: Fixed
Priority: 5
Private: No
Submitted By: Stephen Benz (sbenz)
Assigned to: Sjoerd Mullender (sjoerd)
Summary: PHP Native client occasionally truncates large result sets
Initial Comment:
mapi_read in the native php socket client assumes socket_read is going to
actually return the chunk size that's requested. While this does happen in
many cases, when there's a large result set or network latency only a portion
of that read may happen. This causes a limited number of rows to be returned,
and other weird behavior.
Environment:
Linux, CentOS 5
PHP 5.1.6
MonetDB Nov 2009 (but verified the php code hasn't been fixed in Feb 2010)
Reproduction steps:
1. $res = monetdb_query("select * from largeTable;"); // where largeTable is a
table with 500k+ rows, in our case
2. Notice the result doesn't contain all the rows... the number is variable
based on the connection to the db server (we run monetdb on another server,
*not localhost*)
Fix:
in php_mapi.inc (function mapi_read()):
$data = socket_read($socket, $chunk_size);
// can't assume the read is going to give you the actual size
you expect
while(strlen($data) < $chunk_size)
{
$data .= socket_read($socket, $chunk_size -
strlen($data));
}
and a few lines later:
if ( ($block = socket_read($socket, $chunk_size)) ==
FALSE) {
$last_error =
socket_strerror(socket_last_error());
return FALSE;
}
while(strlen($block) < $chunk_size)
{
$block .= socket_read($socket, $chunk_size -
strlen($block));
}
----------------------------------------------------------------------
>Comment By: Stephen Benz (sbenz)
Date: 2010-04-15 07:44
Message:
Yup! Just tested the new version from CVS and it fixes the issue. Thanks!
----------------------------------------------------------------------
Comment By: Sjoerd Mullender (sjoerd)
Date: 2010-04-15 06:04
Message:
Thanks for the report and the fix.
I checked in a variant of your fix. This should make it into the next
release.
Can you check whether my version works?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=2975433&group_id=56967
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Monetdb-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-bugs