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

"undefined method `read' for nil:NilClass" for Rack Request body #1465

Open
slhck opened this issue Jul 3, 2024 · 0 comments
Open

"undefined method `read' for nil:NilClass" for Rack Request body #1465

slhck opened this issue Jul 3, 2024 · 0 comments

Comments

@slhck
Copy link

slhck commented Jul 3, 2024

Describe the bug

After updating my Gems, I get this error in my Rspec tests that produce requests:

$ util/rspec.sh spec/requests/export_api/v1/clients_spec.rb 
Running via Spring preloader in process 3443
[rspec-sidekiq] WARNING! Sidekiq will *NOT* process jobs in this environment. See https://github.com/wspurgin/rspec-sidekiq/wiki/FAQ-&-Troubleshooting
2024-07-03T11:22:07.875Z pid=3443 tid=50z INFO: Sidekiq 7.3.0 connecting to Redis with options {:size=>10, :pool_name=>"internal", :url=>"redis://redis:6379/0"}
F

Failures:

  1) ExportApi::V1::Clients fetching clients as JSON GET /export_api/v1/clients returns the clients
     Failure/Error: super(path, **kwarg)
     
     NoMethodError:
       undefined method `read' for nil:NilClass
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/context_builder.rb:82:in `get_body'
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/context_builder.rb:51:in `apply_to_request'
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/context_builder.rb:34:in `block in build'
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/context_builder.rb:33:in `build'
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/agent.rb:235:in `build_context'
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm.rb:323:in `build_context'
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/middleware.rb:40:in `rescue in call'
     # /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/middleware.rb:37:in `call'
     # /usr/local/bundle/ruby/3.2.0/gems/rack-cors-2.0.2/lib/rack/cors.rb:102:in `call'
     # /usr/local/bundle/ruby/3.2.0/gems/railties-7.1.3.4/lib/rails/engine.rb:536:in `call'
     # /usr/local/bundle/ruby/3.2.0/gems/rack-test-2.1.0/lib/rack/test.rb:360:in `process_request'
     # /usr/local/bundle/ruby/3.2.0/gems/rack-test-2.1.0/lib/rack/test.rb:153:in `request'
     # ./spec/support/json_formattable.rb:14:in `block in <module:ModifiedAcceptHeaders>'
     # ./spec/requests/export_api/v1/clients_spec.rb:13:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:106:in `block (3 levels) in <main>'
     # /usr/local/bundle/ruby/3.2.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/strategy.rb:30:in `cleaning'
     # /usr/local/bundle/ruby/3.2.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:34:in `block (2 levels) in cleaning'
     # /usr/local/bundle/ruby/3.2.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:35:in `cleaning'
     # ./spec/rails_helper.rb:105:in `block (2 levels) in <main>'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `load'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/command_wrapper.rb:38:in `call'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/application.rb:226:in `block in serve'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/application.rb:190:in `fork'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/application.rb:190:in `serve'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/application.rb:153:in `block in run'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/application.rb:147:in `loop'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/application.rb:147:in `run'
     # /usr/local/bundle/ruby/3.2.0/gems/spring-4.2.1/lib/spring/application/boot.rb:25:in `<top (required)>'
     # -e:1:in `<main>'
     # ------------------
     # --- Caused by: ---
     # NoMethodError:
     #   undefined method `read' for nil:NilClass
     #   /usr/local/bundle/ruby/3.2.0/gems/elastic-apm-4.7.3/lib/elastic_apm/context_builder.rb:82:in `get_body'

Steps to reproduce

Hard to reproduce from scratch … but I can provide the exact request data which shows that the body is indeed nil. When I dump the req object in the get_body function, you can see it has no body:

