[dev] horde/scripts/alarms.php
Didi Rieder
adrieder at sbox.tugraz.at
Wed Jul 9 15:40:38 UTC 2008
Quoting Didi Rieder <adrieder at sbox.tugraz.at>:
> Quoting Didi Rieder <adrieder at sbox.tugraz.at>:
>
>> Hi,
>>
>> I'm testing the alarms.php script (all cvs-HEAD), but unfortunately
>> I get the following Fatal error after a while:
>>
>> PHP Fatal error: Call to undefined method MDB2_Error::execute() in
>> /usr/local/lib/php/Horde/Share/sql.php on line 164
>>
>> In the debug log I see that the script executes about 10000 sql
>> queries [Kronolith_Driver_sql::listEventsConditional()] before it
>> exits.
>>
>> 1.
>> Does someone have an idea what could be the problem?
>>
>> 2.
>> Is there a way to reduce the amount of queries?
>> Or, would the number be reduced anyway after the script completes
>> its run successfully once?
>>
>
> Now since Jan commited
> http://article.gmane.org/gmane.comp.horde.cvs/65919 I got more
> information.
>
> In the log I see 9877 entries of:
>
> Jul 09 16:43:47 HORDE [debug] [kronolith]
> Kronolith_Driver_sql::listEventsConditional(): [....]
>
> Then:
>
> Jul 09 16:44:22 HORDE [debug] [kronolith] SQL Query by
> Prefs_sql::retrieve(): SELECT pref_scope, pref_name, pref_value FROM
> horde_prefs WHERE pref_uid = ? AND pref_scope = ?, values: [...]
> Jul 09 16:44:22 HORDE [debug] [kronolith] SQL Query by
> Prefs_sql::retrieve(): SELECT pref_scope, pref_name, pref_value FROM
> horde_prefs WHERE pref_uid = ? AND pref_scope = ?, values: [...]
> Jul 09 16:44:35 HORDE [error] [kronolith] MDB2 Error: unknown error:
> _doQuery: [Error message: Could not execute statement]
> [Last executed query: PREPARE
> mdb2_statement_mysql_16383a2ae5dbc745f8ebc2910a979239b8c6a16575b
> FROM 'SELECT * FROM kronolith_shares WHERE share_name = ?']
> [Native code: 1461]
> [Native message: Can't create more than max_prepared_stmt_count
> statements (current value: 16382)]
> [pid 5147 on line 173 of "/usr/local/lib/php/Horde/Share/sql.php"]
>
> The same is then the case with nag:
>
> Jul 09 16:44:37 HORDE [debug] [horde] SQL query by
> Horde_Alarm_sql::_exists(): SELECT 1 FROM horde_alarms WHERE
> alarm_id = ? AND [...]
> Jul 09 16:44:37 HORDE [debug] [horde] SQL query by
> Horde_Alarm_sql::_update(): UPDATE horde_alarms set alarm_start = ?,
> alarm_end [...]
>
> Then 9877 entries of:
> Jul 09 16:44:39 HORDE [debug] [nag] SQL alarms list by riederd at mbox:
> table = nag_tasks; query = "SELECT * FROM nag_tasks WHERE [...]
>
> Then
> Jul 09 16:45:04 HORDE [error] [nag] MDB2 Error: unknown error:
> _doQuery: [Error message: Could not execute statement]
> [Last executed query: PREPARE
> mdb2_statement_mysql_180702b1b4d7e1690d2978c1377b461e09b833d75ad
> FROM 'SELECT * FROM nag_shares WHERE share_name = ?']
> [Native code: 1461]
> [Native message: Can't create more than max_prepared_stmt_count
> statements (current value: 16382)]
> [pid 5147 on line 173 of "/usr/local/lib/php_cvs_dev/Horde/Share/sql.php"]
>
> 16382 of prepared statements is a lot I think, but can this be changed?
Found it in the mysql docs: it can be set to a max of 1048576
But wouldn't it be better to try to reduce the number of statements at
first place,
since this script should be running periodically every 5 minutes as suggested?
Didi
--
-------------------------
Didi Rieder
adrieder at sbox.tugraz.at
PGPKey ID: 3431D0B0
-------------------------
More information about the dev
mailing list