Ruby2.4
Rails5.1.1
Mysql5.6
activerecord-shard_forというgemでシャーディングを行なっているのですが
分割したDBのトランザクションでRailsアプリケーション起動初回のみ接続エラーが
でて2回目以降からは成功するようになります。またブレークポイントを張ってデバッグ
しようとすると初回でも接続エラーになりません。
以下、エラー内容とトレースになります。
何かわかりましたら教えていただけると助かります。
何卒よろしくお願いいたします。
<ActiveRecord::StatementInvalid: Mysql2::Error: MySQL client is not connected: ROLLBACK>
[{"id"=>0, "trace"=>"mysql2 (0.4.6) lib/mysql2/client.rb:120:in _query'"}, {"id"=>1, "trace"=>"mysql2 (0.4.6) lib/mysql2/client.rb:120:in
block in query'"},
{"id"=>2,
"trace"=>
"mysql2 (0.4.6) lib/mysql2/client.rb:119:in handle_interrupt'"}, {"id"=>3, "trace"=>"mysql2 (0.4.6) lib/mysql2/client.rb:119:in
query'"},
{"id"=>4,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract_mysql_adapter.rb:214:in block (2 levels) in execute'"}, {"id"=>5, "trace"=> "activesupport (5.1.1) lib/active_support/dependencies/interlock.rb:46:in
block in permit_concurrent_loads'"},
{"id"=>6,
"trace"=>
"activesupport (5.1.1) lib/active_support/concurrency/share_lock.rb:185:in yield_shares'"}, {"id"=>7, "trace"=> "activesupport (5.1.1) lib/active_support/dependencies/interlock.rb:45:in
permit_concurrent_loads'"},
{"id"=>8,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract_mysql_adapter.rb:213:in block in execute'"}, {"id"=>9, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract_adapter.rb:612:in
block (2 levels) in log'"},
{"id"=>10,
"trace"=>
"/Users/tatsukawa/.rbenv/versions/2.4.1/lib/ruby/2.4.0/monitor.rb:214:in mon_synchronize'"}, {"id"=>11, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract_adapter.rb:611:in
block in log'"},
{"id"=>12,
"trace"=>
"activesupport (5.1.1) lib/active_support/notifications/instrumenter.rb:21:in instrument'"}, {"id"=>13, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract_adapter.rb:603:in
log'"},
{"id"=>14,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract_mysql_adapter.rb:212:in execute'"}, {"id"=>15, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/mysql/database_statements.rb:31:in
execute'"},
{"id"=>16,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract_mysql_adapter.rb:240:in exec_rollback_db_transaction'"}, {"id"=>17, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract/database_statements.rb:278:in
rollback_db_transaction'"},
{"id"=>18,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract/query_cache.rb:17:in rollback_db_transaction'"}, {"id"=>19, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:135:in
rollback'"},
{"id"=>20,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:185:in block in rollback_transaction'"}, {"id"=>21, "trace"=> "/Users/tatsukawa/.rbenv/versions/2.4.1/lib/ruby/2.4.0/monitor.rb:214:in
mon_synchronize'"},
{"id"=>22,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:183:in rollback_transaction'"}, {"id"=>23, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:209:in
rescue in block in within_new_transaction'"},
{"id"=>24,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:206:in block in within_new_transaction'"}, {"id"=>25, "trace"=> "/Users/tatsukawa/.rbenv/versions/2.4.1/lib/ruby/2.4.0/monitor.rb:214:in
mon_synchronize'"},
{"id"=>26,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:191:in within_new_transaction'"}, {"id"=>27, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract/database_statements.rb:225:in
transaction'"},
{"id"=>28,
"trace"=>
"activerecord (5.1.1) lib/active_record/transactions.rb:210:in transaction'"}, {"id"=>29, "trace"=>"app/services/user_service.rb:43:in
block in create!'"},
{"id"=>30,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract/database_statements.rb:225:in block in transaction'"}, {"id"=>31, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:194:in
block in within_new_transaction'"},
{"id"=>32,
"trace"=>
"/Users/tatsukawa/.rbenv/versions/2.4.1/lib/ruby/2.4.0/monitor.rb:214:in mon_synchronize'"}, {"id"=>33, "trace"=> "activerecord (5.1.1) lib/active_record/connection_adapters/abstract/transaction.rb:191:in
within_new_transaction'"},
{"id"=>34,
"trace"=>
"activerecord (5.1.1) lib/active_record/connection_adapters/abstract/database_statements.rb:225:in `transaction'"},
あなたの回答
tips
プレビュー