Commit Graph

2030 Commits

Author SHA1 Message Date
Eryu Guan
7978395083 Use smart pointer to manage pcfstat object
Previously pcfstat points to a raw pointer, and it may be leaked if
function returned before deleting it.

So use smart pointer to automatically release the object.

Note that currently s3fs only uses c++03, so we use auto_ptr here, not
unique_ptr, which requires c++11.

Fixes: 6ca5a24a7f ("Fix two inconsistency issues between stat cache and cache file (#2152)")
Signed-off-by: Eryu Guan <eguan@linux.alibaba.com>
2023-07-19 20:15:55 +09:00
Takeshi Nakatani
d0a944fcaa Fixed data race about fuse_fill_dir_t function and data pointer 2023-07-14 22:32:12 +09:00
Andrew Gaul
537384e9b5
Guard filler calls with filled check (#2215)
Follows on to e650d8c55c.
2023-07-13 22:46:19 +09:00
Andrew Gaul
e650d8c55c
Explicitly handle CommonPrefixes with nocompat_dir (#2212)
Previously the test missed listing implicit directories and another
test was incorrect.  This fixes a regression from 1.91.
2023-07-13 21:15:34 +09:00
Takeshi Nakatani
9663215bb4 Fixed data race at OPENSSL_sk_dup/free in libcurl 2023-07-12 22:51:57 +09:00
Takeshi Nakatani
b2537052ef Fixed data race in threads found thread sanitizer 2023-07-09 20:53:27 +09:00
Eryu Guan
2e51908bec Check FdEntity::Open() status correctly
FdEntity::Open() returns -errno on error, but FdManager::Open() only
checks if its ret is -1. This may lead to use '-errno' as pseudo fd
in next read or write, which would fail due to '-errno' is not in
fent map.

Signed-off-by: Eryu Guan <eguan@linux.alibaba.com>
2023-07-05 08:50:12 +09:00
LiuBingrun
a8edbd8622
fix streamuplod not working (#2204)
fuse_main will do fork to daemonize. if ThreadPool is created before
this, worker thread will not be placed in child process.

Move ThreadPool Init to s3fs_init and destory to s3fs_destory.

Signed-off-by: liubingrun <liubr1@chinatelecom.cn>
2023-07-02 10:56:59 +09:00
Andrew Gaul
06d0852e74
Use JDK 17 for Ubuntu CI (#2200)
Also remove stale 18.04 configuration.
2023-06-26 22:07:04 +09:00
Alex Fishman
03066ea29a
Fix extended attribute support when using FUSE-T (#2201)
* Add support for FUSE-T on macos

Signed-off-by: Alex Fishman <alex@fuse-t.org>
Signed-off-by: alex <alex@alex-NUC10.lan>

* Ignore value pointer when size is zero on setattrx

Signed-off-by: Alex Fishman <alex@fuse-t.org>

---------

Signed-off-by: Alex Fishman <alex@fuse-t.org>
Signed-off-by: alex <alex@alex-NUC10.lan>
2023-06-26 22:05:37 +09:00
Andrew Gaul
e66c9a82a2
Add sanitize_thread to CI (#2199) 2023-06-25 23:13:49 +09:00
Andrew Gaul
e86e6cf24f Add Ubuntu 23.04 and remove 18.04
18.04 is EOL:

https://ubuntu.com/blog/ubuntu-18-04-eol-for-devices

This removes a FUSE 3 blocker.  References #1159.
2023-06-25 22:53:59 +09:00
Andrew Gaul
7e8238abc0
Upgrade to JDK 17 (#2196)
Newer distros package this but some older ones do not.  Also remove
stale Ubuntu 16.04 configuration.
2023-06-25 18:05:38 +09:00
Andrew Gaul
6448c8f1a8
Protect FdEntity::physical_fd with fdent_lock (#2194)
* Protect FdEntity::physical_fd with fdent_lock
Found via ThreadSanitizer.
2023-06-25 16:43:15 +09:00
Andrew Gaul
3b6688253f
Address cppcheck 2.10 warnings (#2163)
Disable newer cppcheck until we can diagnose this further.
References #2162.
2023-06-25 16:04:16 +09:00
Alex Fishman
45e7cd085a Add support for FUSE-T on macos
Signed-off-by: Alex Fishman <alex@fuse-t.org>
Signed-off-by: alex <alex@alex-NUC10.lan>
2023-06-24 22:26:42 +09:00
Takeshi Nakatani
7c9cf84316 Added several memory checks to CI 2023-06-11 10:23:08 -07:00
Takeshi Nakatani
580775b47c Removed unnecessary debug output 2023-06-07 20:48:50 -07:00
Takeshi Nakatani
eab26a1e01 Fixed test setting for macOS 2023-06-07 20:48:34 -07:00
Andrew Gaul
1910856c6c
Remove wait and check loop from mk_test_file (#2175)
This appears to be some kind of eventual consistency check.  This
should have no effect given S3Proxy and recent AWS strong consistency.
Also it is likely ineffective given the other test object creation
operations.
2023-06-07 23:24:31 +09:00
Andrew Gaul
4b3e715291
Always return nanoseconds from get_time helpers (#2174)
This makes Linux and macOS more consistent.
2023-05-30 18:52:55 +09:00
Eryu Guan
6ca5a24a7f
Fix two inconsistency issues between stat cache and cache file (#2152)
* Fix inconsistency between stat cache file and cache file

We unlock stat cache file too early in FdEntity::Open(), and would
truncate cache file and update stat cache file, so there's a window that
stat cache doesn't reflect cache file status.

Suggested-by: Takeshi Nakatani <ggtakec@gmail.com>
Signed-off-by: Eryu Guan <eguan@linux.alibaba.com>

* Mark pagelist as unloaded if cache file has been truncated

If cache file size doesn't match object size, the cache file might be
corrupted, so invalidate it and save new cache stat file.

Suggested-by: Takeshi Nakatani <ggtakec@gmail.com>
Signed-off-by: Eryu Guan <eguan@linux.alibaba.com>

---------

Signed-off-by: Eryu Guan <eguan@linux.alibaba.com>
2023-05-30 18:39:50 +09:00
Takeshi Nakatani
0d6b02090e
Revert "Update curl.cpp: reduce memory cache use (#2157)" (#2170)
This reverts commit 5b487f651a.
2023-05-27 20:33:43 +09:00
Tan Guofu
5b487f651a
Update curl.cpp: reduce memory cache use (#2157)
flush the file and clean the page cache when filepart download done
2023-05-27 19:15:47 +09:00
Andrew Gaul
e7a364d610
Specify _FORTIFY_SOURCE=3 (#2168)
This can find more kinds of buffer overflows:

https://developers.redhat.com/articles/2022/09/17/gccs-new-fortification-level
2023-05-27 17:20:29 +09:00
Andrew Gaul
161be3ff33
Update ChangeLog and configure.ac for 1.92 (#2166) 2023-05-22 08:25:50 +09:00
Takeshi Nakatani
1fc0e52dc3 Fixed mount point stat flag to be thread safe 2023-05-21 13:46:06 +09:00
Andrew Gaul
7bf4ca1837
Add Fedora 38 and remove 36 from CI (#2160) 2023-05-14 13:41:12 +09:00
Andrew Gaul
59c3b26655
Fix clang-tidy 16 nits (#2158) 2023-05-14 01:59:26 +09:00
Takeshi Nakatani
8296fe32cb
Directly and simplify requests in mount point checks (#2155) 2023-05-14 01:29:24 +09:00
Takeshi Nakatani
4a15699669
Disabled to run github action for macos (#2154) 2023-05-08 20:29:20 +09:00
Takeshi Nakatani
24b990d899
Disabled to run github action for macos (#2154) 2023-05-08 20:28:41 +09:00
Takeshi Nakatani
ca9a257eec
Allow mount points without directory objects by compat_dir (#2153) 2023-05-07 09:15:27 +09:00
Takeshi Nakatani
6d4bb59865
Corresponded to upload in case of calling release without flush (#2150) 2023-04-23 22:59:04 +09:00
Ottavia Balducci
9b75abfbe6
New option: bucket_size (#2148)
* Added bucket_size option
2023-04-23 14:04:38 +09:00
Takeshi Nakatani
c4f95f14cb
Fixed a bug about attributes of mount point (#2147) 2023-04-15 14:34:39 +09:00
Takeshi Nakatani
9c74014443
Fixed a bug in handling file names containing CR(0x1D) (#2136) 2023-03-26 13:19:16 +09:00
Takeshi Nakatani
a25cb9e07a
Fixed a bug when reading a reduced file without flushing (#2133) 2023-03-26 11:45:21 +09:00
Takeshi Nakatani
2cd7c94653
Fixed configure.ac by autoupdate (#2134) 2023-03-21 15:10:55 +09:00
Takeshi Nakatani
9648eba5bb
Changed to rename cache files when renaming large files (#2135) 2023-03-21 14:15:34 +09:00
Takeshi Nakatani
18495c44aa
Added cache clearing on upload error (#2127) 2023-03-13 21:22:13 +09:00
Leon
4f22354aae
Fix an error to calculate no data page bytes (#2122)
Co-authored-by: Takeshi Nakatani <ggtakec@gmail.com>
2023-03-11 17:23:56 +09:00
Garen Chan
9d00b8d4a8
Fixed segmentation fault caused by file write failure (#2123) 2023-03-11 16:45:56 +09:00
Takeshi Nakatani
aeacd0a7d3
Updated README.md(feat #2109) (#2115) 2023-03-05 15:03:48 +09:00
Takeshi Nakatani
526700f2de
Updated files for support ALPINE v3.17 (#2116) 2023-03-05 13:30:59 +09:00
Takeshi Nakatani
a25a9450a6
Fixed to fail when the mount point directory is not existed (#2114) 2023-03-05 13:03:48 +09:00
Takeshi Nakatani
f8a825e9b9
multipart upload id is converted by url encode (#2097) 2023-02-18 11:40:25 +09:00
Takeshi Nakatani
dbddd762a9
Fixed token update process using ext-cred library (#2101) 2023-02-18 09:49:05 +09:00
Takeshi Nakatani
e715b77307
Added the function to update mtime/ctime of the parent directory (#2016) 2023-02-12 17:59:40 +09:00
Takeshi Nakatani
d1388ff446 Added proxy and proxy_cred_file option 2023-02-08 21:53:34 +09:00