Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1333 commits
Select commit Hold shift + click to select a range
c6c0c7c
fix: Update logging to improve debugging (#4276)
Tulsishah Jan 16, 2026
7241161
feat(dir-metadata-prefetch): implementation for async metadata prefe…
ashmeenkaur Jan 16, 2026
1882c07
feat(kernel-settings): Add gke kernel config contract and kernel para…
meet2mky Jan 16, 2026
913b9f3
fix: Ensure optimizations honor user-defined values in configuration …
vipnydav Jan 16, 2026
dc83718
Move tracer inside otel tracer trace handle struct (#4279)
thrivikram-karur-g Jan 16, 2026
f651644
refactor(dir-metadata-prefetch): move prefetch logic to a new struct …
ashmeenkaur Jan 16, 2026
1658a29
feat(simple reader): Updating MRDInstance when minObject is updated i…
abhishek10004 Jan 16, 2026
b58443a
chore(go sdk upgrade): Upgrading go sdk to v1.59.1 (#4263)
abhishek10004 Jan 16, 2026
a5460e3
chore(deps): bump pyasn1
dependabot[bot] Jan 16, 2026
786bf99
chore(deps): bump pyasn1 in /perfmetrics/scripts/micro_benchmarks
dependabot[bot] Jan 16, 2026
52e72b7
chore(deps): bump pyasn1 in /perfmetrics/scripts/testing_on_gke/examples
dependabot[bot] Jan 16, 2026
231644e
build: Dependabot prs (#4275)
Tulsishah Jan 17, 2026
8300c6d
feat(simple_reader): changing the default value for max-background (#…
raj-prince Jan 18, 2026
2109536
feat(kernel-settings): Use new utility for applying kernel settings i…
meet2mky Jan 18, 2026
2795db1
fix(caching): Invalidate metadata cache on NotFound in NewMultiRangeD…
vipnydav Jan 18, 2026
3f9ef8d
feat(Type Cache Deprecation): Delete implicit dirs (#4249)
Tulsishah Jan 19, 2026
c4572d4
fix: Add stall timeout for direct path connectivity (#4278)
Tulsishah Jan 19, 2026
b7c752e
feat(simple_reader): optimize sequential read throughput of medium si…
raj-prince Jan 19, 2026
28a4122
feat(dir-metadata-prefetch): add hidden configs for metadata prefetch…
ashmeenkaur Jan 19, 2026
f1e053e
fix(gcsx): handle clobbered error during MRD creation (#4289)
vipnydav Jan 19, 2026
8921fd8
make max-read-ahead-kb public (#4295)
meet2mky Jan 19, 2026
161f329
refactor: make flagset in test_config.yaml comma separated [GKE-GCSFu…
PranjalC100 Jan 20, 2026
49c632c
fix: network unreachable error (#4247)
Tulsishah Jan 20, 2026
0cb531b
add logic to limit prefetch workers (#4293)
ashmeenkaur Jan 20, 2026
d4f7d75
feat(dir-metadata-prefetch): Add TTL-based guard and cache size check…
ashmeenkaur Jan 21, 2026
4625a6a
fix(test): Disable grpc metrics to avoid otel plugin error log in int…
thrivikram-karur-g Jan 21, 2026
99721c4
refactor: monitoring test package migration [GKE-GCSFuse Test migrati…
PranjalC100 Jan 21, 2026
8a3efac
docs(Unsupported Path Support): Update documentation (#4304)
Tulsishah Jan 21, 2026
2b0f2aa
nits (#4306)
Tulsishah Jan 21, 2026
9893caf
revert("revert(grpc-metrics)): "Enable metrics using cloud-exporter""…
PranjalC100 Jan 21, 2026
0a3fe5e
Remove ReadHandle attribute from the gcs/reader_count metric. (#4305)
kislaykishore Jan 21, 2026
ee48c3c
Fix panic in read cache validation when chunks are empty (#4300)
vipnydav Jan 21, 2026
fe2c161
fix(simple reader): Ensuring MRDPool is not recreated if it doesn't e…
abhishek10004 Jan 22, 2026
fffb94b
feat(simple reader): Updating the retry logic in simple reader (#4307)
abhishek10004 Jan 22, 2026
0900c10
feat(dir-metadata-prefetch): Log max results and start offset in list…
ashmeenkaur Jan 23, 2026
da5cbc5
test(tests): Enable kernel reader for e2e tests and disable where nee…
vipnydav Jan 23, 2026
b8b3731
keep max-read-ahead-kb flag hidden in GCSFuse (#4311)
meet2mky Jan 23, 2026
93da22d
feat(dir-metadata-prefetch): add e2e tests for metadata prefetch and …
ashmeenkaur Jan 23, 2026
77b0006
test(simple reader): Adding additional UTs in kernel reader path (#4313)
abhishek10004 Jan 26, 2026
44e7ca3
refactor: remove redundant IsValueSet interface (#4291)
vipnydav Jan 27, 2026
f85fda4
Update gcs/read_bytes_count for simple reader (#4320)
vipnydav Jan 27, 2026
2e3b072
fix managed folder tests (#4322)
Tulsishah Jan 27, 2026
0e281bf
fix(kernel-reader): graceful closure of mrd-pool to fix cancel-contex…
raj-prince Jan 27, 2026
fe3e5a6
feat(kernel-reader): setting default value for inactive-mrd-cache siz…
raj-prince Jan 27, 2026
f4d11fa
test(metrics): Add validation tests for GCS metrics (#4160)
alleaditya Jan 27, 2026
f7b3616
refactor(tracing): Move propagate context method to traceHandle (#4319)
thrivikram-karur-g Jan 27, 2026
03c326e
test(monitoring): add integration tests for kernel reader metrics (#4…
vipnydav Jan 27, 2026
1bfbf2b
feat(kernel-settings): Write kernel config only for zonal buckets in …
meet2mky Jan 28, 2026
a33deb7
Update npm install command to fix version in PR reminder workflow (#4…
meet2mky Jan 28, 2026
b911066
refactor(simple reader): Refactoring simple reader to kernel reader f…
abhishek10004 Jan 28, 2026
017936b
Adding a trace log for short reads (#4326)
abhishek10004 Jan 28, 2026
f9f1a7d
ci: Fix CD pipeline for centos machines by upgrading python version t…
gargnitingoogle Jan 29, 2026
51c09fd
Upgrading go sdk version to 1.59.2 (#4328)
abhishek10004 Jan 29, 2026
3de672a
feat(Type Cache Deprecation): LookUp Child changes (#4290)
Tulsishah Jan 29, 2026
eb93e64
test(cd script update): add improved e2e cd script (#4192)
PranjalC100 Jan 29, 2026
4d43784
feat(kernel-settings): Remove version from contract as it's not requi…
meet2mky Jan 29, 2026
3abde81
Remove the Auto Formatting Github Flow (#4337)
vipnydav Feb 3, 2026
9d047f3
build(deps): bump protobuf
dependabot[bot] Feb 3, 2026
d62a56a
fix: changing python 311 to python3 (#4341)
Tulsishah Feb 3, 2026
5e4a1ea
Correction for only dir tests flags for exclude regex test (#4335)
PranjalC100 Feb 4, 2026
0c5ca52
fix_test (#4342)
Tulsishah Feb 4, 2026
4176f18
fix: Fix periodic e2e test run by cleaning only buckets created in cu…
gargnitingoogle Feb 4, 2026
eefb140
fix(test): Create directory with dynamic names (#4343)
Tulsishah Feb 4, 2026
99d5962
test(mounted directory tests): disable kernel reader for 4 packages i…
PranjalC100 Feb 4, 2026
a6348df
build(deps): bump protobuf
dependabot[bot] Feb 5, 2026
bdcc20d
build(deps): bump protobuf in /perfmetrics/scripts/ls_metrics
dependabot[bot] Feb 5, 2026
c2feec4
build(deps): bump protobuf
dependabot[bot] Feb 5, 2026
3436f4e
ci(build): Add make target for running integration tests (#4207)
kislaykishore Feb 6, 2026
4927de0
feat(metrics): Update histogram buckets for GCSFuse distribution metr…
kislaykishore Feb 6, 2026
0ce25c8
fix(simple reader): Improving retry logic for kernel reader path (#4347)
abhishek10004 Feb 6, 2026
557269c
fix panic in buffered reader if read request stalls for too long (#4340)
vipnydav Feb 9, 2026
cc822f5
fix(e2e script): Fix e2e script for rhel8 machine python installation…
Tulsishah Feb 9, 2026
ef87bc9
fix(local-file-unit-test): fixing CreateHardLink test for newer kerne…
raj-prince Feb 9, 2026
fed708b
Merge remote-tracking branch 'origin/dependabot/pip/perfmetrics/scrip…
alleaditya Feb 9, 2026
dbd9b7b
Merge remote-tracking branch 'origin/dependabot/pip/perfmetrics/scrip…
alleaditya Feb 9, 2026
e9eec5e
Merge remote-tracking branch 'origin/dependabot/pip/perfmetrics/scrip…
alleaditya Feb 9, 2026
a33f7f4
Merge remote-tracking branch 'origin/dependabot/pip/perfmetrics/scrip…
alleaditya Feb 9, 2026
60543e4
Merge remote-tracking branch 'origin/dependabot/pip/perfmetrics/scrip…
alleaditya Feb 9, 2026
9bf79ee
Merge remote-tracking branch 'origin/dependabot/pip/perfmetrics/scrip…
alleaditya Feb 9, 2026
a9ef4f6
Merge remote-tracking branch 'origin/dependabot/pip/perfmetrics/scrip…
alleaditya Feb 9, 2026
d3970fa
docs(buffered-reader): update semantics for phase 2 improvements (#4359)
vipnydav Feb 9, 2026
8ae959b
chore(deps): remove duplicate protobuf hashes in ls_metrics/requireme…
alleaditya Feb 9, 2026
e4545e3
Merge pull request #4360 from GoogleCloudPlatform/alleaditya_merge_de…
alleaditya Feb 10, 2026
bd71f99
feat: optimize sparse downloads with in-flight tracking and accurate …
vipnydav Feb 10, 2026
3b326e1
feat(trace exporters): Add support to export traces to multiple expor…
thrivikram-karur-g Feb 11, 2026
0f2935e
build(deps): Merge Dependabot PR 4339 (#4366)
alleaditya Feb 12, 2026
953f233
docs: update troubleshooting and known-issues regarding ignored confi…
vipnydav Feb 12, 2026
3e81dca
ci: Update gke tests readme files (#4267)
gargnitingoogle Feb 13, 2026
87e9f0a
feat(dev_guide): documenting dummy-io as part of dev guide (#4374)
raj-prince Feb 13, 2026
73461c9
feat(dir-metadata-prefetch): Add context-based cancellation to metada…
ashmeenkaur Feb 13, 2026
befeab2
test: Randomize test directory names in negative stat cache tests (#4…
vadlakondaswetha Feb 13, 2026
0462db2
feat(shared-chunk-cache-gc): adding support of running cron based lru…
raj-prince Feb 13, 2026
063a1ca
feat(shared-chunk-cache): support to share-chunk-cache across multipl…
raj-prince Feb 13, 2026
22c71f8
test: Fixing negative_stat_cache by increasing ttl and running concur…
vadlakondaswetha Feb 17, 2026
308aa6e
make test flags consistent (#4379)
ashmeenkaur Feb 17, 2026
42f4247
test(kokoro build.sh): run distributed micro-benchmarks from build.sh…
PranjalC100 Feb 17, 2026
91d2697
Upgrade grpc to v1.79.1 (#4380)
kislaykishore Feb 17, 2026
c78836b
fix(kokoro script): Rename script to be used for distributed benchmar…
PranjalC100 Feb 17, 2026
e389331
Fix ReadOnly CopyFileTest Flaky Test. Also Make CopyFileTest of Opera…
charith87 Feb 17, 2026
fb8b4f8
chore(flaky_tests): Fix CopyFileTest of ReadOnly Package Flaky Test. …
charith87 Feb 18, 2026
487960d
ADding known issue to the doc (#4398)
vadlakondaswetha Feb 19, 2026
7abb07f
feat(gcsx): treat first read at non-zero offset as random (#4401)
vipnydav Feb 20, 2026
daf6dcd
test(flag_optimizations): Add e2e tests for zonal bucket optimization…
vipnydav Feb 23, 2026
0dbc7e3
test(read_cache): Add integration tests for sparse chunk cache (#4352)
vipnydav Feb 24, 2026
3a76d0c
docs: Adding retry strategy doc (#4397)
Tulsishah Feb 24, 2026
abdf9aa
feat(Type Cache Deprecation): Add warning log for type cache flags (#…
Tulsishah Feb 25, 2026
b828b37
fix only dir tests (#4412)
ashmeenkaur Feb 25, 2026
f248f81
fix(Type cache Deprecation): Implicit Dir memory Consumption (#4408)
Tulsishah Feb 25, 2026
40a7f3b
pass context to dir inode (#4376)
ashmeenkaur Feb 25, 2026
65c4d1b
increase timeout to 6hrs from default 3hrs (#4411)
PranjalC100 Feb 25, 2026
59542cf
fix(shared-chunk-cache): creating different sub-directory for shared-…
raj-prince Feb 26, 2026
fc54ba2
feat(Type Cache Deprecation): enable the flag default true (#4413)
Tulsishah Feb 26, 2026
86dce46
fix prefetch initialization (#4419)
ashmeenkaur Feb 27, 2026
6b08c36
fix(dir-metadata-prefetch): metadata prefetch race condition with act…
ashmeenkaur Feb 27, 2026
9965265
fix: Upgrade jacobsa/fuse for handling large page sizes (#4427)
kislaykishore Mar 3, 2026
1c555a1
feat: Setting directConnectivityEnforced option for grpc (#4420)
vadlakondaswetha Mar 3, 2026
b676a13
feat: added directpath strategy param (#4421)
vadlakondaswetha Mar 3, 2026
1f0ce8e
fix(rapid appends): do not force fetch latest metadata (possibly stal…
anushka567 Mar 3, 2026
553cec1
feat(Type Cache Deprecation): Remove type cache profile changes (#4418)
Tulsishah Mar 5, 2026
e9da8e3
update python version for rhel 9 (#4443)
ashmeenkaur Mar 5, 2026
919dbde
feat(consistent symlink): Flag for enabling new symbolic link behavio…
anushka567 Mar 6, 2026
2759fbc
docs: add known issue for premature EOF on A4X machines (#4425)
kislaykishore Mar 6, 2026
6497c37
Remove the resolved gRPC issues from known-issues. (#4442)
kislaykishore Mar 6, 2026
df006e6
feat: Added a stat call to check if dp is working and fallback when i…
vadlakondaswetha Mar 6, 2026
61d0378
test: Move file_info_test.go to stretchr/testify (#4449)
kislaykishore Mar 9, 2026
d1562b5
Remove IsUserSet word as this interface was removed (#4460)
vipnydav Mar 10, 2026
2aa2028
feat(chunk-retry-deadline): Add chunk retry deadline hidden flag for …
meet2mky Mar 11, 2026
6dd3d83
build(deps): bump golang from 1.24.11 to 1.26.1 (#4456)
vipnydav Mar 11, 2026
56cdff5
fix(Type Cache Deprecation): Implicit directories visible without fla…
Tulsishah Mar 11, 2026
ada95c9
test: disable flaky Test_validateCRC_WheContextIsCancelled (#4447)
kislaykishore Mar 11, 2026
9b510f4
make metadata prefetch flags public (#4466)
ashmeenkaur Mar 11, 2026
b253ca3
chore(scripts): modify package installations & logging changes (#4458)
PranjalC100 Mar 12, 2026
adbc88b
Add A4X Max to high-performance machine type. (#4455)
kislaykishore Mar 12, 2026
e7a50d3
build(deps): bump urllib3 (#4385)
dependabot[bot] Mar 12, 2026
62566fb
chore(grpc): update go sdk dependency to v1.61.2 (#4464)
alleaditya Mar 12, 2026
5180143
feat(wire-log): plumb through wire log
geertj Feb 18, 2026
c51fac9
Improve file operations (#4362)
vipnydav Mar 13, 2026
247a1b5
ensure that retries are set to infinite after DP connectivity check i…
ashmeenkaur Mar 13, 2026
632897e
build(deps): bump protobuf in /perfmetrics/scripts/micro_benchmarks (…
dependabot[bot] Mar 16, 2026
082c4fb
fix(integration tests): using unique file names in each test of local…
ashmeenkaur Mar 16, 2026
d724e63
feat(consistent symlink): changes for CreateSymlink flow for updated…
anushka567 Mar 16, 2026
f3e6d3c
feat(metrics): enable gRPC metrics by default in configuration (#4468)
alleaditya Mar 16, 2026
8edad44
test: add proper cleanups to fix flaky file cache tests (#4480)
vipnydav Mar 16, 2026
d2d4fe3
Upgrade dependencies (#4478)
vipnydav Mar 17, 2026
e1517b7
chore(improved_run_e2e_tests): add bash upgrade in improved_run_e2e_t…
PranjalC100 Mar 17, 2026
b93e4e0
feat(consistent symlink): modify the IsSymlink method to identify bot…
anushka567 Mar 17, 2026
55a2161
test(fs): add unit tests for gRPC metrics (#4453)
alleaditya Mar 17, 2026
f156c3e
feat: Enable folder APIs stall-retry fix for non-rapid buckets throug…
gargnitingoogle Mar 18, 2026
e6e88e4
refactor(improved e2e test): add option to install gcsfuse package fr…
PranjalC100 Mar 18, 2026
6ed3eea
feat(tracing): Add basic read flow traces (#4244)
thrivikram-karur-g Mar 18, 2026
8b5e5de
fix(error chain): fix error chain in MRD which causes I/O error. (#4495)
meet2mky Mar 19, 2026
c07aa95
fix(ci): update install_test.sh to support Python 3.10+ and missing d…
vipnydav Mar 20, 2026
4dc8db7
feat(dp-check): removing older cp check utility (#4494)
raj-prince Mar 20, 2026
480c36d
add read cache required test flags for GKE env (#4501)
ashmeenkaur Mar 20, 2026
2b47e9d
fix: correct folder memory size calculation (#4492)
kislaykishore Mar 20, 2026
7185d99
perf: 10x improvement in metadata-cache size computation (#4496)
kislaykishore Mar 20, 2026
efc116c
Update CODEOWNERS for tools directory (#4508)
meet2mky Mar 20, 2026
1e1bea9
refactor(improved e2e test): make project-id and bucket-location argu…
PranjalC100 Mar 23, 2026
d5a84d4
refactor(improved_e2e_test): add-output-dir option to improved-run-e2…
PranjalC100 Mar 23, 2026
ed82d5a
feat(consistent handling): Integration tests for creating symlinks wi…
anushka567 Mar 23, 2026
3f524e7
Add read_cache test packages to run for zonal (#4517)
vipnydav Mar 23, 2026
988b19e
fix install test for regular release and patch releases (#4518)
meet2mky Mar 23, 2026
1dbbb01
test(tracing): Add benchmark tests to the repository for reference (#…
thrivikram-karur-g Mar 23, 2026
8d8d444
perf: Reduce memory footprint of stat cache entries (#4512)
kislaykishore Mar 24, 2026
6f03de0
cleanup for symlink handling test (#4522)
anushka567 Mar 24, 2026
c2fe327
feat: conditionally add -short flag to go test commands for versions …
meet2mky Mar 24, 2026
f04ca31
feat(force-dp-check): adding test to validate the force-dp using prox…
raj-prince Mar 24, 2026
1484b06
feat(consistent symlink): update symlink inode struct to include meta…
anushka567 Mar 25, 2026
da9015e
fix: Fix data-race in lru-cache (#4515)
kislaykishore Mar 25, 2026
03aeb6c
feat(consistent symlink): create openReader helper method on symlink …
anushka567 Mar 25, 2026
ce54e44
refactor(improved cd pipeline script): modify improved cd script (#4519)
PranjalC100 Mar 25, 2026
13f9ce5
refactor: improve emulator test stability by adding readiness checks,…
meet2mky Mar 26, 2026
3c89bf8
feat(consistent symlink): update ReadSymlink flow to populate target…
anushka567 Mar 26, 2026
c3a1181
test(monitoring package): align log file paths with test suite names …
PranjalC100 Mar 26, 2026
1c5142c
disable monitoring package for GKE test config (#4533)
PranjalC100 Mar 26, 2026
29c57be
feat(logging): Move logs before mount completion to info severity for…
thrivikram-karur-g Mar 26, 2026
582a220
feat: Round-up file-sizes by block-size in file-cache (#4514)
gargnitingoogle Mar 27, 2026
74eb7bd
test(integration): hardcode cache-dir for readonly and read_large_fil…
PranjalC100 Mar 30, 2026
d0f3897
docs(troubleshooting): for fuse: writeMessage: no such file or direct…
ashmeenkaur Mar 30, 2026
aef6c3f
test(log-rotation): add retry mechanism to prevent flaky test failure…
PranjalC100 Mar 30, 2026
54a16d0
test(ci): Use ubuntu 22.04 to run composite tests (#4551)
meet2mky Mar 30, 2026
0beeca2
feat(chunkRetryDeadline): Propagate hidden chunkRetryDeadline flag an…
meet2mky Mar 30, 2026
df4203e
test(ci): Update runner version to Ubuntu 22.04 for flake detector (#…
meet2mky Mar 30, 2026
06b1ea0
feat(tests): remove unused vars, add emulator tests (#4553)
PranjalC100 Mar 31, 2026
0e06d89
test(fix creds): Use temporary file for creds ensuring no corruption …
meet2mky Mar 31, 2026
40bcadb
ensure sym handling package runs using config file (#4549)
anushka567 Mar 31, 2026
64f27f3
feat(integration_tests): fix e2e package runtime visualization (#4552)
PranjalC100 Mar 31, 2026
1ed8aa4
perf:⚡ Bolt: Optimize integer to string conversion (#4547)
kislaykishore Mar 31, 2026
b2c5f63
perf: ⚡Bolt: io_renderer string builder optimization (#4560)
kislaykishore Apr 1, 2026
e98ac24
fix(read flow): when metadata is cached due to list object api call (…
ashmeenkaur Apr 1, 2026
a5a355e
docs(tracing): update read trace playbook (#4537)
thrivikram-karur-g Apr 1, 2026
ccfa397
feat(consistent symlink): add complete set of integration tests for s…
anushka567 Apr 1, 2026
4b7892b
test(cloud profiler package): Improve cloud profiler test package and…
meet2mky Apr 1, 2026
3c6a9f4
enable symlink flag default on (#4564)
anushka567 Apr 3, 2026
c47b193
docs(consistent symlink): update semantics doc for updated symlink ha…
anushka567 Apr 6, 2026
0118b43
fix(integration_tests): prevent overwriting MntDir in GKE executions …
PranjalC100 Apr 6, 2026
2e81414
fix: 🕵️‍♂️Sherlock: Fix response body resource leak in proxyTokenSour…
kislaykishore Apr 6, 2026
8d81b7a
refactor: 🏕️Scout: Replace interface{} with any (#4569)
kislaykishore Apr 6, 2026
88a6f7b
test migration negative stat cache (#4582)
PranjalC100 Apr 6, 2026
93868ff
refactor(read_cache): Deflake read_cache integration tests using uniq…
meet2mky Apr 6, 2026
d783fbf
Update CODEOWNERS
charith87 Apr 6, 2026
760517e
Merge pull request #4588 from GoogleCloudPlatform/charith87-patch-2
charith87 Apr 6, 2026
69b900c
chore(deps): Merge Dependabot PR (#4585)
alleaditya Apr 6, 2026
0ec9bb6
test(inactive-stream-timeout): de-flake inactive stream reader ensuri…
PranjalC100 Apr 6, 2026
673058d
test(read_cache): de-flake read cache test from fixed sleep based to …
meet2mky Apr 6, 2026
0381879
Add support for passing client-protocol to the GKE orbax benchmark (#…
kislaykishore Apr 6, 2026
156255a
refactor(tracing): Trace flags updates (move from experimental to non…
thrivikram-karur-g Apr 6, 2026
60573a2
debian ubuntu python3-rich handle (#4594)
PranjalC100 Apr 6, 2026
ea50677
chore(deps): Merge Dependabot PR (#4593)
alleaditya Apr 7, 2026
a2b2aff
test(consistent symlink): enable symlink_handling E2E package in CI/C…
anushka567 Apr 7, 2026
a5a293b
refactor: replace shell-based file generation with Go-native implemen…
meet2mky Apr 7, 2026
c79ec06
add retries to file and dir attribute tests (#4599)
PranjalC100 Apr 7, 2026
f17101a
test(integration): migrate managed_folders tests to common test confi…
PranjalC100 Apr 7, 2026
66fbbda
fix(integration_tests): use venv for python rich installation to fix …
PranjalC100 Apr 8, 2026
c7d043a
chore: Migrate gsutil usage to gcloud storage (#4239)
gurusai-voleti Apr 9, 2026
9b7b672
test(integration): migrate 4 non-gke packages to common test configur…
PranjalC100 Apr 9, 2026
cfe974b
perf: ⚡ Bolt: [performance improvement] Optimize BytesToHigherMiBs us…
kislaykishore Apr 13, 2026
9651ba5
docs: Fix known-issues entry for premature-EOF (#4612)
kislaykishore Apr 13, 2026
e76ad16
feat(consistent symlink): adopt dual metadata semantics for standard …
anushka567 Apr 14, 2026
a4bbd53
feat(tracing): Add write flow traces (#4520)
thrivikram-karur-g Apr 15, 2026
8a9f498
chore(make): Add lint target and update build path in Makefile (#4619)
meet2mky Apr 15, 2026
9019380
remove log_file in test_config adn keep only dir where required (#4623)
PranjalC100 Apr 16, 2026
202c6cb
feat: add support for package filtering and emulator skipping in e2e …
meet2mky Apr 16, 2026
070dc75
fix(requester pays): Fix requester pays for gRPC and also setup integ…
meet2mky Apr 16, 2026
b426baf
chore(go upgrade): Upgrading golang to 1.26.2 due to multiple CVEs in…
abhishek10004 Apr 16, 2026
8b35120
feat(shared-chunk-cache): adding basic e2e test for shared-chunk-cach…
raj-prince Apr 16, 2026
83be2aa
feat: making direct-path verification non-fatal until dummy-stat call…
raj-prince Apr 17, 2026
9af9f2f
Add an experimental flag (#4608)
vipnydav Apr 20, 2026
a524bfd
feat(tests): add package-level retry mechanism (#4528)
PranjalC100 Apr 20, 2026
a278654
add only dir in test config file (#4629)
PranjalC100 Apr 20, 2026
90d49c5
fix(buffered_reader): Fixing a memory leak in buffered reader (#4638)
abhishek10004 Apr 21, 2026
24c54ca
fix(direct path verification): Updating direct path enforcement strat…
abhishek10004 Apr 21, 2026
18cdcb2
test(integration): migrate buffered read test pacakge (#4583)
PranjalC100 Apr 22, 2026
d20e132
feat: updating otel library from 1.42.0 to 1.43.0 (#4634)
vadlakondaswetha Apr 23, 2026
3842605
feat(metrics): Read block size metric gen code and tpl changes (#4640)
thrivikram-karur-g Apr 23, 2026
11f737f
feat(metrics): Streaming write fallback metric-gen code (#4639)
thrivikram-karur-g Apr 23, 2026
cdc3ac2
Remove --precondition-errors flag (#4587)
vipnydav Apr 23, 2026
9b78151
feat: Add Read Path Support for Pirlo Buckets (#4633)
vipnydav Apr 23, 2026
266099b
remove precondition error (#4645)
vadlakondaswetha Apr 23, 2026
4c2567b
fix: prevent symlink attack in log file creation (#4637)
vadlakondaswetha Apr 24, 2026
0d885a0
test(logs): enforce log-file strictness and centralize log filename p…
PranjalC100 Apr 24, 2026
e96e67c
disbale only_dir for flag_optimisation and inactive_stream_timeout (#…
PranjalC100 Apr 24, 2026
9aaa7bb
refactor(append): Log mismatched offsets on takeover errors (#4545)
cjc25 Apr 24, 2026
7d53696
Revert "fix: prevent symlink attack in log file creation (#4637)" (#4…
vadlakondaswetha Apr 28, 2026
549c822
Fix lock leak in renameHierarchicalDir when destination directory is …
vadlakondaswetha Apr 28, 2026
5dd21b6
chore: update integration test setup to include test names in log pat…
PranjalC100 Apr 28, 2026
b97b8cc
feat(metrics): Add read block sizes metrics (#4632)
thrivikram-karur-g Apr 29, 2026
0bede44
Remove redundant write flow (#4658)
vipnydav May 4, 2026
bab547f
build(deps): dependabot PR perf scripts pytest upgrades (#4665)
thrivikram-karur-g May 4, 2026
30a63b9
feat(metrics): Adding streaming write fallback count metric (#4630)
thrivikram-karur-g May 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .gcloudignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.gcloudignore
.git
.gitignore
#!include:.gitignore

perfmetrics/
.github/
benchmarks/
docs/
samples/
21 changes: 21 additions & 0 deletions .gemini/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Custom configuration guide: https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github?content_ref=the+gemini+folder+hosts+any+gemini+code+assist+related+configuration+files+like+config+yaml+and+styleguide+md#custom-configuration

code_review:
pull_request_opened:
code_review: true
summary: true
include_drafts: false
16 changes: 16 additions & 0 deletions .github/.codecov.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ignore:
- "tools"
- "benchmarks"
- "perfmetrics"
- "cfg/config.go"
coverage:
round: down
precision: 2
Expand Down
6 changes: 3 additions & 3 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
# the repo.
* @GoogleCloudPlatform/gcsfuse-codeowners

perfmetrics/scripts/testing_on_gke/ @gargnitingoogle @kislaykishore @tulsishah @charith87 @GoogleCloudPlatform/gcsfuse-codeowners
perfmetrics/scripts/ @tulsishah @GoogleCloudPlatform/gcsfuse-codeowners
tools/ @tulsishah @GoogleCloudPlatform/gcsfuse-codeowners
perfmetrics/scripts/testing_on_gke/ @gargnitingoogle @kislaykishore @charith87 @GoogleCloudPlatform/gcsfuse-codeowners
perfmetrics/scripts/ @meet2mky @GoogleCloudPlatform/gcsfuse-codeowners
tools/ @meet2mky @GoogleCloudPlatform/gcsfuse-codeowners
11 changes: 9 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,16 @@ updates:
- dependency-type: "direct"
schedule:
interval: weekly
open-pull-requests-limit: 10
groups:
# Group all Go updates together in a single PR.
go-dependencies:
patterns:
- "*"
- package-ecosystem: pip
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 10
groups:
python-dependencies:
patterns:
- "*"
1 change: 1 addition & 0 deletions .github/header-checker-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ sourceFileExtensions:
ignoreFiles:
- 'cmd/testdata/**'
- 'internal/config/testdata/*'
- 'internal/workloadinsight/testdata/**'
- 'internal/storage/caching/mock_gcscaching/mock_stat_cache.go'
- 'internal/storage/mock_bucket.go'
- 'perfmetrics/scripts/load_tests/python/sample_tasks.yaml'
Expand Down
23 changes: 22 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
**Please ensure your PR title follows the format:**
```
type(scope): subject
```
Example:
`feat(api): add user login endpoint`

Available types:
- `feat`: A new feature
- `fix`: A bug fix
- `docs`: Documentation only changes
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- `refactor`: A code change that neither fixes a bug nor adds a feature
- `perf`: A code change that improves performance
- `test`: Adding missing tests or correcting existing tests
- `build`: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- `ci`: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
- `chore`: Other changes that don't modify src or test files
- `revert`: Reverts a previous commit

### Description

### Link to the issue in case of a bug fix.
NA

### Testing details
1. Manual - NA
2. Unit tests - NA
3. Integration tests - NA

### Any backward incompatible change? If so, please explain.
82 changes: 82 additions & 0 deletions .github/scripts/reminder.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
// This script uses the Octokit library to interact with the GitHub API.
const { getOctokit } = require('@actions/github');
// The context object provides information about the workflow run.
const { context } = require('@actions/github');

// This is the main function that will be executed.
async function run() {
try {
// ------------------ CONFIGURATION ------------------
// Label that triggers the reminder.
const REMINDER_LABEL = 'remind-reviewers';
// Inactivity time in hours.
const INACTIVITY_HOURS = 24;
// The message to post on the pull request.
const REMINDER_MESSAGE = `Hi {reviewers}, your feedback is needed to move this pull request forward. This automated reminder was triggered because there has been no activity for over ${INACTIVITY_HOURS} hours. Please provide your input when you have a moment. Thank you!`;
// ---------------------------------------------------

// Get the GitHub token from environment variables. It's passed in from the workflow file.
const token = process.env.GITHUB_TOKEN;
if (!token) {
throw new Error("GITHUB_TOKEN is not set. The workflow must pass it as an environment variable.");
}

// Create an authenticated Octokit client.
const octokit = getOctokit(token);
// Remove 10 minutes from inactivity time to not account previous reminders as activity.
const INACTIVITY_MS = INACTIVITY_HOURS * 60 * 60 * 1000 - 10 * 60 * 1000;
const now = new Date().getTime();

// Get all open pull requests
const pullRequests = await octokit.paginate(octokit.rest.pulls.list, {
owner: context.repo.owner,
repo: context.repo.repo,
state: 'open',
});

console.log(`Found ${pullRequests.length} open pull requests.`);

for (const pr of pullRequests) {
const hasReminderLabel = pr.labels.some(label => label.name === REMINDER_LABEL);
if (!hasReminderLabel) {
console.log(`PR #${pr.number} ('${pr.title}') does not have the '${REMINDER_LABEL}' label. Skipping.`);
continue;
}

if (pr.draft) {
console.log(`PR #${pr.number} ('${pr.title}') is a draft. Skipping.`);
continue;
}

const updatedAt = new Date(pr.updated_at).getTime();
const isInactive = (now - updatedAt) > INACTIVITY_MS;
if (!isInactive) {
console.log(`PR #${pr.number} ('${pr.title}') is not inactive yet. Last updated at ${pr.updated_at}. Skipping.`);
continue;
}

const requestedReviewers = pr.requested_reviewers.map(reviewer => `@${reviewer.login}`).join(', ');
if (requestedReviewers.length === 0) {
console.log(`PR #${pr.number} ('${pr.title}') is inactive but has no requested reviewers. Skipping.`);
continue;
}

const finalMessage = REMINDER_MESSAGE.replace('{reviewers}', requestedReviewers);
console.log(`PR #${pr.number} ('${pr.title}') is inactive. Posting a reminder comment.`);

await octokit.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
body: finalMessage
});
}
} catch (error) {
// If the script fails, log the error message.
console.error(error.message);
process.exit(1);
}
}

// Execute the main function.
run();
45 changes: 45 additions & 0 deletions .github/workflows/auto-pr-reminder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Auto Add Label on Ready for Review or Reopen PR

on:
pull_request:
types:
- opened
- reopened
- ready_for_review
branches:
- master

jobs:
add-label:
# This condition ensures the label is only added if the PR is not a draft.
# When a PR is reopened, it is never in a draft state.
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
steps:
- name: Add 'remind-reviewers' label
uses: actions/github-script@v6
with:
script: |
// List of authors to exclude from reminders.
const excludedAuthors = [
'dependabot[bot]',
];

const author = context.payload.pull_request.user.login;
console.log(`Pull Request author is: ${author}`);

// Check if the author is in the exclusion list.
if (excludedAuthors.includes(author)) {
console.log(`Author '${author}' is in the exclusion list. Skipping label addition.`);
return;
}

github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['remind-reviewers']
})
85 changes: 59 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,36 @@ on:
pull_request:
branches:
- '*'
permissions:
contents: read

# Ensure only the latest run per branch is active (cancel older in-progress runs),
# but allow every master commit to run (don't cancel or group master runs together).
concurrency:
# For master we use a unique group per run (github.run_id) so runs don't cancel each other.
# For other refs we use the ref as the group so a new run cancels any previous in-progress run on that ref.
group: ${{ github.ref == 'refs/heads/master' && github.run_id || github.ref }}
# Cancel in-progress runs for non-master refs; do not cancel on master.
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
filter:
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
run_tests: ${{ steps.filter.outputs.run_tests }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3.0.2
id: filter
with:
predicate-quantifier: 'every'
filters: |
run_tests:
- '!**/*.md'
- '!tools/**'
- '!perfmetrics/**'
- '!samples/**'
format-test:
runs-on: ubuntu-latest
timeout-minutes: 5
Expand All @@ -17,59 +45,64 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.23"
go-version-file: '.go-version'
- name: Install goimports
run: go install golang.org/x/tools/cmd/goimports@latest
- name: CodeGen
run: go generate ./...
- name: Formatting diff
run: go fmt ./... && git diff --exit-code --name-only
- name: Formatting and Imports check
run: |
goimports -w .
go fmt ./...
go mod tidy
git diff --exit-code --name-only

linux-tests:
strategy:
matrix:
go: [ 1.23.x ]
runs-on: ubuntu-latest
timeout-minutes: 15
needs: filter
runs-on: ubuntu-22.04
timeout-minutes: 25

steps:
- uses: actions/checkout@v2
- name: Set up Go ${{ matrix.go }}
uses: actions/setup-go@v2.1.4
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
go-version-file: '.go-version'
- name: Install fuse
run: sudo apt-get update && sudo apt-get install -y fuse3 libfuse-dev
- name: Build
if: ${{ needs.filter.outputs.run_tests == 'true' }}
run: |
CGO_ENABLED=0 go build ./...
go install ./tools/build_gcsfuse
build_gcsfuse . /tmp ${GITHUB_SHA}
- name: Test all except caching parallely
run: CGO_ENABLED=0 go test -count 1 -covermode=atomic -coverprofile=coverage.out -coverpkg=./... -v -skip `cat flaky_tests.lst | go run tools/scripts/skip_tests/main.go` `go list ./... | grep -v internal/cache/...`
- name: Test caching
run: CGO_ENABLED=0 go test -p 1 -count 1 -covermode=atomic -coverprofile=coverage_cache.out -coverpkg=./... -v -skip `cat flaky_tests.lst | go run tools/scripts/skip_tests/main.go` ./internal/cache/...
- name: Cache RaceDetector Test
run: go test -p 1 -count 1 -v -race -skip `cat flaky_tests.lst | go run tools/scripts/skip_tests/main.go` ./internal/cache/...
- name: Test all
if: ${{ needs.filter.outputs.run_tests == 'true' }}
run: CGO_ENABLED=0 go test -p 1 -count 1 -covermode=atomic -coverprofile=coverage.out -coverpkg=./... -v -skip `cat flaky_tests.lst | go run tools/scripts/skip_tests/main.go` `go list ./... | grep -v 'tools/integration_tests'`
- name: RaceDetector Test
if: ${{ needs.filter.outputs.run_tests == 'true' }}
run: go test -p 1 -count 1 -v -race -skip `cat flaky_tests.lst | go run tools/scripts/skip_tests/main.go` ./internal/cache/... ./internal/gcsx/...
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4.3.1
timeout-minutes: 5
with:
fail_ci_if_error: true
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests

lint:
name: Lint
if: github.ref != 'refs/heads/master'
runs-on: ubuntu-latest
steps:
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: "1.23"
- name: checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: '.go-version'
- name: golangci-lint
uses: golangci/golangci-lint-action@032fa5c5e48499f06cf9d32c02149bfac1284239
uses: golangci/golangci-lint-action@v8
with:
args: -E=goimports --timeout 2m0s
args: -E=unused --timeout 3m0s
only-new-issues: true

Loading