Problem:
Clustered install with 4 foreman nodes behind an F5 load balancer and ~8000 clients running Foreman 1.15 and external posgres database and puppetmasters i.e. foreman nodes only do ENC and UI.
Upgraded to 1.17 via 1.16 and everything seemed ok with a small amount of clients but once we started to load up the cluster with client requests again CPU on all nodes went to 100% crippling the cluster.
We added multiple new foreman nodes up to 7 in total but it made little difference so eventually we rolled back to 1.16 which is still running at high load but is useable.
foreman servers are Vmware with 6 cores and 8G of ram
Expected outcome:
Similar foreman server load after the upgrade
Foreman and Proxy versions:
foreman 1.17.0
foreman-proxy 1.17.0
Foreman and Proxy plugin versions:
foreman_default_hostgroup 4.0.1
foreman_memcache 0.1.0
Other relevant data:
[e.g. logs from Foreman and/or the Proxy, modified templates, commands issued, etc]
Unsure if this is related but we cannot create the apipie cache
foreman-rake apipie:cache
2018-05-09 20:29:17 +1200 | Started
2018-05-09 20:29:18 +1200 | Documents loaded...
2018-05-09 20:29:18 +1200 | Processing docs for
rake aborted!
NoMethodError: undefined method `rebuild_methods' for #<Class:0x0000000b91b5a8>
/usr/share/foreman/vendor/ruby/2.3.0/gems/activerecord-5.1.4/lib/active_record/dynamic_matchers.rb:22:in `method_missing'
/usr/share/foreman/app/models/host/managed.rb:468:in `valid_rebuild_only_values'
/usr/share/foreman/config/initializers/apipie.rb:25:in `block (2 levels) in <top (required)>'
/usr/share/foreman/config/initializers/apipie.rb:33:in `block (3 levels) in <top (required)>'
/usr/share/foreman/config/initializers/apipie.rb:33:in `each'
/usr/share/foreman/config/initializers/apipie.rb:33:in `map'
/usr/share/foreman/config/initializers/apipie.rb:33:in `block (2 levels) in <top (required)>'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/application.rb:385:in `translate'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/method_description.rb:155:in `block in method_apis_to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/method_description.rb:151:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/method_description.rb:151:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/method_description.rb:151:in `collect'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/method_description.rb:151:in `method_apis_to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/method_description.rb:173:in `to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/resource_description.rb:101:in `block in to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/resource_description.rb:101:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/resource_description.rb:101:in `collect'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/resource_description.rb:101:in `to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/application.rb:284:in `block in to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/application.rb:283:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/application.rb:283:in `inject'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/application.rb:283:in `to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/apipie/apipie_module.rb:13:in `to_json'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/tasks/apipie.rake:142:in `block (4 levels) in <top (required)>'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/tasks/apipie.rake:131:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/tasks/apipie.rake:131:in `block (3 levels) in <top (required)>'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/tasks/apipie.rake:286:in `with_loaded_documentation'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.5.8/lib/tasks/apipie.rake:129:in `block (2 levels) in <top (required)>'
Tasks: TOP => apipie:cache
(See full trace by running task with --trace)