Commit graph

2,883 commits

Author SHA1 Message Date
Alex
5d5a9ab642 Merge pull request 'Update fjall to v3' (#1346) from marvinj97/garage:fjall-v3 into next-v3
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1346
2026-09-15 14:32:59 +00:00
Alex Auvolat
b031a45057 db: add test for tree.clear() 2026-09-15 15:21:32 +02:00
Alex Auvolat
225672c172 fjall: fix allow fsync 2026-09-15 15:15:31 +02:00
marvin-j97
eab9eab38c refactor: fjall tx 2026-09-15 15:08:46 +02:00
marvin-j97
0e9fbeb528 fix: lint 2026-09-15 15:07:53 +02:00
marvin-j97
b10817dd96 use fjall-native tree clear fn 2026-09-15 15:07:53 +02:00
marvin-j97
e479bfe36c fix: fjall optimistic tx 2026-09-15 15:07:32 +02:00
marvin-j97
700566ddba refactor: fjall persist mode 2026-09-15 15:06:01 +02:00
marvin-j97
06ce6adc98 update fjall to v3 2026-09-15 15:05:57 +02:00
Dominik Menke
75d1de1df8 fix: improve routing of keys starting with "/" (fix #1178) (#1465)
Path-style URLs of the form /bucket//key address an object whose key begins with "/". Two greedy uses of `trim_start_matches('/')` were collapsing these leading slashes away:

- `uri.path().trim_start_matches('/')` stripped all leading slashes from the raw path before any further parsing.
- `p.trim_start_matches('/')` stripped leading slashes from the remainder after `split_once('/')` had already consumed the bucket/key separator

The combined effect wath that `HEAD /bucket//` and `GET /bucket//` produced an empty key, which the router treated as bucket-level operations (HeadBucket -> 200 OK, and ListObjectsV2) instead of an object-level op (HeadObject/GetObject -> 404 NoSuchKey).

The fix is simple: Replace the first `trim_start_matches` with `strip_prefix` (to strip exactly one separator slash) and remove the second one entirely. Path-style and vhost-style requests are now consistent: a double slash in the URL correctly addresses a key whose name begins with "/".

Regression tests added for `HEAD //` and `GET //` requests in both request styles.

Fixes: #1464

---

Disclaimer: I'm not fluent in Rust and I did use an LLM to explain the code to me. All code was written by me.

I'm not sure whether the large `test_cases!` block in the `test_aws_doc_examples` function is the right place for my tests (it certainly was a convenient one).

Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1465
2026-09-15 14:16:07 +02:00
Gwen Lg
c18d30eff9 style: use _count suffix for metrics
instead of `_counter` to follow grafana best practice.
update monitoring doc and grafana json
2026-09-15 14:16:07 +02:00
Gwen Lg
242f4931f1 chore: add garage_ prefix for metrics who didn't have it
update:
- monitoring doc
- grafana dashboard elasticsearch.json
2026-09-15 14:16:05 +02:00
Gwen Lg
3890d5f90c tests: check than all metrics name start with 'garage_' prefix 2026-09-15 14:15:16 +02:00
ieugen
b43e81dbcf Improve usability for garage in container by setting entrypoint (#1363)
- BREAKING: This update will probably break previous containers setups
that expect you to provide `/garage`

After the upgrade, instead of:
    docker run --rm dxflrs/garage:latest /garage --help
you need to run
    docker run --rm dxflrs/garage:latest --help

Signed-off-by: ieugen <eugen@ieugen.ro>

Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1363
Reviewed-by: Alex <lx@deuxfleurs.fr>
Co-authored-by: ieugen <eugen@ieugen.ro>
Co-committed-by: ieugen <eugen@ieugen.ro>
2026-09-15 14:15:16 +02:00
Alex Auvolat
7edbb85ebe fix typos (#1543)
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1543
2026-09-15 10:21:01 +00:00
Mohamed El tamawey
8a3554e7a9 Report Content-MD5 mismatch on PutObject as BadDigest (fix #1520) (#1538)
I did the bare minimum, meaning I didn't try to implement a fix for other parts (like SHA-256), just to make sure I am on the right track.

Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1538
2026-09-15 09:55:50 +00:00
Arthur Carcano
6292e9e880 Add fuzzing for object crdt (#1540)
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1540
2026-09-15 09:54:40 +00:00
Alex
c887553a1a Merge pull request '[RFC] Garbage Collector Elimination' (#1301) from 1686a/rfc-gc into main-v2
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1301
2026-09-15 09:29:51 +00:00
trinity-1686a
273d8bac98 wip formal algorithm 2026-09-15 09:29:51 +00:00
trinity-1686a
ff40930b69 [RFC] Garbage Collector Elimination 2026-09-15 09:29:51 +00:00
Alex Auvolat
c55176fdfb post-v2.4.0 release dependency upgrades (#1531)
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1531
2026-09-15 09:02:57 +00:00
Alex Auvolat
871a472da0 remove quentin from maintainers (#1539)
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1539
2026-09-12 14:14:11 +00:00
Alex
bc911afe53 Merge pull request 'Refactor resync manager' (#1476) from krtab/garage:refactor_resync_manager into main-v2
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1476
Reviewed-by: Armael <armael@noreply.localhost>
2026-09-10 15:18:52 +00:00
Arthur Carcano
ca4a211ef9 Fix migration semantics 2026-09-10 15:18:52 +00:00
Arthur Carcano
0882288aa3 Update post lx review 2026-09-10 15:18:52 +00:00
Arthur Carcano
069edf7dfb cargo fmt 2026-09-10 15:18:52 +00:00
Arthur Carcano
aae58e4097 Fix typo 2026-09-10 15:18:52 +00:00
Arthur Carcano
a1872490d2 clippy 2026-09-10 15:18:52 +00:00
Arthur Carcano
e1ebf2140e Review Armael 2 2026-09-10 15:18:52 +00:00
Arthur Carcano
946bcb67a8 Review Armael 2026-09-10 15:18:52 +00:00
Arthur Carcano
c979d5385a cargo fmt 2026-09-10 15:18:52 +00:00
Arthur Carcano
9d4383ee83 Add migration of resync queue from v1 to v2 2026-09-10 15:18:52 +00:00
Arthur Carcano
3d2223073e WIP fix errored inital computation 2026-09-10 15:18:52 +00:00
Arthur Carcano
06dc82e3a0 WIP step 3 2026-09-10 15:18:52 +00:00
Arthur Carcano
f84ed4fd5f WIP step 2 2026-09-10 15:18:52 +00:00
Arthur Carcano
fcdf24402b WIP step 1 2026-09-10 15:18:52 +00:00
Alex Auvolat
268334bd25 bump version to v2.4.1 v2.4.1 2026-09-07 21:05:12 +02:00
Alex
a3cb3bc862 Merge pull request 'set ring as rustls crypto provider when building http clients' (#1473) from mjm/garage:push-nkszolnkwuvt into main-v2
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1473
2026-09-07 17:54:48 +00:00
Alex Auvolat
c22b7499b8 kubernetes discovery: install ring crypto provider if missing 2026-09-07 19:34:22 +02:00
Alex Auvolat
ae29f7f73f k2v-client: use ring tls provider 2026-09-07 19:16:10 +02:00
Matt Moriarity
3dbcad9dda set rustls crypto provider when using consul discovery 2026-09-07 19:06:02 +02:00
Alex Auvolat
cca7acae33 Revert "reintroduce full rustls dependency in garage_rpc (fix #1526) (#1527)"
This reverts commit 229ec977d5.
2026-09-07 19:02:06 +02:00
Alex Auvolat
b30ad6dfcc hacky regression test for #1416 / #1526 (#1528)
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1528
2026-09-07 08:18:48 +00:00
maximilien
ceadd2c0d2 Merge pull request 'helm: update doc' (#1530) from helm-docs-update-2 into main-v2
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1530
2026-09-07 07:19:00 +00:00
maximilien
67ada6ee78 helm: update doc 2026-09-07 07:19:00 +00:00
Alex Auvolat
229ec977d5 reintroduce full rustls dependency in garage_rpc (fix #1526) (#1527)
also fix #1416

issue introduced in #1412

other potential solution #1473

Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1527
2026-09-07 07:16:44 +00:00
maximilien
13b264afce Merge pull request 'helm: update helm-docs for chart 0.10.1' (#1529) from helm-docs-update into main-v2
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1529
2026-09-07 06:29:29 +00:00
maximilien
6b50841d00
helm: update helm-docs for chart 0.10.1 2026-09-07 08:27:28 +02:00
maximilien
6dd5a6e823 Merge pull request 'helm: Add singleNode parameter' (#1458) from kirmanak/garage:main-v2 into main-v2
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1458
2026-09-07 06:23:25 +00:00
maximilien
683b419047
helm: add single-node unit tests 2026-09-07 08:19:13 +02:00