| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is always required by the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is primarily useful for implementing a mirror service. This change also works around the zero-dependency FloodArtifact edge case.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is a bunch of string operation and a single syscall. Do not hold up queue here.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids running into nasty surprises opening a cache that suffered unclean shutdown due to power loss. All other parts of the cache are not prone to inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This unpacks an internal/pkg archive stream used in the upcoming mirror service.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The tarArtifact predates FileArtifact pipelining. This migrates decompression and buffering into a standalone artifact implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These names are more consistent with other helper names, so rename them while the API is still internal.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Scrubbing for status predates substitutes. This change fixes scrub handling of substitute status entries.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This destroys cache entries not referred to by user-specified artifacts and optionally their inputs.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids leaving behind the substitution status path of a faulted cure.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes ongoing errors more obvious when multiple failures occur.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are useful for troubleshooting. This change records them in a separate directory.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are not created when taking the fast path, but should be inherited from the alternative.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This serves as a stopgap measure to skip long-running DCE resolutions.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This eliminates edge cases where target artifacts do not compare equal.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is significantly slower but enables much better error reporting.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This change introduces a new fast path for FloodArtifact. It is taken when a curing artifact has identical-by-content controlled relevant inputs and are otherwise identical to an already-cured artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This flag applies to every exec artifact cured by the cache. It has no effect on cure outcome.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes custom artifacts much less error-prone to use.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids disabling the artifact when using the individual cancel method. Unfortunately this makes the method blocking.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly simplifies synchronisation of access to identErr.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids disabling the artifact until cache is reopened. The same has to be implemented for Cancel in a future change.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This cancels all current pending cures without closing the cache.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables a specific artifact to be targeted for cancellation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are memory management and caching primitives. Having them as part of Cache is cumbersome and requires a temporary directory that is never used. This change isolates them from Cache to enable independent use.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is cleaner than checking cpu count during cure, it is impossible to avoid impurity in both situations but this is configurable.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The alpine linux riscv64 kernel does not enable Landlock LSM, and kernel compilation is not yet feasible.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is quite error-prone and causes cache inconsistency similar to the store inconsistency seen on nix when a similar condition happens. Keep this behind a flag in case it is ever beneficial.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is cleaner than setting it globally, and is impossible to race.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is cleaner for extending the API.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes package check portable, and removes nonportable behaviour from package pkg, pipewire, and system. All other packages remain nonportable due to their nature. No latency increase was observed due to this change on amd64 and arm64 linux.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables much easier troubleshooting of failing cures.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This was moved from internal/rosa because it is considered generally useful.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This package is not container specific, and widely used across the project.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for external tooling.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These cause build to fail to start.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids filtering some unrelated os.ErrExist.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is currently only used by execArtifact. A later patch will add additional logging facilities.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for FileArtifact processing another stream.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
For making these methods available to RContext.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly improves error resolution performance.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Reader has a non-insignificant buffer that is worth saving as well.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This should hopefully provide good separation between the artifact curing backend implementation and the (still work in progress) language. Making the IR parseable also guarantees uniqueness of the representation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This was taking way too long for early failures.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This also rearranges the ident ir to be more predictable, and avoids an obvious and somewhat easy to get into inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This alleviates scheduler overhead when curing many artifacts.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This uses the new measured reader provided by Cache. This should make httpArtifact zero-copy.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This will be fully implemented in httpArtifact in a future commit.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids blocking while not in Cure method of the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|