python – 避免OpenERP audittrail错误
作者:互联网
我想通过安装audittrail模块来管理OpenERP用户的活动.
创建一些规则(定义哪个用户,哪个对象以及将监视哪个活动(创建,更新…)).我更新了一个产品,看它是否有效.
当我尝试更新产品时,我遇到了系统错误.看到日志,我明白了
[2010-08-31 12:53:35,042]光标未明确关闭
[2010-08-31 12:53:35,043]光标创建于/home/pilgrim/working/sources/addons/audittrail/audittrail.py:204
这里导致错误的行
cr = pooler.get_db(db).cursor()
看一下sql_db.py,我收到了评论
def __del__(self):
if not self.__closed:
# Oops. 'self' has not been closed explicitly.
# The cursor will be deleted by the garbage collector,
# but the database connection is not put back into the connection
# pool, preventing some operation on the database like dropping it.
# This can also lead to a server overload.
msg = "Cursor not closed explicitly\n" \
"Cursor was created at %s:%s" % self.__caller
log(msg, netsvc.LOG_WARNING)
self.close()
由于我是Python的新手,我不知道如何克服这个问题?
任何提示都可以克服这个问题?
谢谢
解决方法:
看到源代码来了解最新情况是非常重要的.
但是根据您发布的内容,看起来前一个游标未明确关闭.
cr = sqldb.db_connect(dbname).cursor()
.........
cr.close()
cr = None
我建议您破解audittrail.py以查找创建光标的位置以及关闭它们的位置.一个典型的问题是异常处理错误,导致代码跳过正常的闭包.
尝试在可疑的游标操作周围放置一个try,except和finally子句.这应该可以帮助您解决问题.
标签:python,openerp,audit-trail 来源: https://codeday.me/bug/20190730/1581525.html