PG :: TRDeadlockDetected;进程i在事务j上等待ShareLock;

时间:2014-06-12 13:34:51

标签: ruby-on-rails postgresql rails-activerecord airbrake

作为一个团队,我们运行软件即服务,用Ruby on Rails编写,供全国家庭监视协会帮助团队监控别墅,住宅,小木屋,车库,船屋,水疗中心,游泳池,车道和码在租户的缺席。

自从我们上次部署以来,Airbrake中记录了67个问题。这是Airbrake简介的成绩单:

Error class PG::TRDeadlockDetected
Error message PG::TRDeadlockDetected: ERROR: deadlock detected DETAIL: Process i waits for ShareLock on transaction j; blocked by process k. Process k waits for ShareLock on transaction j; blocked by process i. HINT: See server log for query details.
Action tenant/tasks#update
URL https://subdomain.qridithomewatch.com/tasks/{id}
File [GEM_ROOT]/gems/activerecord-4.0.4/lib/active_record/connection_adapters/postgresql_adapter.rb:791

这是租户/任务#upcate action的片段:

def update
    respond_smart_with @resource, {}, (@resource.qrid_id ? edit_tenant_qrid_url(@resource.qrid_id) : tenant_tasks_url(work_type_id: @resource.work_type_id, client_type: @resource.client_type)) if @resource.update(resource_params)    
end

另外,我已将可回复关注(respond_smart_with)包含在以防万一作为PasteBin:http://pastebin.com/pFQuRc4P

感谢您的时间和考虑。

亲切的问候, Jason of Quick Report Systems

0 个答案:

没有答案