LoginSignup
7
8

More than 5 years have passed since last update.

【MongoDB】エラー対応時のメモ集 -v0.1

Last updated at Posted at 2014-08-01

0. 説明

エラーが出た時にメモっておく場所
同じようなエラーが出た際に参考になればいいかなと思う
エラーに新しい種類が増えた際にタグを追加する

タグが5個しか付与できなかったのでMongoDB専用に変更
どうやらメモ用に使うのは適していないようだ。

1. mongoDB 起動時

コンソールログ

*********************************************************************
 ERROR: dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************

解決策

$ sudo mkdir /data/db

コンソールログ

2014-08-01T09:10:08.272+0900 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2014-08-01T09:10:08.272+0900 [initandlisten] dbexit: 
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: going to close listening sockets...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: going to flush diaglog...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: going to close sockets...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: waiting for fs preallocator...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: lock for final commit...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: final commit...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: closing all files...
2014-08-01T09:10:08.272+0900 [initandlisten] closeAllFiles() finished
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: removing fs lock...
2014-08-01T09:10:08.273+0900 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
2014-08-01T09:10:08.273+0900 [initandlisten] dbexit: really exiting now

解決策

$ sudo mongod

2. railsに入れた時

Input command

$ rails g mongoid:config

output log

/gems/mongo-1.3.1/lib/mongo/cursor.rb:419:in `construct_query_message': uninitialized constant BSON::ByteBuffer (NameError)

cursor.rbの419行目を見てみる

cursor.rb
418     def construct_query_message
419       message = BSON::ByteBuffer.new
420       message.put_int(query_opts)
421       BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@collection.name}")
422       message.put_int(@skip)
423       message.put_int(@limit)
424       spec = query_contains_special_fields? ? construct_query_spec : @selector
425       message.put_binary(BSON::BSON_CODER.serialize(spec, false).to_s)
426       message.put_binary(BSON::BSON_CODER.serialize(@fields, false).to_s) if @fields
427       message
428     end

どうやらBSON::ByteBuffer.newで落ちているようですね
新しく作れないということは、既に存在している可能性がある、もしくはinitializerできないみたいなエラーでしょうか
あとは、バージョンの互換性などが気になります。

解決策

  • mongoidのバージョンを4系にすること
  • bson,mongo,bson_extはGemfileに入っているか。それぞれのバージョンは適切か
  • config/initializersに余計なファイルが入っていないか

無事、以下のログが吐かれれば成功となります。

create  config/mongoid.yml

3. DBにinsertする時

実装

test_test_test.rb
test = test_test_test.new(:test => "test", :created => Time.now)
test.save

コンソールログ

LoadError - Unable to autoload constant test_test_test, expected フォルダ名/test_test_test.rb to define it:
  activesupport (4.1.2) lib/active_support/dependencies.rb:481:in `load_missing_constant'
  activesupport (4.1.2) lib/active_support/dependencies.rb:180:in `const_missing'
  activesupport (4.1.2) lib/active_support/dependencies.rb:512:in `load_missing_constant'
  activesupport (4.1.2) lib/active_support/dependencies.rb:180:in `const_missing'
  app/controllers/nikkei_stock_average_controller.rb:29:in `scrapingPastNikkeiStockAverageValues'
  actionpack (4.1.2) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
  actionpack (4.1.2) lib/abstract_controller/base.rb:189:in `process_action'
  actionpack (4.1.2) lib/action_controller/metal/rendering.rb:10:in `process_action'
  actionpack (4.1.2) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
  activesupport (4.1.2) lib/active_support/callbacks.rb:113:in `call'
  activesupport (4.1.2) lib/active_support/callbacks.rb:229:in `block in halting'
  activesupport (4.1.2) lib/active_support/callbacks.rb:229:in `block in halting'
  activesupport (4.1.2) lib/active_support/callbacks.rb:166:in `block in halting'
  activesupport (4.1.2) lib/active_support/callbacks.rb:166:in `block in halting'
  activesupport (4.1.2) lib/active_support/callbacks.rb:166:in `block in halting'
  activesupport (4.1.2) lib/active_support/callbacks.rb:86:in `run_callbacks'
  actionpack (4.1.2) lib/abstract_controller/callbacks.rb:19:in `process_action'
  actionpack (4.1.2) lib/action_controller/metal/rescue.rb:29:in `process_action'
  actionpack (4.1.2) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
  activesupport (4.1.2) lib/active_support/notifications.rb:159:in `block in instrument'
  activesupport (4.1.2) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  activesupport (4.1.2) lib/active_support/notifications.rb:159:in `instrument'
  actionpack (4.1.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
  actionpack (4.1.2) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
  activerecord (4.1.2) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
  actionpack (4.1.2) lib/abstract_controller/base.rb:136:in `process'
  actionview (4.1.2) lib/action_view/rendering.rb:30:in `process'
  actionpack (4.1.2) lib/action_controller/metal.rb:196:in `dispatch'
  actionpack (4.1.2) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
  actionpack (4.1.2) lib/action_controller/metal.rb:232:in `block in action'
  actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:82:in `dispatch'
  actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:50:in `call'
  actionpack (4.1.2) lib/action_dispatch/journey/router.rb:71:in `block in call'
  actionpack (4.1.2) lib/action_dispatch/journey/router.rb:59:in `call'
  actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:678:in `call'
  rack (1.5.2) lib/rack/etag.rb:23:in `call'
  rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
  rack (1.5.2) lib/rack/head.rb:11:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/flash.rb:254:in `call'
  rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
  rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/cookies.rb:560:in `call'
  activerecord (4.1.2) lib/active_record/query_cache.rb:36:in `call'
  activerecord (4.1.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call'
  activerecord (4.1.2) lib/active_record/migration.rb:380:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  activesupport (4.1.2) lib/active_support/callbacks.rb:82:in `run_callbacks'
  actionpack (4.1.2) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/reloader.rb:73:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
  better_errors (1.1.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
  better_errors (1.1.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
  better_errors (1.1.0) lib/better_errors/middleware.rb:56:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.1.2) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.1.2) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.1.2) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.1.2) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.1.2) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.1.2) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.1.2) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
  rack (1.5.2) lib/rack/lock.rb:17:in `call'
  actionpack (4.1.2) lib/action_dispatch/middleware/static.rb:64:in `call'
  rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
  railties (4.1.2) lib/rails/engine.rb:514:in `call'
  railties (4.1.2) lib/rails/application.rb:144:in `call'
  rack (1.5.2) lib/rack/lock.rb:17:in `call'
  rack (1.5.2) lib/rack/content_length.rb:14:in `call'
  rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
  /usr/local/Cellar/ruby/2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
  /usr/local/Cellar/ruby/2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
  /usr/local/Cellar/ruby/2.1.1/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'

解決策

test_test_test.rb
test = TestTestTest.new(:test => "test", :created => Time.now)
test.save

キャメルケースで書かなくてはならないらしい
TODO 要調査(mongodbのソース読む)

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8