maximilien
99923a8718
Merge pull request 'fix reflected xss when returning errors on web endpoint' ( #1472 ) from escape-errors-v1 into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1472
2026-06-11 06:51:01 +00:00
trinity-1686a
0d0068317d
fix reflected xss when returning errors on web endpoint
...
Reported by Filippo Decortes from ares-cyber.ai
2026-06-10 19:43:51 +02:00
Alex Auvolat
b6b18427a5
use optimization level 3 and thin LTO for release builds ( #1405 )
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1405
Co-authored-by: Alex Auvolat <lx@deuxfleurs.fr >
Co-committed-by: Alex Auvolat <lx@deuxfleurs.fr >
2026-04-16 08:47:02 +00:00
Gauthier Zirnhelt
9987166b2b
Fix the LifecycleWorker being uncooperative ( #1396 )
...
## Summary
This PR ensures that the `LifecycleWorker` yields at least once to the Tokio scheduler in between each batch of 100 objects.
## Problem being solved
I'm administrating a Garage cluster which has been experiencing timeouts on all endpoints while the lifecycle worker is running at midnight UTC : `Ping timeout` error messages and even requests eventually failing due to `Could not reach quorum ...`.
I have found that this happens while the lifecycle worker is working on a big bucket (containing millions of objects) with a lifecycle rule that applies to very few objects.
The `process_object()` function does not hit any `await`:
- `last_bucket` is always the same, so the `bucket_table` is not read asynchronously
- no transaction is made on the `object_table` because my lifecycle rule (almost) never applies to any object
The first commit in this PR adds an executable which reproduces the problem that I've been experiencing in a self-contained way : the lifecycle worker starves the Tokio scheduler so much that no other task is able to run (or very rarely).
To run it : `cargo run -p garage_model --bin lifecycle-starvation-test`.
This commit can be dropped post-review, as it's only useful to demonstrate the starvation.
The error messages completely stopped after adding the extra yield to the nodes of my cluster.
The duration of the lifecycle worker task does not appear to have changed at all from what I can see (looking at the timestamps produced either by the self-contained binary or by each of my nodes with the `Lifecycle worker finished` message).
## Note
An other potential fix would have been to force the `WorkerProcessor` to yield before re-enqueuing a busy task, but this would have affected all Garage workers even though it's only the `LifecycleWorker` being uncooperative.
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1396
Reviewed-by: Alex <lx@deuxfleurs.fr >
Co-authored-by: Gauthier Zirnhelt <gauthier.zirnhelt@insimo.fr >
Co-committed-by: Gauthier Zirnhelt <gauthier.zirnhelt@insimo.fr >
2026-04-15 09:56:24 +00:00
trinity-1686a
b72b090a09
fix silent write errors ( #1358 )
...
fix #1355
some write errors are not reported when calling write_all. That's notably the case of ENOSPC on small buffers (1MiB).
on ext4, the error is catched when calling flush(). This is hopefully the case on most local filesystems, though afaik this assumption doesn't hold for NFS
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1358
Co-authored-by: trinity-1686a <trinity@deuxfleurs.fr >
Co-committed-by: trinity-1686a <trinity@deuxfleurs.fr >
2026-02-21 07:21:24 +00:00
Armael
8551aefed4
Fix: correctly parse CORS website configuration with no rules ( #1320 )
...
When sending a website config with an empty list of CORS rules, garage currently incorrectly refuses it with error message "Invalid XML: missing field `CORSRule`".
This fix the issue by following the documentation of quick-xml related to serde field parameters for this specific scenario: https://docs.rs/quick-xml/latest/quick_xml/de/#sequences-xsall-and-xssequence-xml-schema-types .
(I've based this PR on main-v1 because we want it for deuxfleurs' deployment.)
Co-authored-by: Armaël Guéneau <armael.gueneau@ens-lyon.org >
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1320
Co-authored-by: Armael <armael@noreply.localhost >
Co-committed-by: Armael <armael@noreply.localhost >
2026-02-07 13:11:20 +00:00
Alex Auvolat
47bf5d9fb0
bump version to v1.3.1
v1.3.1
2026-01-24 13:01:27 +01:00
Alex Auvolat
5df37dae5e
update cargo dependencies in main-v1 ( #1299 )
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1299
Co-authored-by: Alex Auvolat <lx@deuxfleurs.fr >
Co-committed-by: Alex Auvolat <lx@deuxfleurs.fr >
2026-01-24 11:59:01 +00:00
Alex
44af0bdab3
Merge pull request 'Backport #1283 and #1290 to main-v1' ( #1297 ) from backports-v1 into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1297
2026-01-24 11:34:28 +00:00
rmoff
a7d6620e18
Fix typo in error message
2026-01-24 12:21:45 +01:00
Joe Anderson
8eb12755e4
Allow bucket to be missing from presigned post params
2026-01-24 12:21:25 +01:00
maximilien
c685a2cbaf
Merge pull request 'Update doc/book/cookbook/binary-packages.md' ( #1269 ) from nmstoker/garage:main-v1 into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1269
2025-12-21 21:12:15 +00:00
maximilien
969f42a970
Merge pull request 'feat: add service annotations' ( #1264 ) from deimosfr/garage:feat/add_helm_svc_annotations into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1264
Reviewed-by: maximilien <git@mricher.fr >
2025-12-21 21:00:00 +00:00
nmstoker
424d4f8d4d
Update doc/book/cookbook/binary-packages.md
...
Correct the Arch Linux link as garage is now available in the official repos under extra, and no longer in AUR.
2025-12-20 13:16:38 +00:00
Pierre Mavro
bf5290036f
feat: add service annotations
2025-12-18 18:12:22 +01:00
Alex
4efc8bac07
Merge pull request 'Add the parameter, which replaces . This is to accommodate different storage media such as HDD and NVMe.' ( #1251 ) from perrynzhou/garage:dev into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1251
Reviewed-by: Alex <lx@deuxfleurs.fr >
2025-12-17 10:05:49 +00:00
perrynzhou
f3dcc39903
Merge branch 'main-v1' into dev
2025-12-17 10:05:19 +00:00
maximilien
43e02920c2
Merge pull request 'docs: fix typo in doc/book/cookbook/kubernetes.md' ( #1259 ) from simonpasquier/garage:fix-typo into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1259
Reviewed-by: maximilien <me@mricher.fr >
2025-12-17 07:09:59 +00:00
Simon Pasquier
dcc2fe4ac5
docs: fix typo in doc/book/cookbook/kubernetes.md
2025-12-16 10:16:44 +01:00
perrynzhou@gmail.com
e3a5ec6ef6
rename put_blocks_max_parallel to block_max_concurrent_writes_per_request and update configuration.md
2025-12-12 07:09:38 +08:00
perrynzhou@gmail.com
4d124e1c76
Add the parameter, which replaces . This is to accommodate different storage media such as HDD and NVMe.
2025-12-10 06:43:51 +08:00
Alex
d769a7be5d
Merge pull request 'Update rust toolchain to 1.91.0' ( #1233 ) from toolchain-update into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1233
2025-11-25 09:58:17 +00:00
Alex Auvolat
511cf0c6ec
disable awscli checksumming in ci scripts
...
required because garage.deuxfleurs.fr is still running v1.x
2025-11-24 18:37:34 +01:00
Alex Auvolat
95693d45b2
run cargo fmt as a nix derivation
2025-11-24 18:09:53 +01:00
Alex Auvolat
ca296477f3
disable checksums in aws cli (todo: revert in main-v2)
2025-11-24 17:58:57 +01:00
Alex Auvolat
ca3b4a050d
update nixos image used in woodpecker ci
2025-11-24 17:35:51 +01:00
Alex Auvolat
a057ab23ea
Update rust toolchain
2025-11-24 11:09:46 +01:00
Alex
58bc65b9a8
Merge pull request 'migrate to this error, garage-v1' ( #1218 ) from thiserror into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1218
Reviewed-by: Alex <lx@deuxfleurs.fr >
2025-11-12 08:05:32 +00:00
trinity-1686a
ac851d6dee
fmt
2025-11-01 18:04:54 +01:00
trinity-1686a
eac2aa6fe4
Merge pull request 'fix: default config path changed for alpine binary' ( #1204 ) from berndsen-io/garage:fix-alpine-docs into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1204
Reviewed-by: trinity-1686a <trinity@deuxfleurs.fr >
2025-11-01 16:43:32 +00:00
trinity-1686a
1e0201ada2
Merge pull request 'Update link to signature v2.' ( #1211 ) from teo-tsirpanis/garage:sigv2-docs into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1211
Reviewed-by: trinity-1686a <trinity@deuxfleurs.fr >
2025-11-01 16:43:05 +00:00
trinity-1686a
82297371bf
migrate to this error
...
it doesn't generate a bazillion warning at compile time
2025-11-01 17:20:39 +01:00
teo-tsirpanis
174f4f01a8
Update link to signature v2.
2025-10-26 15:54:08 +00:00
fgberry
1aac7b4875
chore: spacing
2025-10-24 11:25:33 +02:00
fgberry
b43c58cbe5
fix: default config path changed for alpine binary
2025-10-24 11:22:32 +02:00
Alex
9481ac428e
Merge pull request 'sigv4: don't enforce x-amz-content-sha256 to be in signed headers list ( fix #770 )' ( #1195 ) from fix-770 into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1195
2025-10-14 09:34:35 +00:00
Alex Auvolat
1c29d04cc5
sigv4: don't enforce x-amz-content-sha256 to be in signed headers list ( fix #770 )
...
From the following page:
https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html
> In both cases, because the x-amz-content-sha256 header value is already
> part of your HashedPayload, you are not required to include the
> x-amz-content-sha256 header as a canonical header.
2025-10-14 11:18:25 +02:00
Alex
b48a8eaa1f
Merge pull request 'properly handle precondition time equal to object time' ( #1193 ) from precondition-ms into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1193
2025-10-10 19:41:06 +00:00
trinity-1686a
42fd8583bd
properly handle precondition time equal to object time
2025-10-08 17:54:22 +02:00
Alex
236af3a958
Merge pull request 'Garage v1.3.0' ( #1166 ) from rel-v1.3.0 into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1166
2025-09-14 21:26:21 +00:00
Alex Auvolat
4b1fdbef55
bump version to v1.3.0
v1.3.0
2025-09-14 21:36:33 +02:00
Alex Auvolat
0f1b488be0
fix rust warnings
2025-09-14 21:25:37 +02:00
Alex
0bbf63ee0e
Merge pull request 'update rusqlite and snapshot using VACUUM INTO' ( #1164 ) from update-rusqlite into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1164
2025-09-14 18:28:01 +00:00
Alex
879d941d7b
Merge pull request 'add garage repair clear-resync-queue ( fix #1151 )' ( #1165 ) from clear-resync-queue into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1165
2025-09-14 17:50:41 +00:00
Alex Auvolat
d726cf0299
add garage repair clear-resync-queue ( fix #1151 )
2025-09-14 19:34:44 +02:00
Alex
0c7aeab6f8
Merge pull request 'garage_db: fix error handling logic ( fix #1138 )' ( #1163 ) from fix-1138 into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1163
2025-09-14 17:26:08 +00:00
Alex Auvolat
5687fc0375
update rusqlite and snapshot using VACUUM INTO
2025-09-14 19:22:36 +02:00
Alex
97f1e9ab52
Merge pull request 'Add Plakar documentation (backup tools)' ( #1119 ) from Lapineige/garage:Plakar_support into main-v1
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/1119
2025-09-14 16:08:36 +00:00
Lapineige
60b1d78b56
Add Plakar documentation
2025-09-14 18:07:49 +02:00
Alex Auvolat
4c895a7186
garage_db: fix error handling logic ( fix #1138 )
2025-09-14 18:03:31 +02:00