我们在 Jruby 上使用 Rails v6.0.2.1 和托管在 DigitalOcean 上的托管 PostgreSQL(使用 JDBC 适配器)。最近,我们看到某个事务创建了一些记录,将 Id 扔给 Sidekiq 进行进一步处理,但数据库中没有该记录,Sidekiq 失败,因为在 db 中找不到该记录。
事务内部也有一些 Concurrent::Future 调用。DigitalOcean 在上述时间段内没有显示任何死锁。目前,DO 不提供 PostgreSQL 日志转储。我们如何调试这个?
在查看 Rails 生产日志时,我们发现这些事务也没有记录任何BEGIN
... COMMIT
ORROLLBACK
消息。