Commit Graph

1340 Commits

Author SHA1 Message Date
Andrew Gaul
ecf13a8cb9 Break FdEntity locks into data and metadata
Previously long-running data operations like RowFlush would block
metadata operations like GetStats and thus user readdir.  Fixes #928.
2019-07-05 23:12:24 -07:00
Andrew Gaul
b8ff6a647e Add simple XML parsing wrapper
Also simplify check_region_error.
2019-07-05 17:39:09 -07:00
Andrew Gaul
49110c671d Avoid shadowing variable in FdEntity::Open
Found via cppcheck 1.88.
2019-07-05 15:06:18 -07:00
Andrew Gaul
febaf6849f Issue multipart when object size exceeds part size
Previously s3fs issued multipart uploads when the object size was
twice the part size.  Conjoining this with the part size was confusing
and s3fs should add a separate tunable for this if needed, similar to
singlepart_copy_limit.  Fixes #1058.
2019-07-05 12:14:56 -07:00
Andrew Gaul
4893174652 Annotate OpenSSL locking functions as unused
OpenSSL 1.1.0 removed these and generates warnings with newer
versions.
2019-07-05 10:45:57 -07:00
Andrew Gaul
5820c72092 Compile with FORTIFY_SOURCE
This can catch some classes of buffer overflows.
2019-07-04 10:20:26 -07:00
Andrew Gaul
4f23f38583 Individually test multiple s3fs flags
Remove unneeded comments; single part limits ensure that the tests
exercise multipart code paths even with smaller files.
References #971.
2019-07-03 21:09:40 -07:00
Andrew Gaul
bbfa91141a Configure clang-tidy target
Also fix nits.
2019-07-03 14:04:11 -07:00
Andrew Gaul
f439c6382f Upgrade to S3Proxy 1.6.2
Notably this includes support for List Objects v2 which AWS CLI uses.
Release notes:

https://github.com/gaul/s3proxy/releases/tag/s3proxy-1.6.2
2019-07-03 10:37:26 -07:00
Takeshi Nakatani
21321a9d96
Merge pull request #1065 from gaul/doc/ssl-verify-hostname
Document ssl_verify_hostname
2019-07-03 22:15:33 +09:00
Takeshi Nakatani
f03b50fd13
Merge pull request #1063 from gaul/truncate-2nd-open-fd
Flush file when opening second fd
2019-07-03 21:14:03 +09:00
Takeshi Nakatani
15a870f9d9
Merge pull request #1061 from gaul/fdpagelist/value
Make fdpage a value type in fdpage_list_t
2019-07-03 21:04:16 +09:00
Andrew Gaul
9472ee4a01 Prohibit pipeline failures 2019-07-03 02:57:40 -07:00
Andrew Gaul
1f1f824da7 Use system sed on macOS
This requires fewer developer customizations to work on macOS.
Requires some GNU workarounds.
2019-07-02 22:17:02 -07:00
Andrew Gaul
f02105c346 Document ssl_verify_hostname
References #1064.
2019-07-02 10:26:29 -07:00
Andrew Gaul
c596441f58 Flush file when opening second fd
Previously when s3fs had dirty local data and an application opened a
second fd it would remove the stat cache entry, query S3 for the size
which was still zero, then reinitialize FdEntry with this incorrect
size.  Instead flush local data to S3 so this query works.  It is
possible that a more involved patch could do this with a less
heavyweight approach but this requires changing open.  This does not
completely fix git clone but allows it to proceed further.  Also make
some cache methods const-correct.  References #839.
2019-07-02 01:12:09 -07:00
Andrew Gaul
455e29cbea Make fdpage a value type in fdpage_list_t
This simplifies memory management.
2019-07-01 09:30:48 -07:00
Takeshi Nakatani
511d223468
Merge pull request #1059 from gaul/casting
Fix casting warning on 32-bit
2019-07-01 22:26:14 +09:00
Takeshi Nakatani
5324c1b588
Merge pull request #1055 from gaul/test/litter
Remove litter from test_concurrency
2019-07-01 22:10:57 +09:00
Takeshi Nakatani
554ea49294
Merge pull request #1051 from gaul/log/flags
Log flags as hexadecimal
2019-07-01 21:36:17 +09:00
Andrew Gaul
d7f77a6282 Fix casting warning on 32-bit 2019-06-29 20:57:42 -07:00
Andrew Gaul
048aea1151 Remove litter from test_concurrency 2019-06-26 20:29:27 -07:00
Andrew Gaul
f1ad626b46 Log flags as hexadecimal 2019-06-24 16:13:07 -07:00
Takeshi Nakatani
a78d8d1da4
Merge pull request #1049 from gaul/external-modication
Remove cache file when object time differs
2019-06-24 00:51:54 +09:00
Takeshi Nakatani
fbebc6fa57
Merge pull request #1048 from gaul/log/curl
Emit older curl warnings only once
2019-06-24 00:42:44 +09:00
Takeshi Nakatani
c18fc901c4
Merge pull request #1045 from gaul/test/umount-s3fs
Correct macOS integration test umount
2019-06-23 23:02:46 +09:00
Takeshi Nakatani
245f14c8c1
Merge pull request #1041 from gaul/doc/typo
Fix singlepart_copy_limit default
2019-06-23 22:57:43 +09:00
Takeshi Nakatani
d732eef776
Merge pull request #1039 from gaul/off_t
Convert file offsets from size_t to off_t
2019-06-23 22:51:04 +09:00
Takeshi Nakatani
56b184fd0c
Merge pull request #1032 from gaul/man/env
Add environment variables to man page
2019-06-23 22:42:39 +09:00
Andrew Gaul
9e5eaad79b Remove cache file when object time differs
Check the modification times to determine whether an object has
updated.  This relies on low clock skew between s3fs and the S3
server; a more robust approach could use the ETag.  Fixes #1047.
2019-06-22 19:09:00 -07:00
Andrew Gaul
738eaadcbf Emit older curl warnings only once
This makes Travis logs actually readable.
2019-06-22 10:01:20 -07:00
Andrew Gaul
1cf3d2452e Correct macOS integration test umount
Previously errexit could prevent this from succeeding.
2019-06-19 11:01:32 -07:00
Takeshi Nakatani
670dce6f4a
Merge pull request #1036 from gaul/travis/macos
Do not update Homebrew in macOS builder
2019-06-18 22:24:36 +09:00
Andrew Gaul
07cfdcf205 Fix singlepart_copy_limit default
Follows on to c5ebf5d328.
2019-06-15 17:38:14 -07:00
Andrew Gaul
15b7450713 Convert file offsets from size_t to off_t
The latter is 64-bits on 32-bit platforms when specifying
-D_FILE_OFFSET_BITS=64.  This allows early Raspberry Pis to use files
larger than 2 GB.  It also cleans up some ugly casting.  Fixes #620.
Fixes #656.
2019-06-15 17:05:37 -07:00
Andrew Gaul
272e0d3d46 Do not update Homebrew in macOS builder
This takes 5 minutes to run and can cause Travis timeouts.
References #1035.
2019-06-12 18:17:56 -07:00
Andrew Gaul
8d8a2a66e5 Add environment variables to man page
Also fix typo in AWS credentials.
2019-05-15 18:49:18 +07:00
Takeshi Nakatani
befc2e9e6f
Merge pull request #1025 from gaul/nocopyapi
Update ctime during nocopyapi operations
2019-05-02 17:55:42 +09:00
Andrew Gaul
059ab1f0f4 Update ctime during nocopyapi operations
Follows on to 2c43b1e12b.  Fixes #971.
2019-04-30 18:59:51 +09:00
Takeshi Nakatani
f2fe1738cd
Merge pull request #1021 from michallula/master
fix issue with aws session token provided inside ~/.aws/credentials file
2019-04-28 11:03:48 +09:00
Michal Lula
0d4847596e fix issue with aws session token provided inside ~/.aws/credentials file 2019-04-25 14:29:35 +02:00
Takeshi Nakatani
8e86ef1634
Merge pull request #1015 from gaul/c++03
Remove uses of std::map::at
2019-04-22 23:01:29 +09:00
Takeshi Nakatani
a32a05962e
Merge pull request #1014 from gaul/macro
Prefer simple over compound statements in macros
2019-04-22 22:49:23 +09:00
Takeshi Nakatani
a7e81fda9b
Merge pull request #1012 from gaul/doc/markdown
Address markdownlint warnings
2019-04-22 22:39:55 +09:00
Andrew Gaul
9e4f9d4bdc Remove uses of std::map::at
This provides compatibility with C++03 and removes duplicate lookups.
2019-04-18 16:06:59 +09:00
Andrew Gaul
0677a096a9 Prefer simple over compound statements in macros
This prohibits missing semicolons.
2019-04-17 21:46:24 +09:00
Andrew Gaul
381835e2a9
Merge pull request #1008 from michallula/master
AWS session token support
2019-04-17 17:52:08 +09:00
Andrew Gaul
af070fa3de Address markdownlint warnings 2019-04-17 08:09:31 +09:00
Michal Lula
f9cd43b684 add session token support 2019-04-16 16:53:05 +02:00
Takeshi Nakatani
7095787f1f
Merge pull request #1011 from gaul/doc/man
Make man page and --help more consistent
2019-04-16 23:07:17 +09:00