Actions
Bug #38445
openBullet eager loading warnings can break apache in dev environments
Description
It was reported that eager loading warnings from Bullet, which appear in the X-bullet-console-text header, can overflow Apache's response limits.
We should ideally get rid of these eager loading issues. We should also check that the header is not populated in production environments.
I was unable to reproduce the error, but I did notice the long warnings in the headers.
Example:
$ curl --insecure -u admin:changeme -v http://centos9-katello-devel.qatix.example.com:3000/katello/api/environments
* Host centos9-katello-devel.qatix.example.com:3000 was resolved.
* IPv6: (none)
* IPv4: 192.168.121.76
* Trying 192.168.121.76:3000...
* Connected to centos9-katello-devel.qatix.example.com (192.168.121.76) port 3000
* using HTTP/1.x
* Server auth using Basic with user 'admin'
> GET /katello/api/environments HTTP/1.1
> Host: centos9-katello-devel.qatix.example.com:3000
> Authorization: Basic YWRtaW46Y2hhbmdlbWU=
> User-Agent: curl/8.13.0
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< Referrer-Policy: strict-origin-when-cross-origin
< Foreman_version: 3.15.0-develop
< Foreman_api_version: 2
< Foreman_current_organization: ; ANY
< Foreman_current_location: ; ANY
< Content-Type: application/json; charset=utf-8
< Apipie-Checksum: 3225ee1da5ab5da3d623478674f96964780198c4
< ETag: W/"baaaf8cc45b45da18a1d4379732bc32d"
< Cache-Control: max-age=0, private, must-revalidate
< X-bullet-footer-text: ["user: vagrant USE eager loading detected Katello::KTEnvironment => [:organization]\n Add to your query: .includes([:organization])","user: vagrant USE eager loading detected Katello::KTEnvironment => [:priors]\n Add to your query: .includes([:priors])","user: vagrant USE eager loading detected Katello::KTEnvironment => [:successors]\n Add to your query: .includes([:successors])","user: vagrant USE eager loading detected Katello::KTEnvironment => [:content_facets]\n Add to your query: .includes([:content_facets])","user: vagrant USE eager loading detected Katello::KTEnvironment => [:activation_keys]\n Add to your query: .includes([:activation_keys])","user: vagrant USE eager loading detected Katello::KTEnvironment => [:capsules]\n Add to your query: .includes([:capsules])","user: vagrant USE eager loading detected Katello::CapsuleLifecycleEnvironment => [:lifecycle_environment]\n Add to your query: .includes([:lifecycle_environment])"]
< X-bullet-console-text: ["user: vagrant\nUSE eager loading detected\n Katello::KTEnvironment => [:organization]\n Add to your query: .includes([:organization])\nCall stack\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'\n /home/vagrant/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'\n /home/vagrant/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'\n\n","user: vagrant\nUSE eager loading detected\n Katello::KTEnvironment => [:priors]\n Add to your query: .includes([:priors])\nCall stack\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'\n /home/vagrant/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'\n /home/vagrant/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'\n\n","user: vagrant\nUSE eager loading detected\n Katello::KTEnvironment => [:successors]\n Add to your query: .includes([:successors])\nCall stack\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'\n /home/vagrant/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'\n /home/vagrant/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'\n\n","user: vagrant\nUSE eager loading detected\n Katello::KTEnvironment => [:content_facets]\n Add to your query: .includes([:content_facets])\nCall stack\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'\n /home/vagrant/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'\n /home/vagrant/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'\n\n","user: vagrant\nUSE eager loading detected\n Katello::KTEnvironment => [:activation_keys]\n Add to your query: .includes([:activation_keys])\nCall stack\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'\n /home/vagrant/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'\n /home/vagrant/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'\n\n","user: vagrant\nUSE eager loading detected\n Katello::KTEnvironment => [:capsules]\n Add to your query: .includes([:capsules])\nCall stack\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'\n /home/vagrant/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'\n /home/vagrant/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'\n\n","user: vagrant\nUSE eager loading detected\n Katello::CapsuleLifecycleEnvironment => [:lifecycle_environment]\n Add to your query: .includes([:lifecycle_environment])\nCall stack\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/config/initializers/rabl_init.rb:48:in `render'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'\n /home/vagrant/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'\n /home/vagrant/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'\n /home/vagrant/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'\n /home/vagrant/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'\n\n"]
< Set-Cookie: _session_id=049e50e04432fe8ac23ca3d86cc0a770; path=/; HttpOnly; SameSite=Lax
< X-Request-Id: 0570a160-dd3e-4a70-8a95-c533477de40b
< X-Runtime: 1.500083
< x-frame-options: sameorigin
< x-content-type-options: nosniff
< x-xss-protection: 0
< x-download-options: noopen
< x-permitted-cross-domain-policies: none
< content-security-policy: default-src 'self'; child-src 'self'; connect-src 'self' ws: wss:; img-src 'self' data:; script-src 'unsafe-eval' 'unsafe-inline' 'self'; style-src 'unsafe-inline' 'self'
< Content-Length: 1871
<
{"total":2,"subtotal":2,"selectable":2,"page":1,"per_page":20,"error":null,"search":null,"sort":{"by":"name","order":"asc"},"results":[{"library":false,"registry_name_pattern":null,"registry_unauthenticated_pull":false,"id":6,"name":"BLUB","label":"BLUB","description":null,"organization_id":1,"organization":{"name":"Default Organization","label":"Default_Organization","id":1},"created_at":"2025-05-27 15:40:21 UTC","updated_at":"2025-05-27 15:40:21 UTC","prior":{"name":"Library","id":1},"successor":null,"counts":{"content_hosts":0,"content_views":0},"permissions":{"create_lifecycle_environments":true,"view_lifecycle_environments":true,"edit_lifecycle_environments":true,"destroy_lifecycle_environments":true,"promote_or_remove_content_views_to_environments":true},"content_views":[],"capsules":[{"id":1,"name":"centos9-katello-devel.qatix.example.com","lifecycle_environments":[{"id":1},{"id":6}]}]},{"library":true,"registry_name_pattern":null,"registry_unauthenticated_pull":false,"id":1,"name":"Library","label":"Library","description":null,"organization_id":1,"organization":{"name":"Default Organization","label":"Default_Organization","id":1},"created_at":"2025-04-29 16:05:07 UTC","updated_at":"2025-04-29 16:05:07 UTC","prior":null,"successor":null,"counts":{"content_hosts":0,"content_views":0,"packages":0,"module_streams":0,"errata":{"security":0,"bugfix":0,"enhancement":0,"total":0},"yum_repositories":0,"docker_repositories":1,"ostree_repositories":0,"products":2,"debs":4,"deb_repositories":3},"permissions":{"create_lifecycle_environments":true,"view_lifecycle_environments":true,"edit_lifecycle_environments":true,"destroy_lifecycle_environments":false,"promote_or_remove_content_views_to_environments":true},"content_views":[],"capsules":[{"id":1,"name":"centos9-katello-devel.qatix.example.com","lifecycle_environments":[{"id":1},{"id":6}]}]}]}
* Connection #0 to host centos9-katello-devel.qatix.example.com left intact
Actions