On Wed, Apr 22, 2009 at 12:12 PM, Steven Surowiec <span dir="ltr">&lt;<a href="mailto:steven@digitalpulp.com">steven@digitalpulp.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;ve found a workaround for myself for this one but just wanted to put it out there. When a query fails watchdog is used to insert it into the DB, which is fine 99.9% of the time, until that .1% bites you. The problem is that if the query (say inserting a new record into the &quot;cache&quot;) causes a query that is larger than the MySQL query buffer limit. This results in a MySQL error that the query is too large to insert, which watchdog then picks up and tries to insert, which fails, which watchdog picks up ... and you get the point. </blockquote>
<div><br>This is why we have syslog as an option in core since D6. Having to log
to the database does not scale for may sites, either because they are
large and hit the db too often, or because of large queries that
overflow MySQL buffer or something else.<br>
<br>
I used it on most D6 sites. <br clear="all"> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Result? Infinite loop and then either a timeout or PHP runs out of memory and dies. I&#39;d think the proper way to handle this would  be to have a check that the specific error code for a MySQL error resulting from a query buffer violation doesn&#39;t try to insert the query, again just putting this out there.<br>

</blockquote></div><br>Seems like a reasonable change to the dblog module.<br>-- <br>Khalid M. Baheyeldin<br><a href="http://2bits.com">2bits.com</a>, Inc.<br><a href="http://2bits.com">http://2bits.com</a><br>Drupal optimization, development, customization and consulting.<br>
Simplicity is prerequisite for reliability. --  Edsger W.Dijkstra<br>Simplicity is the ultimate sophistication. --   Leonardo da Vinci<br>