From a8c571bcca6dd7d962e8a35c0cc383f342e92a52 Mon Sep 17 00:00:00 2001 From: nikhil2611 Date: Wed, 3 Dec 2025 11:33:08 +0530 Subject: [PATCH] fixing code scan alerts in main Signed-off-by: nikhil2611 --- lib/chef-cli/chef_server_api_multi.rb | 5 ++++- spec/unit/chef_server_api_multi_spec.rb | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/chef-cli/chef_server_api_multi.rb b/lib/chef-cli/chef_server_api_multi.rb index 5944c017..e04b749b 100644 --- a/lib/chef-cli/chef_server_api_multi.rb +++ b/lib/chef-cli/chef_server_api_multi.rb @@ -66,7 +66,10 @@ def streaming_request(*args, &block) end def client_for_thread - Thread.current[:chef_server_api_multi] ||= Chef::ServerAPI.new(@url, @opts) + # Use thread_variable_* methods instead of Thread.current[] to avoid + # fiber-local variable issues and provide better thread isolation + Thread.current.thread_variable_get(:chef_server_api_multi) || + Thread.current.thread_variable_set(:chef_server_api_multi, Chef::ServerAPI.new(@url, @opts)) end end diff --git a/spec/unit/chef_server_api_multi_spec.rb b/spec/unit/chef_server_api_multi_spec.rb index 70dcfbfc..96405a04 100644 --- a/spec/unit/chef_server_api_multi_spec.rb +++ b/spec/unit/chef_server_api_multi_spec.rb @@ -44,7 +44,7 @@ before do # clean out thread local storage or else `chef_server_api` instance double # will get re-used across test examples and rspec will complain: - Thread.current[:chef_server_api_multi] = nil + Thread.current.thread_variable_set(:chef_server_api_multi, nil) allow(Chef::ServerAPI).to receive(:new).with(url, expected_server_api_opts).and_return(chef_server_api) end @@ -57,8 +57,8 @@ end it "creates a thread-local Chef::ServerAPI object for requests" do - server_api_multi.client_for_thread # force `||=` to run - expect(server_api_multi.client_for_thread).to eq(Thread.current[:chef_server_api_multi]) + server_api_multi.client_for_thread # force lazy initialization to run + expect(server_api_multi.client_for_thread).to eq(Thread.current.thread_variable_get(:chef_server_api_multi)) end describe "when keepalives are disabled" do