Django"锁定等待超时;尝试重启交易"同时保存/更新模型

时间:2017-08-22 21:50:00

标签: mysql django django-models django-admin

我还是Django的新手,当我尝试通过以下方式更新我的模型时,我得到了(1205,'锁定等待超时;尝试重启事务')管理界面。今天早些时候,它正在发挥作用,我一直在回滚最后一个工作版本的变化,试图缩小看似问题的范围。

问题似乎是它无法更新和超时。只需通过管理界面进行编辑和点击保存即可触发此问题。我已经禁用了我设置的任何信号处理(post / presave),但我认为在点击保存更改后只是UPDATE调用会触发此问题。

我已经查看了它并且可以在关注此链接后终止该进程: Getting "Lock wait timeout exceeded; try restarting transaction" even though I'm not using a transaction

但它并没有解决问题。我可以在它进行的过程中终止这个过程,但它是唯一正在运行的查询,甚至不是那个大的查询。

该模型只有7个字段,描述了我编目的VPN服务器。 show processlist给了我这个:

  

更新|更新openvpn_client设置name =' rsa_test1',   local_ip =' 2.2.2.2',vpn_ip = NULL,type =

表格中的结尾会被切断,但我假设其余的都在那里。

我认为这是一个尺寸问题,但到目前为止我只有4个条目用于'客户'并且它们都没有存储任何类型的大数据。

到目前为止,我认为它是一个mySQL问题,而不是一个Django问题,并且有一半的想法重新开始使用新的数据库。

我没有想要增加超时值,因为它曾经在不到一秒的时间内运行来更新这些字段,所以不太确定自那时以后发生了什么变化。

1 个答案:

答案 0 :(得分:2)

事实证明,post_save信号有坏的代码阻塞(不完整的Celery任务)。感觉是在完成后收到信号的印象,但似乎并非如此。