mirror of
https://github.com/opencontainers/runc.git
synced 2026-11-06 05:17:05 +00:00
Merge pull request #5578 from opencontainers/dependabot/go_modules/github.com/checkpoint-restore/go-criu/v8-8.5.0
build(deps): bump github.com/checkpoint-restore/go-criu/v8 from 8.4.0 to 8.5.0
This commit is contained in:
14 files changed
+1903
-4610
No files matched your search
@@ -4,7 +4,7 @@ go 1.26.0
|
||||
|
||||
require (
|
||||
cyphar.com/go-pathrs v0.2.6
|
||||
github.com/checkpoint-restore/go-criu/v8 v8.4.0
|
||||
github.com/checkpoint-restore/go-criu/v8 v8.5.0
|
||||
github.com/containerd/console v1.0.5
|
||||
github.com/coreos/go-systemd/v22 v22.7.0
|
||||
github.com/cyphar/filepath-securejoin v0.7.0
|
||||
@@ -28,6 +28,6 @@ require (
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/aperturerobotics/protobuf-go-lite v0.15.0 // indirect
|
||||
github.com/aperturerobotics/protobuf-go-lite v0.19.0 // indirect
|
||||
github.com/cilium/ebpf v0.17.3 // indirect
|
||||
)
|
||||
@@ -1,9 +1,9 @@
|
||||
cyphar.com/go-pathrs v0.2.6 h1:+btfBJ7qWKZo+TDJlDZ2tPqToKdN8QD4BAOqomueXZg=
|
||||
cyphar.com/go-pathrs v0.2.6/go.mod h1:y8f1EMG7r+hCuFf/rXsKqMJrJAUoADZGNh5/vZPKcGc=
|
||||
github.com/aperturerobotics/protobuf-go-lite v0.15.0 h1:Ke9pkt5zO5iQf2q7iAYsXHlCDhGeQH0cvhCTIiiWUIg=
|
||||
github.com/aperturerobotics/protobuf-go-lite v0.15.0/go.mod h1:3Ay/E7iaw2KWLirK3+dDdNJZHK0hu8Y1/kKeYeUa+8s=
|
||||
github.com/checkpoint-restore/go-criu/v8 v8.4.0 h1:w6WDxjde4pvXYTIBuj6dsWsaPorKwSWuCk/qSKTO3Jw=
|
||||
github.com/checkpoint-restore/go-criu/v8 v8.4.0/go.mod h1:SK5UexowK0P99gCcJJOavgVVlUWydGUfXSQUf1qDkHU=
|
||||
github.com/aperturerobotics/protobuf-go-lite v0.19.0 h1:7Veh1XY7pkswacItBnTR+skvPyNIFdOPg0tb3X0Yd/E=
|
||||
github.com/aperturerobotics/protobuf-go-lite v0.19.0/go.mod h1:3Ay/E7iaw2KWLirK3+dDdNJZHK0hu8Y1/kKeYeUa+8s=
|
||||
github.com/checkpoint-restore/go-criu/v8 v8.5.0 h1:IGAXRC5ypuJn5aNn0xaZ4p8Okjirp93ZblFQDRmn6o0=
|
||||
github.com/checkpoint-restore/go-criu/v8 v8.5.0/go.mod h1:ME5o2M3ANgdU29IyoU9k3sQjkX5nEc0kNH6xcJH5lm8=
|
||||
github.com/cilium/ebpf v0.17.3 h1:FnP4r16PWYSE4ux6zN+//jMcW4nMVRvuTLVTvCjyyjg=
|
||||
github.com/cilium/ebpf v0.17.3/go.mod h1:G5EDHij8yiLzaqn0WjyfJHvRa+3aDlReIaLVRMvOyJk=
|
||||
github.com/containerd/console v1.0.5 h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc=
|
||||
|
||||
+35
-3
@@ -1,11 +1,9 @@
|
||||
# protobuf-go-lite
|
||||
|
||||
[![GoDoc Widget]][GoDoc] [![Go Report Card Widget]][Go Report Card] [![DeepWiki Widget]][DeepWiki]
|
||||
[![GoDoc Widget]][GoDoc] [![DeepWiki Widget]][DeepWiki]
|
||||
|
||||
[GoDoc]: https://godoc.org/github.com/aperturerobotics/protobuf-go-lite
|
||||
[GoDoc Widget]: https://godoc.org/github.com/aperturerobotics/protobuf-go-lite?status.svg
|
||||
[Go Report Card Widget]: https://goreportcard.com/badge/github.com/aperturerobotics/protobuf-go-lite
|
||||
[Go Report Card]: https://goreportcard.com/report/github.com/aperturerobotics/protobuf-go-lite
|
||||
[DeepWiki Widget]: https://img.shields.io/badge/DeepWiki-aperturerobotics%2Fprotobuf--go--lite-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==
|
||||
[DeepWiki]: https://deepwiki.com/aperturerobotics/protobuf-go-lite
|
||||
|
||||
@@ -88,6 +86,9 @@ Summary of the packages provided by this module:
|
||||
* [`cmd/protoc-gen-go-lite`](https://pkg.go.dev/github.com/aperturerobotics/protobuf-go-lite/cmd/protoc-gen-go-lite):
|
||||
The `protoc-gen-go-lite` binary is a protoc plugin to generate a Go protocol
|
||||
buffer package.
|
||||
* [`registry`](https://pkg.go.dev/github.com/aperturerobotics/protobuf-go-lite/registry):
|
||||
Package `registry` indexes generated message constructors and custom
|
||||
message options without runtime reflection.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -128,6 +129,37 @@ Both modes are selected at generation time and produce normal Go packages for
|
||||
callers. They do not add a reflection registry, descriptor builder, struct tag
|
||||
interpreter, or runtime type-metadata dependency to generated fast paths.
|
||||
|
||||
### Opt-in message registry
|
||||
|
||||
Generated packages do not register message types by default. Add `registry=true`
|
||||
to `--go-lite_opt` when an application must discover linked message types at
|
||||
runtime:
|
||||
|
||||
```
|
||||
protoc --go-lite_out=. --go-lite_opt=features=all,registry=true example.proto
|
||||
```
|
||||
|
||||
The registry requires the `size`, `marshal`, and `unmarshal` features. Each
|
||||
generated package registers constructors by fully qualified protobuf name and
|
||||
`google.protobuf.Any` type URL during package initialization. The generator
|
||||
also flattens custom message options into fully qualified scalar paths:
|
||||
|
||||
```go
|
||||
registry.Range(func(entry registry.Entry) bool {
|
||||
tenant, tenantOK := entry.Option("annotations.msg_opts.tenant")
|
||||
table, tableOK := entry.Option("annotations.msg_opts.table")
|
||||
if tenantOK && tableOK {
|
||||
messagesByKey[tenant+"."+table] = entry
|
||||
}
|
||||
return true
|
||||
})
|
||||
```
|
||||
|
||||
Repeated option values retain declaration order. Message-valued options use
|
||||
dot-separated field paths, and enum values use their protobuf names. The
|
||||
registry copies option metadata on registration and returns sorted snapshots to
|
||||
callers.
|
||||
|
||||
### Generated output
|
||||
|
||||
Generated `.pb.go` files are checked in for this repository's fixtures and
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"lockfileVersion": 2,
|
||||
"configVersion": 1,
|
||||
"workspaces": {
|
||||
"": {
|
||||
"devDependencies": {
|
||||
"@aptre/protobuf-es-lite": "1.1.1",
|
||||
},
|
||||
},
|
||||
},
|
||||
"packages": {
|
||||
"@aptre/protobuf-es-lite": ["@aptre/protobuf-es-lite@1.1.1", "", { "dependencies": { "@typescript/vfs": "^1.5.0", "lz-string": "^1.5.0", "typescript": "5.9.3" }, "bin": { "protoc-gen-es-lite": "bin/protoc-gen-es-lite" } }, "sha512-4+ws50UhTuAovafwFnJ+0I41HRWEfgLajPfID1v2UUlczxaLxDK117bG4QLaxlDxm8z4QxD5op/sPB1BzWC4Ug=="],
|
||||
|
||||
"@typescript/vfs": ["@typescript/vfs@1.6.4", "", { "dependencies": { "debug": "^4.4.3" }, "peerDependencies": { "typescript": "*" } }, "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ=="],
|
||||
|
||||
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
|
||||
|
||||
"lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="],
|
||||
|
||||
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||
|
||||
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"private": true,
|
||||
"aptre": {
|
||||
"languages": ["go", "ts"],
|
||||
"notes": "descriptorpb, apipb, and pluginpb are excluded until protobuf-es-lite exports descriptor support."
|
||||
},
|
||||
"devDependencies": {
|
||||
"@aptre/protobuf-es-lite": "1.1.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
vendor/github.com/pierrec/lz4/v4/LICENSE whitespace=-blank-at-eof
|
||||
vendor/github.com/pierrec/lz4/v4/compressing_reader.go whitespace=-blank-at-eol
|
||||
@@ -3,6 +3,8 @@ test/test.coverage
|
||||
test/piggie/piggie
|
||||
test/phaul/phaul
|
||||
test/phaul/phaul.coverage
|
||||
test/inheritfd/inheritfd
|
||||
test/inheritfd/inheritfd.coverage
|
||||
test/loop/loop
|
||||
test/mmapper/mmapper
|
||||
test/crit/crit-test
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
Adrian Reber <areber@redhat.com>
|
||||
Kouame Behouba Manasse <behouba@gmail.com>
|
||||
Kir Kolyshkin <kolyshkin@gmail.com>
|
||||
Prajwal S N <prajwalnadig21@gmail.com>
|
||||
Radostin Stoyanov <rstoyanov@fedoraproject.org>
|
||||
+1
@@ -13,6 +13,7 @@ build: rpc/rpc.pb.go stats/stats.pb.go
|
||||
$(MAKE) -C crit bin/crit
|
||||
|
||||
test: build
|
||||
$(GO) test -v .
|
||||
$(MAKE) -C test
|
||||
|
||||
coverage:
|
||||
|
||||
+73
-1
@@ -41,13 +41,84 @@ or to just check if at least a certain CRIU version is installed:
|
||||
result, err := c.IsCriuAtLeast(31100)
|
||||
```
|
||||
|
||||
### Plugin options
|
||||
|
||||
Set `rpc.CriuOpts.PluginOptions` to pass options to CRIU plugins for each
|
||||
request. Each entry uses `PLUGIN.NAME[=VALUE]` syntax, without leading `--`
|
||||
or the CLI's `--plugin-option=` prefix. For example, add CUDA options to
|
||||
otherwise configured dump options:
|
||||
|
||||
```go
|
||||
opts.PluginOptions = []string{
|
||||
"cuda_plugin.backend=cuda-checkpoint",
|
||||
"cuda_plugin.timeout=600",
|
||||
}
|
||||
if err := c.Dump(opts, nil); err != nil {
|
||||
return err
|
||||
}
|
||||
```
|
||||
|
||||
For restore, set options on the restore request:
|
||||
|
||||
```go
|
||||
restoreOpts.PluginOptions = []string{
|
||||
"cuda_plugin.backend=driver-api",
|
||||
"cuda_plugin.device-map=auto",
|
||||
}
|
||||
if err := c.Restore(restoreOpts, nil); err != nil {
|
||||
return err
|
||||
}
|
||||
```
|
||||
|
||||
CUDA supports these options in CRIU builds that provide the corresponding
|
||||
plugin functionality:
|
||||
|
||||
- `cuda_plugin.backend`: `auto` (the default), `driver-api`, or
|
||||
`cuda-checkpoint`.
|
||||
- `cuda_plugin.timeout`: a nonnegative number of seconds, with `0` (the
|
||||
default) meaning unlimited. This limits CLI helper invocations; it does
|
||||
not impose a deadline on in-process Driver API calls. It is separate from
|
||||
`CriuOpts.Timeout`, which controls task freezing and the native CUDA lock
|
||||
timeout.
|
||||
- `cuda_plugin.device-map`: `auto` or explicit mappings such as `0=1,1=0`.
|
||||
This option is valid only for restore.
|
||||
|
||||
The slice preserves option order, including repeated keys. CRIU validates
|
||||
option syntax, and each plugin interprets its recognized settings. Options
|
||||
belong to the supplied `CriuOpts`; use separate options for dump and restore,
|
||||
or replace the slice when reusing an options object.
|
||||
|
||||
The CRIU executable must support the `plugin_options` RPC field and have the
|
||||
required plugin installed and available. Older CRIU builds may silently
|
||||
ignore the unknown protobuf field, so request success alone does not prove
|
||||
that the options were applied. `FeatureCheck` currently has no capability
|
||||
flag for plugin options. Verify the CRIU build and plugin support used by
|
||||
your application.
|
||||
|
||||
## CRIT
|
||||
|
||||
The `crit` package provides bindings to decode, encode, and manipulate
|
||||
The `crit` package provides bindings to decode, encode, compress, and decompress
|
||||
CRIU image files natively within Go. It also provides a CLI tool similar
|
||||
to the original CRIT Python tool. To get started with this, see the docs
|
||||
at [CRIT (Go library)](https://criu.org/CRIT_%28Go_library%29).
|
||||
|
||||
Compression commands process one checkpoint directory at a time. For an
|
||||
incremental chain, pass its newest checkpoint: the directory that no other
|
||||
checkpoint uses as a parent. Compressing an older layer is unsupported because
|
||||
the command cannot update newer checkpoints that depend on it. A standalone
|
||||
checkpoint can be compressed normally with `crit compress DIR`.
|
||||
Compression requires a full checkpoint with `mm-<pid>.img` metadata to identify
|
||||
mappings that must remain raw. Pre-dumps are unsupported.
|
||||
By default, every replaced image is kept as a `.bak` file next to it. Remove
|
||||
those backups before transforming the same directory again, or pass
|
||||
`--in-place` to skip creating them.
|
||||
|
||||
Reading compressed checkpoint images is supported on every platform on which
|
||||
CRIT builds. The `crit compress` and `crit decompress` transforms preserve
|
||||
Linux filesystem metadata and transaction guarantees and are therefore
|
||||
available only on Linux; on other systems their Go APIs return
|
||||
`errors.ErrUnsupported`.
|
||||
|
||||
## Releases
|
||||
|
||||
The first go-criu release was 3.11 based on CRIU 3.11. The initial plan
|
||||
@@ -62,6 +133,7 @@ The following table shows the relation between go-criu and criu versions:
|
||||
|
||||
| Major version | Latest release | CRIU version |
|
||||
| -------------- | -------------- | ------------ |
|
||||
| v8 | 8.5.0 | 4.3 |
|
||||
| v8 | 8.4.0 | 4.2 |
|
||||
| v7 | 7.2.0 | 3.19 |
|
||||
| v7 | 7.0.0 | 3.18 |
|
||||
|
||||
+6
-1
@@ -41,5 +41,10 @@ func (c *Criu) FeatureCheck(features *rpc.CriuFeatures) (*rpc.CriuFeatures, erro
|
||||
return nil, errors.New("unexpected CRIU RPC response")
|
||||
}
|
||||
|
||||
return features, nil
|
||||
checkedFeatures := resp.GetFeatures()
|
||||
if checkedFeatures == nil {
|
||||
return nil, errors.New("CRIU RPC response does not contain features")
|
||||
}
|
||||
|
||||
return checkedFeatures, nil
|
||||
}
|
||||
+1719
-4596
File diff suppressed because it is too large.
Load diff
+21
@@ -151,6 +151,25 @@ message criu_opts {
|
||||
optional bool display_stats = 70;
|
||||
optional bool log_to_stderr = 71;
|
||||
optional criu_image_io_mode image_io_mode = 72 [default = IMAGE_IO_WRITEBACK];
|
||||
/*
|
||||
* Memory page compression mode (enum compress_mode):
|
||||
* 0 = off, 1 = block. Default 0.
|
||||
*/
|
||||
optional uint32 compress = 73;
|
||||
optional uint32 compress_acceleration = 74;
|
||||
optional uint32 compress_block_size = 75;
|
||||
/*
|
||||
* Worker concurrency for LZ4 decoding and eligible large zero fills.
|
||||
* 0 selects automatic concurrency; 1, the default, keeps LZ4 decoding
|
||||
* serial and disables zero-fill workers; values above 1 limit aggregate
|
||||
* worker concurrency. Active concurrency also depends on available CPUs,
|
||||
* useful batch work, and the restore-wide CPU budget. Valid range: 0
|
||||
* through 1024. Restore-time only.
|
||||
*/
|
||||
optional uint32 decompress_threads = 76 [default = 1];
|
||||
/* Plugin-owned namespaced options in PLUGIN.NAME[=VALUE] form. */
|
||||
repeated string plugin_options = 77;
|
||||
optional bool stream = 78;
|
||||
/* optional bool check_mounts = 128; */
|
||||
}
|
||||
|
||||
@@ -198,6 +217,8 @@ message criu_features {
|
||||
optional bool mem_track = 1;
|
||||
optional bool lazy_pages = 2;
|
||||
optional bool pidfd_store = 3;
|
||||
/* Memory page compression support is available in this CRIU build. */
|
||||
optional bool mem_compression = 4;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Vendored
+3
-3
@@ -4,11 +4,11 @@ cyphar.com/go-pathrs
|
||||
cyphar.com/go-pathrs/internal/fdutils
|
||||
cyphar.com/go-pathrs/internal/libpathrs
|
||||
cyphar.com/go-pathrs/procfs
|
||||
# github.com/aperturerobotics/protobuf-go-lite v0.15.0
|
||||
# github.com/aperturerobotics/protobuf-go-lite v0.19.0
|
||||
## explicit; go 1.23
|
||||
github.com/aperturerobotics/protobuf-go-lite
|
||||
# github.com/checkpoint-restore/go-criu/v8 v8.4.0
|
||||
## explicit; go 1.25.0
|
||||
# github.com/checkpoint-restore/go-criu/v8 v8.5.0
|
||||
## explicit; go 1.26.0
|
||||
github.com/checkpoint-restore/go-criu/v8
|
||||
github.com/checkpoint-restore/go-criu/v8/internal/proto
|
||||
github.com/checkpoint-restore/go-criu/v8/rpc
|
||||
|
||||
Reference in new issue
Block a user