[6.0-stable] Post-Receive Hook fails / Webhooks not called
Created by: simonkurka
Summary
The Post-Receive Hook fails, so the Webhooks are not called.
Steps to Reproduce
Push to a repo (may be more than one time, sometimes it works, but rarely) see if the the webhook gets called. (Not tested in Vagrant.)
Expected behaviour
Webhook to be called...
Observed behaviour
Webhook is not called.
sidekiq log
2013-09-01T19:15:13Z 32741 TID-ow5ylm1g0 PostReceive JID- INFO: start
2013-09-01T19:15:13Z 32741 TID-ow5ylm1g0 PostReceive JID- INFO: fail: 0.114 sec
2013-09-01T19:15:13Z 32741 TID-ow5ylm1g0 WARN: {"class"=>"PostReceive", "args"=>["/home/git/repositories/simon/test.git", "fae2f18b023ec8f2aebcaee589d2b2cfba784618", "8b0cf09ebe828a4da2541c2e07d2f21687a38ad9", "refs/heads/master", "key-1"]}
2013-09-01T19:15:13Z 32741 TID-ow5ylm1g0 WARN: Mysql2::Error: Unknown column 'merge_requests.project_id' in 'where clause': SELECT `merge_requests`.* FROM `merge_requests` WHERE `merge_requests`.`project_id` = 9 AND (`merge_requests`.`state` IN ('opened')) AND (source_branch LIKE 'master' OR target_branch LIKE 'master')
2013-09-01T19:15:13Z 32741 TID-ow5ylm1g0 WARN: /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `query'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `block in execute'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activesupport-3.2.13/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `execute'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/mysql2_adapter.rb:211:in `execute'
/home/git/gitlab/config/initializers/connection_fix.rb:22:in `execute'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/mysql2_adapter.rb:215:in `exec_query'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/mysql2_adapter.rb:224:in `select'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/database_statements.rb:18:in `select_all'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/query_cache.rb:63:in `select_all'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/querying.rb:38:in `block in find_by_sql'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/explain.rb:41:in `logging_query_plan'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/querying.rb:37:in `find_by_sql'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/relation.rb:171:in `exec_queries'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/relation.rb:160:in `block in to_a'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/explain.rb:41:in `logging_query_plan'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/relation.rb:159:in `to_a'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/relation/finder_methods.rb:159:in `all'
/home/git/gitlab/app/models/project.rb:326:in `update_merge_requests'
/home/git/gitlab/app/services/git_push_service.rb:29:in `execute'
/home/git/gitlab/app/workers/post_receive.rb:32:in `perform'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/processor.rb:49:in `block (2 levels) in process'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/chain.rb:109:in `call'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/chain.rb:109:in `block in invoke'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/server/active_record.rb:6:in `call'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/chain.rb:111:in `block in invoke'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/server/retry_jobs.rb:50:in `call'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/chain.rb:111:in `block in invoke'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/server/logging.rb:11:in `block in call'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/logging.rb:22:in `with_context'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/server/logging.rb:7:in `call'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/chain.rb:111:in `block in invoke'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/chain.rb:114:in `call'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/middleware/chain.rb:114:in `invoke'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/processor.rb:48:in `block in process'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/processor.rb:87:in `stats'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/sidekiq-2.12.0/lib/sidekiq/processor.rb:47:in `process'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/calls.rb:25:in `public_send'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/calls.rb:25:in `dispatch'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/calls.rb:125:in `dispatch'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/actor.rb:328:in `block in handle_message'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/tasks.rb:42:in `block in initialize'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/tasks/task_thread.rb:20:in `block in create'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/internal_pool.rb:59:in `call'
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/celluloid-0.14.0/lib/celluloid/internal_pool.rb:59:in `block in create'
Output of checks
All passed. Version: 6.0.0 Revision: 86c97373
Possible fixes
It seems there is a MySQL Query using column project_id
in WHERE clause which doesn't exists (Table: merge_requests
).
To track down I think te following lines are useful:
/home/git/gitlab/app/models/project.rb:326:in `update_merge_requests'
/home/git/gitlab/app/services/git_push_service.rb:29:in `execute'
/home/git/gitlab/app/workers/post_receive.rb:32:in `perform'
I couldn't find the piece of code for now (sorry), because I'm a native PHP / Java Developer and as far as I unterstood some kind of Framework is used for MySQL Queries here.
Hope you can help me / Find the actual bug.