|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2010-05-26 08:07 UTC] grant dot croker at ingres dot com
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 15:00:02 2025 UTC |
Description: ------------ The server crashes after doing a select with the "first" and the "offset" clause in it. If I do the following select in sql monitor I get the following result: * SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30;\g Executing . . . +--------------------------------+--------------------------------+ |table_name |table_owner | +--------------------------------+--------------------------------+ |ii_key_info |$ingres | |ii_key_map |$ingres | |ii_limits |$ingres | |ii_locks |$ingres | |ii_longremarks |$ingres | |ii_menuargs |$ingres | |ii_objects |$ingres | |ii_qbfnames |$ingres | |ii_rcommands |$ingres | |ii_rel_cncts_ent |$ingres | +--------------------------------+--------------------------------+ (10 rows) continue In PHP with the same query the server crahses If I Change the query in PHP so that the "first" value is bigger than the offset the PHP program runs OK So I change in PHP $SQL = "SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30"; into $SQL = "SELECT first 40 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30"; Two Problems with this issue: 1) The DBMS server should never crash doing a select 2) The behaviour of first and offset in PHP is different than in the terminal monitor. Reproduce code: --------------- <?php function crash_server($link) { $SQL = "SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30"; $result1 = ingres_query($link, $SQL); if ($result1 == FALSE) { echo "Error in Select"; return; } $row = 0; while ($dbRow = ingres_fetch_row($result1)) { $row++; echo $row . "|" . $dbRow[1] . "|" . $dbRow[2] . "</br>"; } ingres_free_result($result1); } $database="phpgen_dev"; $user="msijmons"; $password="dummy"; $link = ingres_connect($database, $user, $password); if ($link == FALSE) { echo "Error in connect"; } else { crash_server($link); ingres_close($link); } ?> Expected result: ---------------- 1|ii_key_info |$ingres 2|ii_key_map |$ingres 3|ii_limits |$ingres 4|ii_locks |$ingres 5|ii_longremarks |$ingres 6|ii_menuargs |$ingres 7|ii_objects |$ingres 8|ii_qbfnames |$ingres 9|ii_rcommands |$ingres 10|ii_rel_cncts_ent |$ingres Actual result: -------------- AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Fri Jul 31 16:38:25 2009 E_QE0002_INTERNAL_ERROR A QEF internal error occurred. Associated error messages which provide more detailed information about the problem can be found in the error log (errlog.log) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: An error occurred in the following session: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: >>>>>Session 11866CC0:5888<<<<< AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: DB Name: phpgen_dev (Owned by: msijmons ) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: User: msijmons (msijmons ) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: User Name at Session Startup: msijmons AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Terminal: console AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Group Id: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Role Id: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Application Code: 00000000 Current Facility: QEF (00000006) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Client user: administrator AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Client host: AEOLUS AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Client tty: AEOLUS AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Client pid: 5064 AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Client connection target: phpgen_dev AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Client information: user='administrator',host='AEOLUS',tty='AEOLUS', pid=5064,conn='phpgen_dev' AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Description: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Query: open ~Q scroll cursor for SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30 for readonly General Protection Exception @70f72798 SP:11aad794 BP:11aad860 AX:0 CX:f82ac54 DX:0 BX:11866cc0 SI:7c8024c7 DI:12f908 >>>CS_SCB found at 11866CC0<<< cs_next: 704B0D80 cs_prev: 11840100 cs_length: 138592. cs_type: FFFFABCD cs_self: 11866CC0 (294022336.) cs_stk_size: 00000000 (0.) cs_state: CS_COMPUTABLE (00000001) cs_mask: (00000000) cs_mode: CS_INPUT(00000002) cs_nmode: CS_OUTPUT(00000003) cs_thread_type: CS_NORMAL(00000000) cs_username: msijmons cs_sem_count: 00000000 ----------------------------------- Stack trace beginning at qea_fetch+888 (70f72798) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866cc0: qeq_fetch: (iilibqef,Base:70f50000)qea_fetch/70f71f10( 0fa475f4 1187f ee4 0f82ac54 00000004 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866cc0: qef_call: (iilibqef,Base:70f50000)qeq_fetch/70fbadc0( 1187fee4 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866cc0: scs_sequencer: (iilibqef,Base:70f50000)qef_call/70f8db90( 0000000c 11 87fee4 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866cc0: CS_setup: ????????( 00000002 11866cc0 11866d00 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866cc0: GetModuleFileNameA: ????????( ) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Fri Jul 31 16:38:26 2009 E_SC0216_QEF_ERROR Error returned by QEF. AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Fri Jul 31 16:38:26 2009 E_SC0206_CANNOT_PROCESS An internal error prevents further processing of this query. Associated error messages which provide more detailed information about the problem can be found in the error log, II_CONFIG:errlog.log AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: Query: open ~Q scroll cursor for SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30 for readonly AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866cc0]: LQuery: open ~Q scroll cursor for SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30 for readonly AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Fri Jul 31 16:38:28 2009 E_QE0002_INTERNAL_ERROR A QEF internal error occurred. Associated error messages which provide more detailed information about the problem can be found in the error log (errlog.log) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: An error occurred in the following session: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: >>>>>Session 11866C80:5768<<<<< AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: DB Name: phpgen_dev (Owned by: msijmons ) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: User: msijmons (msijmons ) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: User Name at Session Startup: msijmons AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Terminal: console AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Group Id: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Role Id: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Application Code: 00000000 Current Facility: QEF (00000006) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Client user: administrator AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Client host: AEOLUS AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Client tty: AEOLUS AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Client pid: 5064 AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Client connection target: phpgen_dev AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Client information: user='administrator',host='AEOLUS',tty='AEOLUS', pid=5064,conn='phpgen_dev' AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Description: AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Query: open ~Q scroll cursor for SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30 for readonly General Protection Exception @70f72798 SP:11aad794 BP:11aad860 AX:0 CX:f82ac54 DX:0 BX:11866c80 SI:7c8024c7 DI:12f908 >>>CS_SCB found at 11866C80<<< cs_next: 704B0D80 cs_prev: 11840100 cs_length: 138592. cs_type: FFFFABCD cs_self: 11866C80 (294022272.) cs_stk_size: 00000000 (0.) cs_state: CS_COMPUTABLE (00000001) cs_mask: (00000000) cs_mode: CS_INPUT(00000002) cs_nmode: CS_OUTPUT(00000003) cs_thread_type: CS_NORMAL(00000000) cs_username: msijmons cs_sem_count: 00000000 ----------------------------------- Stack trace beginning at qea_fetch+888 (70f72798) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866c80: qeq_fetch: (iilibqef,Base:70f50000)qea_fetch/70f71f10( 0fa475f4 1187f ea4 0f82ac54 00000004 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866c80: qef_call: (iilibqef,Base:70f50000)qeq_fetch/70fbadc0( 1187fea4 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866c80: scs_sequencer: (iilibqef,Base:70f50000)qef_call/70f8db90( 0000000c 11 87fea4 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866c80: CS_setup: ????????( 00000002 11866c80 11866cc0 ) Stack dmp name II\INGRES\1bd0 pid 7120 session 11866c80: GetModuleFileNameA: ????????( ) AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Fri Jul 31 16:38:28 2009 E_SC0221_SERVER_ERROR_MAX Error count for server has been exceeded. AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Query: open ~Q scroll cursor for SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30 for readonly AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: LQuery: open ~Q scroll cursor for SELECT first 10 distinct table_name, table_owner FROM iitables WHERE table_type = 'T' and table_name like 'ii%' order by 1, 2 OFFSET 30 for readonly AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Fri Jul 31 16:38:28 2009 E_PS0501_SESSION_OPEN There were open sessions when trying to shut down the parser facility. AEOLUS ::[II\INGRES\1bd0 , 7120 , 11866c80]: Fri Jul 31 16:38:28 2009 E_DM005B_SESSION_OPEN Session(s) are open. AEOLUS ::[II\NMSVR\17f4 , 6132 , 00000001]: Fri Jul 31 16:38:28 2009 E_GC0154_GCN_SRV_SHUTDOWN Registered server shutdown: class INGRES, address II\INGRES\1bd0 AEOLUS ::[II\RMCMD\ab4 , 2740 , ffffffff]: Fri Jul 31 16:38:28 2009 E_RE000F_DAEMON_GET_DBEVENT Cannot get dbevent. The SQL error code was -37000. AEOLUS ::[II\NMSVR\17f4 , 6132 , 00000005]: Fri Jul 31 16:38:28 2009 E_GC0154_GCN_SRV_SHUTDOWN Registered server shutdown: class RMCMD, address II\RMCMD\ab4 AEOLUS ::[II\RMCMD\ab4 , 2740 , ffffffff]: Fri Jul 31 16:38:28 2009 E_RE0002_RMCMD_DOWN Visual DBA RMCMD Server Normal Shutdown.