我有一个使用MongoDB作为数据库的红宝石应用程序。在为此应用程序运行测试时,我正在使用来为每个测试用例创建集合和索引Minitest。
使用docker compose创建测试环境,其中一个容器正在运行测试,另一个容器正在运行MongoDB。
第一次运行测试时,一段时间后,MongoDB被卡住了。查询集合的任何请求均不会响应。
在使用命令行客户端开始运行测试之前,我已经能够连接到它。当我使用检查服务器的状态时,db.serverStatus()我看到某些操作已获得锁。通过查看该globalLock字段,我了解到1个操作具有write锁定,并且有2个操作正在等待获取read锁定。
我不明白为什么这些操作会挂起而不产生锁。我不知道如何进一步调试此问题。
MongoDB版本:3.6.13 Ruby驱动程序版本:2.8.0
我也尝试过其他版本3.6.x和4.0
任何帮助或指导都将受到高度赞赏。
db.serverStatus输出
{
"host" : "c658c885eb90",
"version" : "3.6.14",
"process" : "mongod",
"pid" : NumberLong(1),
"uptime" : 98,
"uptimeMillis" : NumberLong(97909),
"uptimeEstimate" : NumberLong(97),
"localTime" : ISODate("2019-11-03T16:09:14.289Z"),
"asserts" : {
"regular" : 0,
"warning" : 0,
"msg" : 0,
"user" : 0,
"rollovers" : 0
},
"connections" : {
"current" : 6,
"available" : 838854,
"totalCreated" : 11
}, …Run Code Online (Sandbox Code Playgroud) 我在 Rails 4 和 Grape 中使用 ActiveAdmin。
我正在创建新的 AA 资源,
rails g active_admin:resource ModelClassName
它过去可以正常工作。每个资源都显示为管理控制台中的菜单链接。
但是现在出于某种原因,对于我正在创建的新模型,Active Admin 没有在菜单中显示相同的资源。
任何导致这种情况发生的原因都会有很大帮助。
Ruby 版本 - 2.2.3
Rails 版本 - 4.2.4
活动管理版本 - 1.0.0
这是我的 GemFile
ruby '2.2.3'
gem 'rails', '4.2.4'
gem 'pg'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
# gem 'bcrypt', '~> 3.1.7'
# gem 'unicorn'
# gem 'capistrano-rails', group: :development
group :development, …Run Code Online (Sandbox Code Playgroud)