Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[production][package#show] deadlock; recursive locking #17035

Open
danidoni opened this issue Oct 30, 2024 · 3 comments
Open

[production][package#show] deadlock; recursive locking #17035

danidoni opened this issue Oct 30, 2024 · 3 comments
Labels
Bug Frontend Things related to the OBS RoR app

Comments

@danidoni
Copy link
Contributor

See this exception on Errbit

deadlock; recursive locking

Summary

URL

https://build.opensuse.org/package/show/home:ae40515:branches:Cloud:Tools/cloud-init"

Where

package#show

Occured

Oct 12 12:24pm

Similar

306

Params

{
  "action" => "show",
  "controller" => "webui/package",
  "format" => "html",
  "package" => "cloud-init",
  "project" => "home:ae40515:branches:Cloud:Tools"
}

Session

{}

Backtrace

68:  /GEM_ROOT/gems/xmlhash-1.3.9/lib/xmlhash.rb -> **parse_int**
68:  /GEM_ROOT/gems/xmlhash-1.3.9/lib/xmlhash.rb -> **parse**
6:  app/models/directory.rb -> **hashed**
492:  app/models/package.rb -> **dir_hash**
892:  app/models/package.rb -> **rev**
363:  app/controllers/webui/package_controller.rb -> **set_file_details**
63:  app/controllers/webui/package_controller.rb -> **show**
6:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal/basic_implicit_render.rb -> **send_action**
215:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/abstract_controller/base.rb -> **process_action**
165:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal/rendering.rb -> **process_action**
234:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb -> **block in process_action**
107:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/callbacks.rb -> **run_callbacks**
233:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb -> **process_action**
23:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal/rescue.rb -> **process_action**
67:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb -> **block in process_action**
206:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/notifications.rb -> **block in instrument**
24:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/notifications/instrumenter.rb -> **instrument**
206:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/notifications.rb -> **instrument**
66:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb -> **process_action**
259:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal/params_wrapper.rb -> **process_action**
27:  /GEM_ROOT/gems/activerecord-7.0.8.1/lib/active_record/railties/controller_runtime.rb -> **process_action**
151:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/abstract_controller/base.rb -> **process**
39:  /GEM_ROOT/gems/actionview-7.0.8.1/lib/action_view/rendering.rb -> **process**
188:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal.rb -> **dispatch**
251:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_controller/metal.rb -> **dispatch**
49:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb -> **dispatch**
32:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb -> **serve**
18:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/routing/mapper.rb -> **block in <class:Constraints>**
48:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/routing/mapper.rb -> **serve**
50:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb -> **block in serve**
32:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb -> **each**
32:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb -> **serve**
852:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb -> **call**
87:  /GEM_ROOT/gems/flipper-1.3.1/lib/flipper/middleware/memoizer.rb -> **memoized_call**
45:  /GEM_ROOT/gems/flipper-1.3.1/lib/flipper/middleware/memoizer.rb -> **call**
15:  config/initializers/prefer_xml_over_html.rb -> **call**
44:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/deflater.rb -> **call**
15:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/tempfile_reaper.rb -> **call**
27:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/etag.rb -> **call**
27:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/conditional_get.rb -> **call**
12:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/head.rb -> **call**
38:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/http/permissions_policy.rb -> **call**
36:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/http/content_security_policy.rb -> **call**
266:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/session/abstract/id.rb -> **context**
260:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/session/abstract/id.rb -> **call**
704:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/cookies.rb -> **call**
27:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb -> **block in call**
99:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/callbacks.rb -> **run_callbacks**
26:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb -> **call**
32:  /GEM_ROOT/gems/airbrake-9.4.3/lib/airbrake/rack/middleware.rb -> **call!**
21:  /GEM_ROOT/gems/airbrake-9.4.3/lib/airbrake/rack/middleware.rb -> **call**
28:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/debug_exceptions.rb -> **call**
29:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/show_exceptions.rb -> **call**
18:  /GEM_ROOT/gems/lograge-0.14.0/lib/lograge/rails_ext/rack/logger.rb -> **call_app**
25:  /GEM_ROOT/gems/railties-7.0.8.1/lib/rails/rack/logger.rb -> **block in call**
99:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/tagged_logging.rb -> **block in tagged**
37:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/tagged_logging.rb -> **tagged**
99:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/tagged_logging.rb -> **tagged**
25:  /GEM_ROOT/gems/railties-7.0.8.1/lib/rails/rack/logger.rb -> **call**
93:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb -> **call**
93:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb -> **call**
19:  /GEM_ROOT/gems/request_store-1.7.0/lib/request_store/middleware.rb -> **call**
26:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/request_id.rb -> **call**
24:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/method_override.rb -> **call**
22:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/runtime.rb -> **call**
29:  /GEM_ROOT/gems/activesupport-7.0.8.1/lib/active_support/cache/strategy/local_cache_middleware.rb -> **call**
14:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/executor.rb -> **call**
18:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/lock.rb -> **call**
110:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/sendfile.rb -> **call**
131:  /GEM_ROOT/gems/actionpack-7.0.8.1/lib/action_dispatch/middleware/host_authorization.rb -> **call**
530:  /GEM_ROOT/gems/railties-7.0.8.1/lib/rails/engine.rb -> **call**
226:  /GEM_ROOT/gems/railties-7.0.8.1/lib/rails/railtie.rb -> **public_send**
226:  /GEM_ROOT/gems/railties-7.0.8.1/lib/rails/railtie.rb -> **method_missing**
74:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/urlmap.rb -> **block in call**
58:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/urlmap.rb -> **each**
58:  /GEM_ROOT/gems/rack-2.2.9/lib/rack/urlmap.rb -> **call**
107:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.20/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb -> **process_request**
149:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.20/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb -> **accept_and_process_next_request**
110:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.20/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb -> **main_loop**
419:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.20/src/ruby_supportlib/phusion_passenger/request_handler.rb -> **block (3 levels) in start_threads**
113:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.20/src/ruby_supportlib/phusion_passenger/utils.rb -> **block in create_thread_and_abort_on_exception**

Environment

Key Value
program_name Passenger RubyApp: /srv/www/obs/api (production)
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/116.0.1938.76 Safari/537.36
@danidoni danidoni added Bug Frontend Things related to the OBS RoR app labels Oct 30, 2024
@danidoni
Copy link
Contributor Author

The requests are happening inside 2-3s, without providing any User-Agent... So this could be a DOS attempt...

@hennevogel
Copy link
Member

We are doing 50-100 requests per second. I doubt this matters...

@danidoni
Copy link
Contributor Author

We are doing 50-100 requests per second. I doubt this matters...

Yes, the DoS theory does not hold anymore...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Frontend Things related to the OBS RoR app
Projects
None yet
Development

No branches or pull requests

2 participants