On Mar 27, 2014, at 9:14 AM, Ni Wesley <nisp...@gmail.com> wrote:

> It's not happening everytime.
> 
> And I am not using mysql-python, instead, I use pymysql.
> 
> So, the root cause is connection in bad state?
> How to fix or work around from sqlalchemy side?

I don’t really know, I’d need to have a short script which replicates it in 
order to identify the pattern exactly.

if its pymysql, try another DBAPI.  though this may be some artifact of the 
MySQL protocol.

as always, if you’re doing anything with threads, concurrent use of a MySQL 
connection will usually lead to problems like this.  but there can be other 
reasons too.




> 
> Wesley
> 
> 在 2014年3月27日星期四UTC+8下午8时58分40秒,Michael Bayer写道:
> when the DBAPI cursor has no .description object, it is determined to not be 
> a result-row returning object.   The MySQLDB DBAPI has been observed to 
> occasionally have issues in this area, when a connection gets into a bad 
> state. There are likely patterns in how you’re calling it that lead it to 
> have this issue but you might try a different DBAPI like 
> mysql-connector-python just to see what’s different.
> 
> 
> 
> 
> On Mar 27, 2014, at 7:41 AM, Ni Wesley <nis...@gmail.com> wrote:
> 
>> Hi all,
>>   Today I get an error as title.
>> I use sqlalchemy + mysql.
>> Here is my code snippet:
>> def dbquery(_table,whereclause):
>> 
>>     try:
>> 
>>         #_table=Table(tablename, metadata, autoload=True)
>> 
>>         #_table = tables[tablename]
>> 
>>         i=_table.select().where(whereclause) 
>> 
>>         if direct_engine:  #direct_engine is True
>> 
>>             res = engine.execute(i)
>> 
>>             return res
>> 
>>         else:
>> 
>>             session = scoped_session(sessionmaker(bind=engine))
>> 
>>             res = session.execute(i)
>> 
>>             return res
>> 
>>             session.close()
>> 
>>     except Exception,e:
>> 
>>         #dba_logger.log(40,'Exception when dbwriter:%s' % str(e))
>> 
>>         #dba_logger.log(20,'Exception detail:%s' % str(kwargs))
>> 
>>         exctrace('db','1','Error happened when querying 
>> db',dba_logger,'Exception when dbquery:%s' % str(e),'Exception detail:%s' % 
>> str(whereclause))
>> 
>>         #session.rollback()
>> 
>>         if not direct_engine:
>> 
>>             session.close()
>> 
>> Here is snippet in another file involving dbquery:
>> 
>> try:
>> 
>>      res = 
>> dbquery(tables['sessions_details'],whereclause=and_(tables['sessions_details'].c.app_key==self.app_key,tables['sessions_details'].c.device_token==self._devicetoken))
>> 
>> except Exception,e:
>> 
>>     exctrace('db','1','Error happened when querying 
>> db',dba_logger,'Exception when query session_details:%s' % str(e),'Exception 
>> detail:appkey is %s,devicetoken is %s' % (self.app_key,self._devicetoken))
>> 
>>     self.read_message()
>> 
>>     return   
>> 
>> if res is None:
>> 
>>    logger.log(40,'When query connection,mysql has gone or something, just 
>> skip db and go-on')
>> 
>>                         #here need to justify 0 or 1, later on
>> 
>>                         self.status='0'
>> 
>>                         self.read_message()
>> 
>>                         return
>> 
>> if res.first() is None:
>> 
>>    if json_obj['action'] == 'reg':
>> 
>> So, the line in pink above raises the exception.
>> 
>> Could anyone give some suggestion how this happened?
>> 
>> 
>> 
>> Thanks.
>> 
>> Wesley
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "sqlalchemy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to sqlalchemy+...@googlegroups.com.
>> To post to this group, send email to sqlal...@googlegroups.com.
>> Visit this group at http://groups.google.com/group/sqlalchemy.
>> For more options, visit https://groups.google.com/d/optout.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to