[PR #2608] [MERGED] Added new class for curl share handle #2665

Closed
opened 2026-03-04 02:06:40 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/s3fs-fuse/s3fs-fuse/pull/2608
Author: @ggtakec
Created: 11/10/2024
Status: Merged
Merged: 11/27/2024
Merged by: @gaul

Base: masterHead: multi/8_curl_in_worker


📝 Commits (1)

  • 8f0c861 Added new class for curl share handle

📊 Changes

13 files changed (+419 additions, -181 deletions)

View changed files

📝 .github/workflows/ci.yml (+2 -2)
📝 src/Makefile.am (+1 -0)
📝 src/curl.cpp (+4 -118)
📝 src/curl.h (+0 -9)
src/curl_share.cpp (+239 -0)
src/curl_share.h (+89 -0)
📝 src/s3fs.cpp (+3 -2)
📝 src/s3fs_threadreqs.cpp (+45 -31)
📝 src/s3fs_threadreqs.h (+14 -14)
📝 src/threadpoolman.cpp (+18 -2)
📝 src/threadpoolman.h (+3 -1)
📝 test/run_tests_using_sanitizers.sh (+1 -1)
test/threadsanitizer_suppressions.txt (+0 -1)

📄 Description

Relevant Issue (if applicable)

#2600

Details

This is the split PR Phase 8 (8/8) for #2600.

Added the S3fsCurlShare class which manages Curl Share handles.
This class manages Curl Share Handle for each Thread.

The retention(creation and management) of S3fsCurl objects has been moved to ThreadPoolMan's worker thread management function.
As a result, the Handler(Callback) for each request does not retain the S3fsCurl object, but receives it as a parameter.

As a result, the Data Race issue has been resolved by managing the Curl Share Handle on a per-thread basis.
This re-enables CURL_LOCK_DATA_SSL_SESSION, which was disabled in #2601.
Last, I removed the threadsanitizer_suppressions.txt file that ignores DataRace, which was added in #2559, and reverted it.

This PR will be rebased and removed from draft status once the previous PR(#2607) is merged into master.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/s3fs-fuse/s3fs-fuse/pull/2608 **Author:** [@ggtakec](https://github.com/ggtakec) **Created:** 11/10/2024 **Status:** ✅ Merged **Merged:** 11/27/2024 **Merged by:** [@gaul](https://github.com/gaul) **Base:** `master` ← **Head:** `multi/8_curl_in_worker` --- ### 📝 Commits (1) - [`8f0c861`](https://github.com/s3fs-fuse/s3fs-fuse/commit/8f0c861580433c5e3ab8ca9286152279bbdb121a) Added new class for curl share handle ### 📊 Changes **13 files changed** (+419 additions, -181 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/ci.yml` (+2 -2) 📝 `src/Makefile.am` (+1 -0) 📝 `src/curl.cpp` (+4 -118) 📝 `src/curl.h` (+0 -9) ➕ `src/curl_share.cpp` (+239 -0) ➕ `src/curl_share.h` (+89 -0) 📝 `src/s3fs.cpp` (+3 -2) 📝 `src/s3fs_threadreqs.cpp` (+45 -31) 📝 `src/s3fs_threadreqs.h` (+14 -14) 📝 `src/threadpoolman.cpp` (+18 -2) 📝 `src/threadpoolman.h` (+3 -1) 📝 `test/run_tests_using_sanitizers.sh` (+1 -1) ➖ `test/threadsanitizer_suppressions.txt` (+0 -1) </details> ### 📄 Description ### Relevant Issue (if applicable) #2600 ### Details This is the split PR Phase 8 (8/8) for #2600. Added the `S3fsCurlShare` class which manages Curl Share handles. This class manages Curl Share Handle for each Thread. The retention(creation and management) of `S3fsCurl` objects has been moved to `ThreadPoolMan`'s worker thread management function. As a result, the Handler(Callback) for each request does not retain the `S3fsCurl` object, but receives it as a parameter. As a result, the Data Race issue has been resolved by managing the Curl Share Handle on a per-thread basis. This re-enables `CURL_LOCK_DATA_SSL_SESSION`, which was disabled in #2601. Last, I removed the threadsanitizer_suppressions.txt file that ignores DataRace, which was added in #2559, and reverted it. This PR will be rebased and removed from draft status once the previous PR(#2607) is merged into master. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-04 02:06:40 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#2665
No description provided.