ID: 28537
User updated by: bhoc at tiscali dot ch
Reported By: bhoc at tiscali dot ch
Status: Open
Bug Type: SQLite related
Operating System: any
PHP Version: 5.0.0RC2
New Comment:
Same problem in 5.0.0RC3... :-(
--
Ben
Previous Comments:
------------------------------------------------------------------------
[2004-05-27 13:19:53] bhoc at tiscali dot ch
Okay, I did manage to create a backtrace. A spare machine was
well-equipped. :)
$ gdb /usr/bin/php
GNU gdb 5.3
<snip>
(gdb) run selectcrash.php
Starting program: /usr/bin/php selectcrash.php
php: /usr/src/php-5.0.0RC2/ext/sqlite/libsqlite/src/select.c:659:
generateColumnTypes: Assertion `j<pTabList->nSrc' failed.
Program received signal SIGABRT, Aborted.
0x400d1ac1 in kill () from /lib/libc.so.6
(gdb) bt
#0 0x400d1ac1 in kill () from /lib/libc.so.6
#1 0x400d16eb in raise () from /lib/libc.so.6
#2 0x400d3127 in abort () from /lib/libc.so.6
#3 0x400cad6a in __assert_fail () from /lib/libc.so.6
#4 0x080b004e in generateColumnTypes (pParse=0x0, pTabList=0x822f060,
pEList=0x822eb40)
at /usr/src/php-5.0.0RC2/ext/sqlite/libsqlite/src/select.c:662
#5 0x080b262e in sqliteSelect (pParse=0xbfffcce0, p=0x822ef58,
eDest=1,
iParm=0, pParent=0x0, parentTab=0, pParentAgg=0x0)
at /usr/src/php-5.0.0RC2/ext/sqlite/libsqlite/src/select.c:2219
#6 0x08099397 in yy_reduce (yypParser=0x82316a8, yyruleno=100) at
parse.y:270
#7 0x0809a2cb in sqliteParser (yyp=0x82316a8, yymajor=106, yyminor=
{z = 0x0, dyn = 0, n = 3}, pParse=0x0) at parse.c:3946
#8 0x080b3648 in sqliteRunParser (pParse=0xbfffcce0,
zSql=0x401e9b68 "select rowid, * from allinfo",
pzErrMsg=0xbfffcdcc)
at /usr/src/php-5.0.0RC2/ext/sqlite/libsqlite/src/tokenize.c:458
#9 0x080aa191 in sqliteMain (db=0x822b090,
zSql=0x401e9b68 "select rowid, * from allinfo", xCallback=0,
pArg=0x0,
pzTail=0xbfffcdc8, ppVm=0xbfffcdd4, pzErrMsg=0xbfffcdcc)
at /usr/src/php-5.0.0RC2/ext/sqlite/libsqlite/src/main.c:631
#10 0x080aa306 in sqlite_compile (db=0x822b090,
zSql=0x401e9b68 "select rowid, * from allinfo", pzTail=0xbfffcdc8,
ppVm=0xbfffcdd4, pzErrMsg=0xbfffcdcc)
at /usr/src/php-5.0.0RC2/ext/sqlite/libsqlite/src/main.c:696
#11 0x08095b27 in sqlite_query (object=0x0, db=0x401f05ac,
sql=0x401e9b68 "select rowid, * from allinfo", sql_len=28, mode=0,
buffered=1, return_value=0x401e9c6c, prres=0x0)
at /usr/src/php-5.0.0RC2/ext/sqlite/sqlite.c:1464
#12 0x080961fa in zif_sqlite_query (ht=1075774892,
return_value=0x401e9c6c,
this_ptr=0x0, return_value_used=1)
at /usr/src/php-5.0.0RC2/ext/sqlite/sqlite.c:1669
#13 0x081779a6 in zend_do_fcall_common_helper
(execute_data=0xbfffd580,
opline=0x401f2ca4, op_array=0x822f4e8)
at /usr/src/php-5.0.0RC2/Zend/zend_execute.c:2699
#14 0x08177f03 in zend_do_fcall_handler (execute_data=0xbfffd580,
opline=0x401f2ca4, op_array=0x822f4e8)
at /usr/src/php-5.0.0RC2/Zend/zend_execute.c:2828
#15 0x08175032 in execute (op_array=0x822f4e8)
at /usr/src/php-5.0.0RC2/Zend/zend_execute.c:1391
#16 0x08177ab6 in zend_do_fcall_common_helper
(execute_data=0xbfffd760,
opline=0x401e97e4, op_array=0x401e8d68)
at /usr/src/php-5.0.0RC2/Zend/zend_execute.c:2728
#17 0x08177f03 in zend_do_fcall_handler (execute_data=0xbfffd760,
opline=0x401e97e4, op_array=0x401e8d68)
at /usr/src/php-5.0.0RC2/Zend/zend_execute.c:2828
#18 0x08175032 in execute (op_array=0x401e8d68)
at /usr/src/php-5.0.0RC2/Zend/zend_execute.c:1391
#19 0x0815b3e4 in zend_execute_scripts (type=8, retval=0x0,
file_count=3)
at /usr/src/php-5.0.0RC2/Zend/zend.c:1058
#20 0x0812b912 in php_execute_script (primary_file=0xbffffb00)
at /usr/src/php-5.0.0RC2/main/main.c:1630
#21 0x0817eec8 in main (argc=2, argv=0xbffffb94)
at /usr/src/php-5.0.0RC2/sapi/cgi/cgi_main.c:1562
#22 0x400bdd06 in __libc_start_main () from /lib/libc.so.6
(gdb) frame 4
#4 0x080b004e in generateColumnTypes (pParse=0x0, pTabList=0x822f060,
pEList=0x822eb40)
at /usr/src/php-5.0.0RC2/ext/sqlite/libsqlite/src/select.c:662
662 assert( iCol==-1 || (iCol>=0 && iCol<pTab->nCol) );
--
Ben
------------------------------------------------------------------------
[2004-05-27 12:25:57] bhoc at tiscali dot ch
My currently available environment does not support creating
backtraces, unfortunately.
But I have put a simple php applet in
http://download.pentagroup.ch/phpbug-28537.tar.gz. It will create an
sqlite database, populate it, query it, roll over and die. Hope this
helps.
--
Ben
------------------------------------------------------------------------
[2004-05-27 08:35:48] [EMAIL PROTECTED]
Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php
Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.
------------------------------------------------------------------------
[2004-05-27 01:44:37] bhoc at tiscali dot ch
before someone asks: same behaviour with
http://snaps.php.net/win32/php5-win32-200405262230.zip
------------------------------------------------------------------------
[2004-05-27 01:10:36] bhoc at tiscali dot ch
Description:
------------
"select rowid, * from someview" will crash php.
"select rowid, * from sometable" runs fine.
Result -> cgi will crash, server will close the connection.
This was a bug (#364) in older sqlite versions:
http://www.sqlite.org/cvstrac/tktview?tn=364,16
It seems to have reappeared.
--
Ben
Reproduce code:
---------------
function DumpTable($dbname, $tablename) {
if ($db = sqlite_open($dbname)) {
$sql = "select rowid, * from $tablename";
$res = sqlite_query($db, $sql);
echo "<table border=\"1\">\n";
while ($row = sqlite_fetch_array($res)) {
$fieldnum = sqlite_num_fields($res);
echo " <tr>";
for ($i=0; $i<$fieldnum; $i++) {
echo "<td>$row[$i]</td>";
}
echo " </tr>\n";
}
echo "</table>\n";
sqlite_close($db);
}
}
Expected result:
----------------
Nicely formatted output. :)
Works fine with a plain table; will fail with a view.
Actual result:
--------------
<nothing>, cgi crashes, server closes connection.
Tested under Windows XP and Linux
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28537&edit=1