#<Rack::Request:0x0000ffff65a7fae8
  @env={
      "REQUEST_METHOD"=>"GET",
      "SERVER_NAME"=>"www.example.com",
      "SERVER_PORT"=>"80",
      "SERVER_PROTOCOL"=>"HTTP/1.0",
      "QUERY_STRING"=>"api_key=export-8QDwBg9GbF5XH6GQkDdNEoDcB63MGWnTgEAM7DXmUj9EXQWZwECsWkyVjs4x3ggJ",
      "PATH_INFO"=>"/export_api/v1/clients",
      "rack.url_scheme"=>"http",
      "HTTPS"=>"off",
      "SCRIPT_NAME"=>"",
      "rack.errors"=>#<StringIO:0x0000ffff65b01e80>, "rack.test"=>true, "REMOTE_ADDR"=>"127.0.0.1",
      "REQUEST_URI"=>"/export_api/v1/clients",
      "HTTP_HOST"=>"www.example.com",
      "HTTP_ACCEPT"=>"application/json",
      "HTTP_COOKIE"=>"",
      "action_dispatch.parameter_filter"=>[:passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn], "action_dispatch.redirect_filter"=>[], "action_dispatch.secret_key_base"=>"849922813286880fcc2b92672b90930246667ffa6013bd27eca3b2e390d65d1288341434f46fa9d4c3ae374485e89ca1e9edccaf0aa2b86571d17debb6012c03",
      "action_dispatch.show_exceptions"=>:all,
      "action_dispatch.show_detailed_exceptions"=>true,
      "action_dispatch.log_rescued_responses"=>true,
      "action_dispatch.debug_exception_log_level"=>4,
      "action_dispatch.logger"=>#<ActiveSupport::BroadcastLogger:0x0000ffffaea93518
    @broadcasts=[#<ActiveSupport::Logger:0x0000ffffaea56280
      @level=0,
      @progname=nil,
      @default_formatter=#<Logger::Formatter:0x0000ffffaeaefc00
      @datetime_format=nil>,
      @formatter=#<ActiveSupport::Logger::SimpleFormatter:0x0000ffffaeaef7f0
      @datetime_format=nil>,
      @logdev=#<Logger::LogDevice:0x0000ffffaea56190
      @shift_period_suffix="%Y%m%d",
      @shift_size=10485760,
      @shift_age=10,
      @filename="/home/surfmeterserver/log/development.log",
      @dev=#<File:/home/surfmeterserver/log/development.log>,
      @binmode=false,
      @mon_data=#<Monitor:0x0000ffffaeaefa48>,
      @mon_data_owner_object_id=9000>,
      @level_override={},
      @local_level_key=:logger_thread_safe_level_15520>],
  @progname="Broadcast",
  @formatter=#<ActiveSupport::Logger::SimpleFormatter:0x0000ffffaeaef7f0
  @datetime_format=nil>>, "action_dispatch.backtrace_cleaner"=>#<Rails::BacktraceCleaner:0x0000ffffae846c38
  @silencers=[#<Proc:0x0000ffffae846828 /usr/local/bundle/ruby/3.2.0/gems/activesupport-7.1.3.4/lib/active_support/backtrace_cleaner.rb:120>, #<Proc:0x0000ffffae8467b0 /usr/local/bundle/ruby/3.2.0/gems/activesupport-7.1.3.4/lib/active_support/backtrace_cleaner.rb:124>, #<Proc:0x0000ffffae8465a8 /usr/local/bundle/ruby/3.2.0/gems/railties-7.1.3.4/lib/rails/backtrace_cleaner.rb:24>],
  @filters=[#<Proc:0x0000ffffae8468c8 /usr/local/bundle/ruby/3.2.0/gems/activesupport-7.1.3.4/lib/active_support/backtrace_cleaner.rb:116>, #<Proc:0x0000ffffae846670 /usr/local/bundle/ruby/3.2.0/gems/railties-7.1.3.4/lib/rails/backtrace_cleaner.rb:14>, #<Proc:0x0000ffffae846620 /usr/local/bundle/ruby/3.2.0/gems/railties-7.1.3.4/lib/rails/backtrace_cleaner.rb:17>],
  @root="/home/surfmeterserver/">, "action_dispatch.key_generator"=>#<ActiveSupport::CachingKeyGenerator:0x0000ffffae7197c0
  @key_generator=#<ActiveSupport::KeyGenerator:0x0000000000f988>,
  @cache_keys=#<Concurrent::Map:0x0000ffffae719770 entries=3 default_proc=nil>>, "action_dispatch.http_auth_salt"=>"http authentication",
    "action_dispatch.signed_cookie_salt"=>"signed cookie",
    "action_dispatch.encrypted_cookie_salt"=>"encrypted cookie",
    "action_dispatch.encrypted_signed_cookie_salt"=>"signed encrypted cookie",
    "action_dispatch.authenticated_encrypted_cookie_salt"=>"authenticated encrypted cookie",
    "action_dispatch.use_authenticated_cookie_encryption"=>true, "action_dispatch.encrypted_cookie_cipher"=>nil, "action_dispatch.signed_cookie_digest"=>nil, "action_dispatch.cookies_serializer"=>:json, "action_dispatch.cookies_digest"=>nil, "action_dispatch.cookies_rotations"=>#<ActiveSupport::Messages::RotationConfiguration:0x0000ffffb1b86eb8
  @signed=[],
  @encrypted=[]>, "action_dispatch.cookies_same_site_protection"=>#<Proc:0x0000ffff65b01020 /usr/local/bundle/ruby/3.2.0/gems/railties-7.1.3.4/lib/rails/application.rb:705>, "action_dispatch.use_cookies_with_metadata"=>true, "action_dispatch.content_security_policy"=>nil, "action_dispatch.content_security_policy_report_only"=>false, "action_dispatch.content_security_policy_nonce_generator"=>nil, "action_dispatch.content_security_policy_nonce_directives"=>nil, "action_dispatch.permissions_policy"=>nil, "action_dispatch.routes"=>#<ActionDispatch::Routing::RouteSet:0x0000ffffae300508>, "ROUTES_15880_SCRIPT_NAME"=>"",
    "ORIGINAL_FULLPATH"=>"/export_api/v1/clients?api_key=export-8QDwBg9GbF5XH6GQkDdNEoDcB63MGWnTgEAM7DXmUj9EXQWZwECsWkyVjs4x3ggJ",
    "ORIGINAL_SCRIPT_NAME"=>"",
    "rack.cors"=>#<Rack::Cors::Result:0x0000ffff65b002d8
  @preflight=false,
  @hit=false,
  @miss_reason="no-origin">},
  @params=nil>

Expected behavior

The tests should pass.

Environment

  • OS: Linux (Docker)
  • Ruby version: 3.2.2
  • Framework and version: Rails 7.1
  • APM Server version: N/A
  • Agent version: 4.7.3

Additional context

My backtrace shows a middleware (json_formattable.rb) as the last internal source of the error, but the error persistts when I comment out that middleware, so it is not at fault.

Per the discussion here, I would think that elastic-apm simply needs to handle the body being nil with Rack ≥3.1.0?

Here is the exact Gemfile.lock diff:

diff --git a/surfmeter-web/Gemfile.lock b/surfmeter-web/Gemfile.lock
index e703cf4..04ae276 100644
--- a/surfmeter-web/Gemfile.lock
+++ b/surfmeter-web/Gemfile.lock
@@ -3,35 +3,35 @@ GEM
   specs:
     aasm (5.5.0)
       concurrent-ruby (~> 1.0)
-    actioncable (7.1.3.2)
-      actionpack (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    actioncable (7.1.3.4)
+      actionpack (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
       zeitwerk (~> 2.6)
-    actionmailbox (7.1.3.2)
-      actionpack (= 7.1.3.2)
-      activejob (= 7.1.3.2)
-      activerecord (= 7.1.3.2)
-      activestorage (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    actionmailbox (7.1.3.4)
+      actionpack (= 7.1.3.4)
+      activejob (= 7.1.3.4)
+      activerecord (= 7.1.3.4)
+      activestorage (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       mail (>= 2.7.1)
       net-imap
       net-pop
       net-smtp
-    actionmailer (7.1.3.2)
-      actionpack (= 7.1.3.2)
-      actionview (= 7.1.3.2)
-      activejob (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    actionmailer (7.1.3.4)
+      actionpack (= 7.1.3.4)
+      actionview (= 7.1.3.4)
+      activejob (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.2)
-    actionpack (7.1.3.2)
-      actionview (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    actionpack (7.1.3.4)
+      actionview (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       nokogiri (>= 1.8.5)
       racc
       rack (>= 2.2.4)
@@ -39,15 +39,15 @@ GEM
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.2)
       rails-html-sanitizer (~> 1.6)
-    actiontext (7.1.3.2)
-      actionpack (= 7.1.3.2)
-      activerecord (= 7.1.3.2)
-      activestorage (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    actiontext (7.1.3.4)
+      actionpack (= 7.1.3.4)
+      activerecord (= 7.1.3.4)
+      activestorage (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       globalid (>= 0.6.0)
       nokogiri (>= 1.8.5)
-    actionview (7.1.3.2)
-      activesupport (= 7.1.3.2)
+    actionview (7.1.3.4)
+      activesupport (= 7.1.3.4)
       builder (~> 3.1)
       erubi (~> 1.11)
       rails-dom-testing (~> 2.2)
@@ -56,27 +56,27 @@ GEM
       activerecord (>= 6.0)
       activesupport (>= 6.0)
       ruby2_keywords
-    activejob (7.1.3.2)
-      activesupport (= 7.1.3.2)
+    activejob (7.1.3.4)
+      activesupport (= 7.1.3.4)
       globalid (>= 0.3.6)
-    activemodel (7.1.3.2)
-      activesupport (= 7.1.3.2)
-    activerecord (7.1.3.2)
-      activemodel (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    activemodel (7.1.3.4)
+      activesupport (= 7.1.3.4)
+    activerecord (7.1.3.4)
+      activemodel (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       timeout (>= 0.4.0)
-    activerecord-import (1.6.0)
+    activerecord-import (1.7.0)
       activerecord (>= 4.2)
-    activerecord-postgis-adapter (9.0.1)
+    activerecord-postgis-adapter (9.0.2)
       activerecord (~> 7.1.0)
       rgeo-activerecord (~> 7.0.0)
-    activestorage (7.1.3.2)
-      actionpack (= 7.1.3.2)
-      activejob (= 7.1.3.2)
-      activerecord (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    activestorage (7.1.3.4)
+      actionpack (= 7.1.3.4)
+      activejob (= 7.1.3.4)
+      activerecord (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       marcel (~> 1.0)
-    activesupport (7.1.3.2)
+    activesupport (7.1.3.4)
       base64
       bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -86,30 +86,31 @@ GEM
       minitest (>= 5.1)
       mutex_m
       tzinfo (~> 2.0)
-    addressable (2.8.6)
-      public_suffix (>= 2.0.2, < 6.0)
+    addressable (2.8.7)
+      public_suffix (>= 2.0.2, < 7.0)
     api-pagination (5.0.0)
     ast (2.4.2)
     base64 (0.2.0)
     bcrypt (3.1.20)
-    bigdecimal (3.1.7)
+    bigdecimal (3.1.8)
     bindex (0.8.1)
     blueprinter (1.0.2)
     bootsnap (1.18.3)
       msgpack (~> 1.2)
-    browser (5.3.1)
-    builder (3.2.4)
+    browser (6.0.0)
+    builder (3.3.0)
     byebug (11.1.3)
-    cancancan (3.5.0)
+    cancancan (3.6.1)
     choice (0.2.0)
-    concurrent-ruby (1.2.3)
-    config (5.4.0)
+    concurrent-ruby (1.3.3)
+    config (5.5.1)
       deep_merge (~> 1.2, >= 1.2.1)
     connection_pool (2.4.1)
     crack (1.0.0)
       bigdecimal
       rexml
     crass (1.0.6)
+    csv (3.3.0)
     database_cleaner (2.0.2)
       database_cleaner-active_record (>= 2, < 3)
     database_cleaner-active_record (2.1.0)
@@ -118,7 +119,7 @@ GEM
     database_cleaner-core (2.0.1)
     date (3.3.4)
     deep_merge (1.2.2)
-    devise (4.9.3)
+    devise (4.9.4)
       bcrypt (~> 3.0)
       orm_adapter (~> 0.1)
       railties (>= 4.1.0)
@@ -128,31 +129,31 @@ GEM
     docile (1.4.0)
     domain_name (0.6.20240107)
     drb (2.2.1)
-    elastic-apm (4.7.2)
+    elastic-apm (4.7.3)
       concurrent-ruby (~> 1.0)
       http (>= 3.0)
       ruby2_keywords
-    elasticsearch (7.17.10)
-      elasticsearch-api (= 7.17.10)
-      elasticsearch-transport (= 7.17.10)
-    elasticsearch-api (7.17.10)
+    elastic-transport (8.3.2)
+      faraday (< 3)
       multi_json
-    elasticsearch-model (7.2.1)
+    elasticsearch (8.14.0)
+      elastic-transport (~> 8.3)
+      elasticsearch-api (= 8.14.0)
+    elasticsearch-api (8.14.0)
+      multi_json
+    elasticsearch-model (8.0.0)
       activesupport (> 3)
-      elasticsearch (~> 7)
+      elasticsearch (~> 8)
       hashie
-    elasticsearch-transport (7.17.10)
-      faraday (>= 1, < 3)
-      multi_json
-    erubi (1.12.0)
+    erubi (1.13.0)
     factory_bot (6.4.6)
       activesupport (>= 5.0.0)
     factory_bot_rails (6.4.3)
       factory_bot (~> 6.4)
       railties (>= 5.0.0)
-    faker (3.2.3)
+    faker (3.4.1)
       i18n (>= 1.8.11, < 2)
-    faraday (2.9.0)
+    faraday (2.9.2)
       faraday-net_http (>= 2.0, < 3.2)
     faraday-net_http (3.1.0)
       net-http
@@ -161,7 +162,10 @@ GEM
     fast_page (0.1.6)
       activerecord
       activesupport
-    ffi (1.16.3)
+    ffi (1.17.0-aarch64-linux-gnu)
+    ffi (1.17.0-aarch64-linux-musl)
+    ffi (1.17.0-arm64-darwin)
+    ffi (1.17.0-x86_64-linux-gnu)
     ffi-compiler (1.3.2)
       ffi (>= 1.15.5)
       rake
@@ -171,7 +175,9 @@ GEM
       ruby_parser (~> 3.0)
       sexp_processor (~> 4.0)
     gem-licenses (0.2.2)
-    geocoder (1.8.2)
+    geocoder (1.8.3)
+      base64 (>= 0.1.0)
+      csv (>= 3.0.0)
     globalid (1.2.1)
       activesupport (>= 6.1)
     groupdate (6.4.0)
@@ -184,23 +190,23 @@ GEM
       http-cookie (~> 1.0)
       http-form_data (~> 2.2)
       llhttp-ffi (~> 0.5.0)
-    http-cookie (1.0.5)
+    http-cookie (1.0.6)
       domain_name (~> 0.5)
     http-form_data (2.3.0)
-    i18n (1.14.4)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
     io-console (0.7.2)
-    irb (1.12.0)
-      rdoc
+    irb (1.13.2)
+      rdoc (>= 4.0.0)
       reline (>= 0.4.2)
-    jbuilder (2.11.5)
+    jbuilder (2.12.0)
       actionview (>= 5.0.0)
       activesupport (>= 5.0.0)
-    json (2.7.1)
+    json (2.7.2)
     json_matchers (0.11.1)
       json_schema
     json_schema (0.21.0)
-    jwt (2.8.1)
+    jwt (2.8.2)
       base64
     language_server-protocol (3.17.0.3)
     listen (3.9.0)
@@ -209,6 +215,7 @@ GEM
     llhttp-ffi (0.5.0)
       ffi-compiler (~> 1.0)
       rake (~> 13.0)
+    logger (1.6.0)
     lograge (0.14.0)
       actionpack (>= 4)
       activesupport (>= 4)
@@ -227,50 +234,50 @@ GEM
       net-smtp
     marcel (1.0.4)
     mini_mime (1.1.5)
-    minitest (5.22.3)
+    minitest (5.24.1)
     msgpack (1.7.2)
     multi_json (1.15.0)
     mustache (1.1.1)
     mutex_m (0.2.0)
     net-http (0.4.1)
       uri
-    net-imap (0.4.10)
+    net-imap (0.4.14)
       date
       net-protocol
     net-pop (0.1.2)
       net-protocol
     net-protocol (0.2.2)
       timeout
-    net-smtp (0.4.0.1)
+    net-smtp (0.5.0)
       net-protocol
-    nio4r (2.7.1)
-    nokogiri (1.16.3-aarch64-linux)
+    nio4r (2.7.3)
+    nokogiri (1.16.6-aarch64-linux)
       racc (~> 1.4)
-    nokogiri (1.16.3-arm64-darwin)
+    nokogiri (1.16.6-arm64-darwin)
       racc (~> 1.4)
-    nokogiri (1.16.3-x86_64-linux)
+    nokogiri (1.16.6-x86_64-linux)
       racc (~> 1.4)
     orm_adapter (0.5.0)
-    pagy (7.0.11)
+    pagy (8.6.2)
     paper_trail (15.1.0)
       activerecord (>= 6.1)
       request_store (~> 1.4)
-    parallel (1.24.0)
-    parser (3.3.0.5)
+    parallel (1.25.1)
+    parser (3.3.3.0)
       ast (~> 2.4.1)
       racc
     path_expander (1.1.1)
     patron (0.13.3)
     pg (1.5.6)
-    prometheus_exporter (2.1.0)
+    prometheus_exporter (2.1.1)
       webrick
     psych (5.1.2)
       stringio
-    public_suffix (5.0.4)
+    public_suffix (6.0.0)
     puma (6.4.2)
       nio4r (~> 2.0)
-    racc (1.7.3)
-    rack (3.0.10)
+    racc (1.8.0)
+    rack (3.1.6)
     rack-cors (2.0.2)
       rack (>= 2.0.0)
     rack-session (2.0.0)
@@ -282,20 +289,20 @@ GEM
     rackup (2.1.0)
       rack (>= 3)
       webrick (~> 1.8)
-    rails (7.1.3.2)
-      actioncable (= 7.1.3.2)
-      actionmailbox (= 7.1.3.2)
-      actionmailer (= 7.1.3.2)
-      actionpack (= 7.1.3.2)
-      actiontext (= 7.1.3.2)
-      actionview (= 7.1.3.2)
-      activejob (= 7.1.3.2)
-      activemodel (= 7.1.3.2)
-      activerecord (= 7.1.3.2)
-      activestorage (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    rails (7.1.3.4)
+      actioncable (= 7.1.3.4)
+      actionmailbox (= 7.1.3.4)
+      actionmailer (= 7.1.3.4)
+      actionpack (= 7.1.3.4)
+      actiontext (= 7.1.3.4)
+      actionview (= 7.1.3.4)
+      activejob (= 7.1.3.4)
+      activemodel (= 7.1.3.4)
+      activerecord (= 7.1.3.4)
+      activestorage (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       bundler (>= 1.15.0)
-      railties (= 7.1.3.2)
+      railties (= 7.1.3.4)
     rails-dom-testing (2.2.0)
       activesupport (>= 5.0.0)
       minitest
@@ -308,33 +315,34 @@ GEM
     rails-html-sanitizer (1.6.0)
       loofah (~> 2.21)
       nokogiri (~> 1.14)
-    railties (7.1.3.2)
-      actionpack (= 7.1.3.2)
-      activesupport (= 7.1.3.2)
+    railties (7.1.3.4)
+      actionpack (= 7.1.3.4)
+      activesupport (= 7.1.3.4)
       irb
       rackup (>= 1.0.0)
       rake (>= 12.2)
       thor (~> 1.0, >= 1.2.2)
       zeitwerk (~> 2.6)
     rainbow (3.1.1)
-    rake (13.1.0)
+    rake (13.2.1)
     rb-fsevent (0.11.2)
-    rb-inotify (0.10.1)
+    rb-inotify (0.11.1)
       ffi (~> 1.0)
-    rdoc (6.6.3.1)
+    rdoc (6.7.0)
       psych (>= 4.0.0)
     redis (4.8.1)
-    redis-client (0.21.1)
+    redis-client (0.22.2)
       connection_pool
-    regexp_parser (2.9.0)
-    reline (0.5.0)
+    regexp_parser (2.9.2)
+    reline (0.5.9)
       io-console (~> 0.5)
-    request_store (1.6.0)
+    request_store (1.7.0)
       rack (>= 1.4)
     responders (3.1.1)
       actionpack (>= 5.2)
       railties (>= 5.2)
-    rexml (3.2.6)
+    rexml (3.3.1)
+      strscan
     rgeo (3.0.1)
     rgeo-activerecord (7.0.1)
       activerecord (>= 5.0)
@@ -345,13 +353,13 @@ GEM
       rspec-mocks (~> 3.13.0)
     rspec-core (3.13.0)
       rspec-support (~> 3.13.0)
-    rspec-expectations (3.13.0)
+    rspec-expectations (3.13.1)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.13.0)
-    rspec-mocks (3.13.0)
+    rspec-mocks (3.13.1)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.13.0)
-    rspec-rails (6.1.2)
+    rspec-rails (6.1.3)
       actionpack (>= 6.1)
       activesupport (>= 6.1)
       railties (>= 6.1)
@@ -359,7 +367,7 @@ GEM
       rspec-expectations (~> 3.13)
       rspec-mocks (~> 3.13)
       rspec-support (~> 3.13)
-    rspec-sidekiq (4.1.0)
+    rspec-sidekiq (5.0.0)
       rspec-core (~> 3.0)
       rspec-expectations (~> 3.0)
       rspec-mocks (~> 3.0)
@@ -369,7 +377,7 @@ GEM
       activesupport (>= 3.0.0)
       mustache (~> 1.0, >= 0.99.4)
       rspec (~> 3.0)
-    rubocop (1.62.1)
+    rubocop (1.64.1)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
@@ -380,8 +388,8 @@ GEM
       rubocop-ast (>= 1.31.1, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.31.2)
-      parser (>= 3.3.0.4)
+    rubocop-ast (1.31.3)
+      parser (>= 3.3.1.0)
     ruby-graphviz (1.2.5)
       rexml
     ruby-progressbar (1.13.0)
@@ -392,11 +400,12 @@ GEM
     sexp_processor (4.17.1)
     shoulda-matchers (6.2.0)
       activesupport (>= 5.2.0)
-    sidekiq (7.2.2)
+    sidekiq (7.3.0)
       concurrent-ruby (< 2)
       connection_pool (>= 2.3.0)
+      logger
       rack (>= 2.2.4)
-      redis-client (>= 0.19.0)
+      redis-client (>= 0.22.2)
     sidekiq-unique-jobs (8.0.10)
       concurrent-ruby (~> 1.0, >= 1.0.5)
       sidekiq (>= 7.0.0, < 8.0.0)
@@ -407,11 +416,12 @@ GEM
       simplecov_json_formatter (~> 0.1)
     simplecov-html (0.12.3)
     simplecov_json_formatter (0.1.4)
-    spring (4.1.3)
+    spring (4.2.1)
     spring-commands-rspec (1.0.4)
       spring (>= 0.9.1)
-    squasher (0.7.3)
-    stringio (3.1.0)
+    squasher (0.8.0)
+    stringio (3.1.1)
+    strscan (3.1.0)
     thor (1.3.1)
     timeout (0.4.1)
     tzinfo (2.0.6)
@@ -427,7 +437,7 @@ GEM
       activemodel (>= 6.0.0)
       bindex (>= 0.4.0)
       railties (>= 6.0.0)
-    webmock (3.23.0)
+    webmock (3.23.1)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -437,7 +447,7 @@ GEM
     websocket-extensions (0.1.5)
     yt (0.33.4)
       activesupport
-    zeitwerk (2.6.13)
+    zeitwerk (2.6.16)
 
 PLATFORMS
   aarch64-linux
@@ -461,6 +471,7 @@ DEPENDENCIES
   database_cleaner
   devise
   elastic-apm
+  elastic-transport
   elasticsearch
   elasticsearch-model
   factory_bot_rails
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant