#1079
Pod deletion will cause global mount point to disappear. The root cause is csi driver will bind mount the global mount point into Pod volume immediately after blobfuse2 mount return successfully. However, fuse is still mounting at background, so actually bind mount and fuse mount happened at the same time, this will lead to a problem that unmount the bind mount (when deleting a Pod) will cause the original mount point unmounted as well.
#1081
Mount is actually failed, but the errno returned by blobfuse2 is 0 and no error log (both terminal and log file).
* parsing os args
* Removing auto completion
* Update changelog
* Add more flags to ignore
* Small change'
* coverage edit
* Removing dead code
* Add test cases for parse and validate config
* Init logger for UT on config
* Correctly define const slice for fuse ignored flags
* Adding unmount test cases
* Add comments as per review comments
* Correcting unmount tests
* Add logs if mkdir fails
* spell correction in comments
* Run all unmount tests serially with different mount points
* correcting unmount test cases
* Making unmount test parallel
* Adding handle map test cases
Co-authored-by: vibhansa-msft <vibhansa@microsoft.com>
* Adding Ubn-22 to pipelines
* Adding lint as standard ci step
* correcting lint command path
* Add copyright checks to ci pipeline
* Copyright fixes and ci check for copyright statements
* Adding go format check to CI
* Fixing some lint issues
* More lint fixes
* More lint fixes
* Fixing some lint issues
* Correcting code linting check in ci
* correcting lint status check
* correcting lint status check
* correcting lint status check
* correcting lint status check
* correcting lint status check
* correcting lint status check
* correcting lint status check
* correcting bugs reported by sa check
* notices_fix.sh update
* Add step to validate NOTICE file
* Add step to release for ubn-22
* Add logs for success
* Fixing copyright bug
* Correcting tag formats
* Correcting percentage check
* Spell error correction
* Ignore exectime from code coverage
* Correcting log string
* Removing dead file
* Correcting go format error
* Adding more fuse options for optimization
* Correcting logs for fuse3
* Removing nullpath feature as fuse3 does not support it
* Remove symlink cache as fuse3 does not support that
* Convert expected err log to warn
* Removing dead code
* Try file read using native C api
* Try early pread to improve perf
* Adding dynamic profiler and disable native pread call
* Log error when profiler fails to start
* Try prefetching data into memory for disk-file
* Make dynamic profiler available in both foreground and daemon mode
* Move read/write call to native calls
* Add call to update the file-cache when native read/writes are invoked
* Remove cache updating call for better perf
* Remove readahead logic from file-cache
* Clear handle map dead code
* convert fd to uint64 instead of int
* Adding basic infra for read ahead in native code
* Clean up code, remove read-ahead logic and make direct read the default option
* Correcting the flag name for offload-io
* Correcting spell mistakes and adding comments
* Correcting fsync test failure
* Correct fuse3 UT for fsync and handle conversion
* Resolve compilation failure for filehandle struct
* Add logic to update the cache on every 1K operations on a handle
* Resolve failure with flush when native write is enable
* Add read-ahead logic in native code
* Compilation failure resolution on fuse2
* Correcting memset params
* Correcting spell error
* Add GOGC and MAXPROCS value for perf tuning
* Reduce min file size and correct read ahead buffer size for smaller fiels
* Replace fsync with close of duplciate handle
* Correcting write flow file corruption issue
* Handle write in file-cache instead of libfuse as the other approach is corrupting data somewhere
* File-cache to refresh cache on eveyr 1K operations and data validation test to wait for 2 seconds after copy
* Replace file-cache read/write calls with syscalls
* Enable native read/write again with read ahead disabled
* Remove cache update from read calls
* Remove read ahead logic completly
* Cleanup libfuse compo and e2e test changes
* Delete emptry directories recursively till root
* Changes as per review comments
* Fix issue with block-size running into overflow of number of blocks
* Add blocksize and file size to logs
* Make blocksize function to work on file size instead of fi object and add UT for blocksize calculations
* Adding more ut case
* Add some breather between upload and test
* FileCacheTimeout test case to wait untill file is deleted from local system
* FileCacheTimeout test case to wait untill file is deleted from local system
* Codespell error fix
* Restructuring code as per review comments and internal discussions
* Code spell fixes
* Stop updating cache on read
* Adjusting cache update operation counter
* Correcting libfuse_read flow and adding option to enable offload option manually
* Correcting file_cache UT configs
* Adding dynamic profiler config in base config
* Allow blobfuse2 to mount without config file, in case all required params are set as env variables
* Updating readme for perf comparison with v1
* Removing test code
* Changes as per review comments
* Corrected perf numbers in readme
* chmod shall result into SetAccessControl call with permissions and not ACL to preserve the existing principals added to the file
* Adding loopbackfs config to base config
* Fixed bug where some user provided values that can be set to 0 were set to default value
* Addressed comments
* Fixed unit test for file cache empty config
* Allow for cli params to be set to 0
* Fixed defaults and merged isSet
* Added test
Co-authored-by: Gauri Prasad <gapra@microsoft.com>
* First commit of blobfuse v2 code
* Adding hadle optimization for v2
* Making direct read a configurable option, disabled by default
* Rearrange structures to reduce padding and save memory
* Correcting attr-cache UT for flag changes
* Merging file-cache-test
* Make flag check a function
* Adding comments to handle methods
* Adding more fuse options for optimization
* Adding more fuse options for optimization
* Removing exectime from red flows
* Correcting profiling code to work for both cpu and memory
* Cleanup old pprof reports
* Adding error log for policy local file removal case and adding 10mil max file limit in attr-cache
* Correcting file-cache UT for notInCache cases
* Correcting libfuse UT to get handle object out of open return parameters
* Addressing review comments
* Removing 7.5 old curl from nightly as it does not make sense for v2 to test different curl versions
* Tuning fuse parameters for better perf
* Fuse parameter tuning
* Removing some fuse options as mount is failing on some platforms
* Exit pipeline stage if mount failed
* Populate fuse connection flag based on kernel capabilities
* Log kernel fuse capabilities and the one chosen by blobfuse on given platform
* Fail pipeline if blobfuse2 binary is not found in df output
* Wait for some time for mount to go through before validating
* Correcting validation of mount point
* Correcting validation of mount point
* Use fuse2 on Deb-10 as with fuse3 we are not able to mount on that distro
* Update mount validation for huge listing
* Image signing to happen only when release option is chosen
Co-authored-by: Gauri Prasad <gapra@microsoft.com>
Co-authored-by: Ubuntu <vibhansa@vibhansa-perftest.l1vcg1e4u55e3gwz1dsfkxy2if.tx.internal.cloudapp.net>