Skip to content

Ensure libcurl is initialized for macOS before fork

Stan Hu requested to merge sh-revert-spring-typhoeus-workaround into master

What does this MR do and why?

The elasticsearch-transport gem can make use of typheous, which uses the ethon gem to make HTTP calls via libcurl.

In !122412 (merged), we fixed Spring not working on macOS for Elasticsearch by disabling the use of typheous gem in favor of the pure Ruby Net::HTTP implementation.

However, since doesn't test the same HTTP client used in production, it's not an ideal solution. This commit reverts b0a9fcac so that we test with typheous.

https://github.com/curl/curl/pull/11254 fixed the upstream issue by moving the macOS native call of SCDynamicStoreCopyProxies to the global init function. This has been released in libcurl v8.2.0, which Homebrew has been shipping since July 2023.

Now that libcurl should be updated on macOS platforms, we can initialize libcurl via Ethon::Curl.init so that Spring continues to work.

How to set up and validate locally

Run:

bundle exec spring rspec ee/spec/services/search/index_repair_service_spec.rb
Edited by Stan Hu

Merge request reports