Commit Graph

2287 Commits

Author SHA1 Message Date
Takeshi Nakatani
61abf80197 Organized multi-threading related options 2024-11-29 05:13:06 +09:00
Takeshi Nakatani
956e8c5750 Added new class for curl share handle
Added new class for curl share handle.
And, paired the curl handle(S3fsCurl) with the worker thread.
Changed that each thread has its own SSL session cache to prevent data
races.
So OpenSSL suppression for ThreadSanitizer is no longer necessary, so
reverted it.
2024-11-28 03:40:40 +09:00
Takeshi Nakatani
bfc3ea767a Removed last use of S3fsMultiCurl and changed those thread handling 2024-11-26 10:47:03 +09:00
Takeshi Nakatani
499577c2a9 Refactored for standardizing content and copy handling for Multipart Upload 2024-11-25 05:48:38 +09:00
Andrew Gaul
143284b2f3
Upgrade to S3Proxy 2.4.1 (#2433)
This transitions to the transient-nio2 storage backend which should
address a race condition with getBlob and be easier to work with in
the future.  Release notes:

https://github.com/gaul/s3proxy/releases/tag/s3proxy-2.4.1
https://github.com/gaul/s3proxy/releases/tag/s3proxy-2.4.0
https://github.com/gaul/s3proxy/releases/tag/s3proxy-2.3.0
https://github.com/gaul/s3proxy/releases/tag/s3proxy-2.2.0
https://github.com/gaul/s3proxy/releases/tag/s3proxy-2.1.0
2024-11-24 22:27:24 +09:00
Takeshi Nakatani
7410b95db2 Refactored parallel get object request 2024-11-23 02:22:27 +09:00
Takeshi Nakatani
86b5c9d88e Refactored multipart put head request 2024-11-16 09:35:23 +09:00
Takeshi Nakatani
a1e47bc287 Changed multiple Head requests from S3fsMultiCurl to ThreadPoolMan 2024-11-14 07:41:03 +09:00
Takeshi Nakatani
efc23316e9 Refactored single type requests to use through ThreadPoolMan 2024-11-12 09:08:14 +09:00
Takeshi Nakatani
a680d3e138 Removed CurlHandlerPool and simplified it
Removed CurlHandlerPool and simplified it.
And against data race in OpenSSL, temporarily changed to not use Sessin cache.
2024-11-12 07:33:04 +09:00
Andrew Gaul
cc29bea81b
Call std::get_time instead of strptime (#2598)
This reduces the Windows-specific code.
2024-11-09 19:28:40 +09:00
Andrew Gaul
af0d7ba45e
Ensure fdent_data_lock is acquired after fdent_lock (#2595) 2024-11-09 19:28:13 +09:00
Takeshi Nakatani
17d0970244 Changed the macOS Github Actions runner image to macos-13
Changed the macos Github Actions runner image to macos-13, and
avoided extended attribute error when copying with macos-fuse-t.
2024-11-07 16:51:53 +09:00
Andrew Gaul
45b32046cd
Consolidate lower and upper logic (#2594) 2024-11-06 00:07:12 +09:00
Andrew Gaul
a101b88114
Compare case-insensitively instead of copying (#2593)
Also remove some code duplication.
2024-11-06 00:05:05 +09:00
Andrew Gaul
d9ccdc4fce
Look up header values directly (#2592)
stat_cache_entry::meta uses a case-insensitive comparator so there is
no need to loop over each entry to compare each key with lowercase.
2024-11-05 07:16:19 +09:00
Andrew Gaul
7a989a58a0
Remove expensive log message during s3fs_getxattr (#2590) 2024-11-05 00:00:58 +09:00
Andrew Gaul
82f694e473
Avoid unneeded std::string copies (#2589) 2024-11-04 23:59:54 +09:00
Andrew Gaul
9a155c81a7
Enable clang-analyzer (#2588)
Also fix a few smaller issues.
2024-11-04 23:58:43 +09:00
Takeshi Nakatani
9b888fa9b3 Fixed readdir bug with objects receiving EPERM on HEAD request 2024-11-04 15:25:12 +09:00
Takeshi Nakatani
ef6c213471 Bypassed test_extended_attributes test on MacOS 2024-11-03 08:56:48 +09:00
Andrew Gaul
90ea57b99b
Add Fedora 41 and remove Fedora 39 from CI (#2580) 2024-11-02 23:55:43 +09:00
Andrew Gaul
330cb39daf
Remove CentOS 7 from CI (#2579)
CentOS 7 is EOL and thus unsupported.  This reverts commit
44d5b5e1c9.
2024-10-29 18:23:36 +09:00
Andrew Gaul
b87a8400e3
Use pass-by-value for peeloff (#2578)
This avoids copies when used with std::move.
2024-10-29 18:21:07 +09:00
Andrew Gaul
3b226ed672
Make psemaphore similar to C++20 std::counting_semaphore (#2569) 2024-10-29 08:23:05 +09:00
Andrew Gaul
07881195f2
Add missing mutex header (#2576)
Found via clang-tidy.
2024-10-29 00:11:28 +09:00
Andrew Gaul
08a5d35f34
Add Ubuntu 24.10 to CI (#2575) 2024-10-29 00:10:44 +09:00
Andrew Gaul
561ce1e206 Update ChangeLog and configure.ac for 1.95
Fixes #2496.
2024-10-25 10:42:53 -07:00
Andrew Gaul
7cb46db945
Add missing string header (#2574)
Found via clang-tidy.
2024-10-25 16:13:57 +09:00
Andrew Gaul
fe82477a6b
Add missing utility header for std::move (#2572)
Found via clang-tidy.
2024-10-25 14:55:01 +09:00
Takeshi Nakatani
b8e56a40b2 Fixed a bug in clearing the queue accumulated during USR1 processing 2024-10-25 14:47:15 +09:00
Andrew Gaul
3ff93d7342
Simplify bucket_block_count initialization (#2571) 2024-10-25 08:37:48 +09:00
Andrew Gaul
e43de21e43
Separate clang-tidy into its own CI task (#2567)
clang-tidy takes 4 minutes on my laptop compared to ALL_TESTS=1 which
takes 8 minutes.  Using a separate tasks avoids duplicating clang-tidy
and unnecessarily slowing CI run-time.
2024-10-24 08:25:30 +09:00
Andrew Gaul
31061416bc
Separate serialization and deserialization code (#2566)
This is clearer than a bool parameter.
2024-10-24 08:22:35 +09:00
Andrew Gaul
a8af6cb3b4
Run clang-tidy against test files (#2568) 2024-10-23 20:46:01 +09:00
Andrew Gaul
fe0a62118d
Remove some unused parameters (#2565) 2024-10-22 20:34:22 +09:00
Andrew Gaul
cc5271ef2b
Enable clang-tidy narrowing conversions (#2564) 2024-10-22 19:55:10 +09:00
Andrew Gaul
d35b5a8905
Add OpenSSL suppression for ThreadSanitizer (#2559) 2024-10-22 19:52:27 +09:00
Andrew Gaul
64c96e89c5
Expand use of auto (#2563)
Found via clang-tidy.
2024-10-22 19:43:12 +09:00
Andrew Gaul
9c4fcbd050
Use std::max instead of conditional (#2562)
Found via clang-tidy.
2024-10-22 19:22:39 +09:00
Andrew Gaul
b34e2711a7
Fixed warnings on integer comparisons (#2558)
Follows on to 2d1409a672.
2024-10-22 18:53:37 +09:00
Andrew Gaul
14f07626e0
Wrap EVP_MD_CTX in a std::unique_ptr (#2557) 2024-10-20 16:07:53 +09:00
Andrew Gaul
8c5ac5c2d9
Remove more raw pointers (#2556)
Make destructor public so std::unique_ptr can call it.  Also restrict
singleton creation to satisfy cppcheck.
2024-10-20 16:06:05 +09:00
Andrew Gaul
4b6e53223b
Use std::shared_ptr to refer to FdEntity (#2541)
FdEntity may have multiple references due to ChangeEntityToTempPath.
This relies on the std::enable_shared_from_this helper to create a
std::shared_ptr from this.  Fixes #2532.
2024-10-20 14:56:29 +09:00
Andrew Gaul
a505cebf9b
Expand use of std::unique_ptr for FILE* (#2555) 2024-10-18 22:06:47 +09:00
Andrew Gaul
141d74f187
Use auto for iterator variable types (#2554)
This touches a few other long type names.  Applied via clang-tidy
-fix.
2024-10-18 21:57:52 +09:00
Andrew Gaul
4c5b7595b4
Add missing GUARDED_BY to fdcache_entity (#2549)
This requires a fake GetMutex for the lock checker to understand the
control flow.  Also remove unneeded locking comments that annotation
supersede.  Follows on to #2491.
2024-10-18 00:39:45 +09:00
Andrew Gaul
e613ae55bb
Replace curl_warnings_lock with std::atomic (#2550)
This is simpler and lighter-weight.
2024-10-18 00:36:36 +09:00
Andrew Gaul
5594106351
Add miscellaneous locking annotations (#2551) 2024-10-18 00:34:57 +09:00
Andrew Gaul
c5031a5a97
Simplify some method parameters (#2553)
Add const where possible and avoid unnecessary reference parameters.
2024-10-18 00:05:42 +09:00