sensu / bonsai

Apache License 2.0
1 stars 7 forks source link

Bug: recompiling private repo results in seemingly hung process if your oauth scopes are wrong #365

Open jspaleta opened 2 years ago

jspaleta commented 2 years ago

Okay...here's the situation I'm a collaborator on an asset sensu/sensu-servicenow-handler backed by a private github repo.

My bonsai login is at the default public repo scope level. I'm able to go to the sensu-servicenow-handler page in bonsai and ask for a recompile. BUT the recompile process appears to hang with this banner Retrying Compilations: ExtractExtensionParentWorker, SyncExtensionRepoWorker Compiling Extension % 0.0 Complete

No way to unwedge it.

It might be we need to do a specific check when we ask for a recompile to ensure we have the correct access level for the repo.

jspaleta commented 2 years ago

Found this traceback in papertrail

2022-06-25T01:15:45.000Z app/worker.1 4 TID-gsh9slfxw WARN: {"context":"Job raised exception","job":{"class":"SyncExtensionRepoWorker","args":[947,[],20],"retry":true,"queue":"default","backtrace":true,"jid":"cc2d5050194605c0315e304a","created_at":1656119720.2711883,"enqueued_at":1656119744.8194563,"error_message":"GET https://api.github.com/repos/sensu/sensu-servicenow-handler/releases: 404 - Not Found // See: https://docs.github.com/rest/reference/repos#list-releases","error_class":"Octokit::NotFound","failed_at":1656119720.5210953,"retry_count":0,"error_backtrace":["/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/response/raise_error.rb:14:in `on_complete'","/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/response.rb:9:in `block in call'","/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/response.rb:61:in `on_complete'","/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/response.rb:8:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/middleware/follow_redirects.rb:73:in `perform_with_redirection'","/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/middleware/follow_redirects.rb:61:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/request/retry.rb:128:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/rack_builder.rb:143:in `build_response'","/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/connection.rb:387:in `run_request'","/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/connection.rb:138:in `get'","/app/vendor/bundle/ruby/2.5.0/gems/sawyer-0.8.2/lib/sawyer/agent.rb:94:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/connection.rb:156:in `request'","/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/connection.rb:84:in `paginate'","/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/client/releases.rb:15:in `releases'","/app/app/workers/sync_extension_repo_worker.rb:7:in `perform'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:185:in `execute_job'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:167:in `block (2 levels) in process'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-status-1.1.4/lib/sidekiq-status/server_middleware.rb:50:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'","/app/vendor/bundle/ruby/2.5.0/gems/airbrake-10.0.1/lib/airbrake/sidekiq.rb:11:in `block in call'","/app/vendor/bundle/ruby/2.5.0/gems/airbrake-ruby-4.13.0/lib/airbrake-ruby/benchmark.rb:13:in `measure'","/app/vendor/bundle/ruby/2.5.0/gems/airbrake-10.0.1/lib/airbrake/sidekiq.rb:10:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:133:in `invoke'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:166:in `block in process'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/job_retry.rb:108:in `local'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/rails.rb:43:in `block in call'","/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/execution_wrapper.rb:87:in `wrap'","/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/reloader.rb:73:in `block in wrap'","/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/execution_wrapper.rb:87:in `wrap'","/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/reloader.rb:72:in `wrap'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/rails.rb:42:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:243:in `stats'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/job_logger.rb:8:in `call'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/job_retry.rb:73:in `global'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:125:in `block in dispatch'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/logging.rb:48:in `with_context'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/logging.rb:42:in `with_job_hash_context'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:124:in `dispatch'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:165:in `process'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:83:in `process_one'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:71:in `run'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/util.rb:16:in `watchdog'","/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/util.rb:25:in `block in safe_thread'"]},"jobstr":"{\"class\":\"SyncExtensionRepoWorker\",\"args\":[947,[],20],\"retry\":true,\"queue\":\"default\",\"backtrace\":true,\"jid\":\"cc2d5050194605c0315e304a\",\"created_at\":1656119720.2711883,\"enqueued_at\":1656119744.8194563,\"error_message\":\"GET https://api.github.com/repos/sensu/sensu-servicenow-handler/releases: 404 - Not Found // See: https://docs.github.com/rest/reference/repos#list-releases\",\"error_class\":\"Octokit::NotFound\",\"failed_at\":1656119720.5210953,\"retry_count\":0,\"error_backtrace\":[\"/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/response/raise_error.rb:14:in `on_complete'\",\"/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/response.rb:9:in `block in call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/response.rb:61:in `on_complete'\",\"/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/response.rb:8:in `call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/middleware/follow_redirects.rb:73:in `perform_with_redirection'\",\"/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/middleware/follow_redirects.rb:61:in `call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/request/retry.rb:128:in `call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/rack_builder.rb:143:in `build_response'\",\"/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/connection.rb:387:in `run_request'\",\"/app/vendor/bundle/ruby/2.5.0/gems/faraday-0.15.4/lib/faraday/connection.rb:138:in `get'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sawyer-0.8.2/lib/sawyer/agent.rb:94:in `call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/connection.rb:156:in `request'\",\"/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/connection.rb:84:in `paginate'\",\"/app/vendor/bundle/ruby/2.5.0/gems/octokit-4.21.0/lib/octokit/client/releases.rb:15:in `releases'\",\"/app/app/workers/sync_extension_repo_worker.rb:7:in `perform'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:185:in `execute_job'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:167:in `block (2 levels) in process'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-status-1.1.4/lib/sidekiq-status/server_middleware.rb:50:in `call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'\",\"/app/vendor/bundle/ruby/2.5.0/gems/airbrake-10.0.1/lib/airbrake/sidekiq.rb:11:in `block in call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/airbrake-ruby-4.13.0/lib/airbrake-ruby/benchmark.rb:13:in `measure'\",\"/app/vendor/bundle/ruby/2.5.0/gems/airbrake-10.0.1/lib/airbrake/sidekiq.rb:10:in `call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:133:in `invoke'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:166:in `block in process'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/job_retry.rb:108:in `local'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/rails.rb:43:in `block in call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/execution_wrapper.rb:87:in `wrap'\",\"/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/reloader.rb:73:in `block in wrap'\",\"/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/execution_wrapper.rb:87:in `wrap'\",\"/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/reloader.rb:72:in `wrap'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/rails.rb:42:in `call'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:243:in `stats'\",\"/app/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'\",\"/app/vendor/bundle/ruby/2.5.0