Hello, Massimo.
> What changed? Did you upgrade? What web2py version?
I removed a task in the background process that was periodically calling
db.commit. In its place, I started using memcache where I had been writing to
the db.
I haven't upgraded. I've been using 1.99.7 all along.
> When you say the select does not work anymore, dwhat do you mean? Does it
> lock or do you get a traceback?
I add an account to the account table with account_id == 1 and id == 1
using appadmin on the web server.
Then I go to the background process and execute these commands both in my code
and using the debugger:
rows = db (db.account.account_id == 1).select().first()
returns None.
count = db (db.account.id > 0).count()
return zero.
db.executesql("select account_id from account")
returns None.
No error messages, exceptions, lock-ups or the like. select() simply fails to
find the data in the table which I can see with appadmin and the mysql
command-line client.
Curiously, if I stop the background process and restart it, I can read the
account from the account table:
db (db.account.id > 0).count()
returns 1.
It's not a matter of the committing the database after the initial write. I
added a db.commit() call after writing the account to the db just to make sure.
It made no difference.
> Which database driver? People have reported problems with pymysql but not
> with mysqldb.
It's pymysql for both the development platform (Mac OS X 10.7) and the
production platform (CentOS).
Do you have any advice on how to diagnose my problem?
Thanks,
David
On Jul 24, 2012, at 8:50 PM, Massimo Di Pierro wrote:
> What changed? Did you upgrade? What web2py version? When you say the select
> does not work anymore, dwhat do you mean? Does it lock or do you get a
> traceback? Which database driver? People have reported problems with pymysql
> but not with mysqldb.
>
> On Tuesday, 24 July 2012 19:42:29 UTC-5, David Phillips wrote:
> On the eve of delivering a project to a client, I've come up against a
> problem that has me stumped. select() statements on one of my mysql tables
> have stopped working.
>
> My application is a web2py web server and a background process (also called a
> homemade task queue in the web2py book). They share the database. The web
> server writes to the table from within an HTTP request, and several seconds
> later, I attempt to read the record in my background process.
>
> Up until yesterday, I didn't have any trouble reading from this or any of the
> tables. And now, all the others work fine. I can still write and read from
> the misbehaving table from the web server.
>
> I am at a loss. I'm not sure where to look to diagnose the problem. Any
> pointers would be gratefully received.
>
>
> --
>
>
>
--