I cannot say without looking at the code. MySQL has lots of
undocumented quirks about what you can do and what you cannot do
within one transaction.

Try add a db.commit() after each insert/unpdate/form.accepts/
crud.update/crud.select IF you do a select after that.

Do you have any try:...except in your controllers and db queries
inside?


On Nov 8, 2:57 am, David Zejda <[email protected]> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> The MySQL error occurs quite often, several times every day. The app has
> about 20000 page views daily and heavily communicates with db (tens of
> queries per request, in db I have about 100 tables). Currently I have
> pool with size for 10 connections.
>
> Meaning of the error message is described here:
>
> http://dev.mysql.com/doc/refman/4.1/en/commands-out-of-sync.html
>
> It seems that with MySQL statements on the same db connection have to be
> exhausted one-by-one, never in parallel. Two statements returning data
> to the process must be using separate DBConnections (possibly to the
> same host/db). Multiple statements on the same connection are supported,
> but only 1 may be in a state to 'fetch' data.
>
> Traces for the errors look like this:
>
>   File "/opt/web2py/gluon/sql.py", line 3378, in count
>     return self.select('count(*)')[0]._extra['count(*)']
>   File "/opt/web2py/gluon/sql.py", line 3237, in select
>     rows = response(query)
>   File "/opt/web2py/gluon/sql.py", line 3232, in response
>     db._execute(query)
>   File "/opt/web2py/gluon/sql.py", line 977, in <lambda>
>     self._execute = lambda *a, **b: self._cursor.execute(*a, **b)
>   File "/var/lib/python-support/python2.5/MySQLdb/cursors.py", line 166,
> in execute
>     self.errorhandler(self, exc, value)
>   File "/var/lib/python-support/python2.5/MySQLdb/connections.py", line
> 35, in defaulterrorhandler
>     raise errorclass, errorvalue
> ProgrammingError: (2014, "Commands out of sync; you can't run this
> command now")
>
> Or e.g.:
>
> Traceback (most recent call last):
>   File "/opt/web2py/gluon/main.py", line 475, in wsgibase
>     BaseAdapter.close_all_instances(BaseAdapter.rollback)
>   File "/opt/web2py/gluon/sql.py", line 810, in close_all_instances
>     action(instance)
>   File "/opt/web2py/gluon/sql.py", line 1393, in rollback
>     self._connection.rollback()
> ProgrammingError: (2014, "Commands out of sync; you can't run this
> command now")
>
> Do you have any tips how to aviod these errors?
>
> Thanks!
>
> - --
> David Zejda
> Sb rka na operaci pro p tiletou Vanessuhttp://www.tabang.eu
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla -http://enigmail.mozdev.org
>
> iEYEARECAAYFAkzXu3oACgkQ3oCkkciamVEXdACeJOUPZt8d3yDvgNNNY6V8HDmX
> TvEAnid88S+V2I7OV9XLR1Kq/etu92kM
> =iP7t
> -----END PGP SIGNATURE-----

Reply via email to