Commit Graph

29617 Commits

Author SHA1 Message Date
Giuseppe Scrivano 7bed6ea5ef
devmapper: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:27 +02:00
Giuseppe Scrivano 1f09fadeb6
vfs: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:27 +02:00
Giuseppe Scrivano 2b26cbfd37
archive: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:27 +02:00
Giuseppe Scrivano 383e8e39c7
drivers: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:27 +02:00
Giuseppe Scrivano de0900aab7
types: use fileutils.{Le,E}xist()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:27 +02:00
Giuseppe Scrivano 9992cd2938
chrootarchive: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:27 +02:00
Giuseppe Scrivano 171191ec54
idtools: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:26 +02:00
Giuseppe Scrivano a6b7d66e58
overlay: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:26 +02:00
Giuseppe Scrivano 81c2f5f2d0
fileutils: use fileutils.{Le,E}xists()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:26 +02:00
Giuseppe Scrivano 336611b4d0
fileutils: new functions to check for path existence
On unix they use the access syscall which is faster than stat for
simply checking the existence of a file.

with a file in the cache I see on my machine:

$ go test -bench=.
goos: linux
goarch: amd64
pkg: github.com/containers/storage/pkg/fileutils
cpu: Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz
BenchmarkExists-12    	  925832	      1245 ns/op
BenchmarkStat-12      	  745896	      1602 ns/op
PASS

I'd expect even better results if the file is not already in the cache.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 16:07:26 +02:00
openshift-merge-bot[bot] 58bffcae18
Merge pull request #1877 from giuseppe/improve-error-code-followup
store: lock stores before calling Exists
2024-04-08 14:05:22 +00:00
Giuseppe Scrivano 721d67a49d
store: lock stores before calling Exists
we need to lock the stores for read before checking if a layer exists.

follow up for 466ee04ed7

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-08 15:40:26 +02:00
openshift-merge-bot[bot] 823d754c63
Merge pull request #1876 from containers/renovate/golang.org-x-sys-0.x
fix(deps): update module golang.org/x/sys to v0.19.0
2024-04-05 08:24:15 +00:00
renovate[bot] 68315d81f5
fix(deps): update module golang.org/x/sys to v0.19.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 20:02:26 +00:00
openshift-merge-bot[bot] ec7174b27f
Merge pull request #1873 from giuseppe/improve-error-message
store: improve error from MountImage()
2024-04-04 20:01:03 +00:00
openshift-merge-bot[bot] 59aa556988
Merge pull request #1874 from containers/dependabot/go_modules/github.com/ulikunitz/xz-0.5.12
build(deps): bump github.com/ulikunitz/xz from 0.5.11 to 0.5.12
2024-04-04 14:42:06 +00:00
Giuseppe Scrivano 466ee04ed7
store: improve error from MountImage()
improve the error message returned when MountImage() tries to use a
layer from a read-only store.

Previously it returned a simple "layer not known".

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-04 15:09:24 +02:00
dependabot[bot] 3246f11f11
build(deps): bump github.com/ulikunitz/xz from 0.5.11 to 0.5.12
Bumps [github.com/ulikunitz/xz](https://github.com/ulikunitz/xz) from 0.5.11 to 0.5.12.
- [Commits](https://github.com/ulikunitz/xz/compare/v0.5.11...v0.5.12)

---
updated-dependencies:
- dependency-name: github.com/ulikunitz/xz
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 11:42:28 +00:00
openshift-merge-bot[bot] 22f7c28078
Merge pull request #1857 from giuseppe/improve-chunked-cache-loading
chunked: use mmap to load cache files
2024-03-27 10:03:29 +00:00
openshift-merge-bot[bot] 6c835719e9
Merge pull request #1866 from containers/renovate/major-ci-vm-image
chore(deps): update dependency containers/automation_images to v20240320
2024-03-22 05:13:41 +00:00
renovate[bot] dc1a44f606
chore(deps): update dependency containers/automation_images to v20240320
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-21 20:00:49 +00:00
Giuseppe Scrivano 080dbaf67b
chunked: use mmap to load cache files
reduce memory usage for the process by not loading entirely in memory
any cache file for the layers.

The memory mapped files can be shared among multiple instances of
Podman, as well as not being fully loaded in memory.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-20 20:51:37 +01:00
Kir Kolyshkin f7e661fecc
pkg/chunked: rename metadata to cacheFile
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2024-03-20 17:40:12 +01:00
openshift-merge-bot[bot] b0c3d9650b
Merge pull request #1862 from giuseppe/composefs-no-setattrs
chunked: skip file metadata for composefs-like links
2024-03-20 15:15:45 +00:00
Giuseppe Scrivano 1126d65aa7
chunked: skip file metadata for composefs files
if the file is created using the object-store flat directory format,
there is no need to set its inodes attributes, as anyway they are
ignored when creating the composefs binary blob.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-20 15:47:38 +01:00
Giuseppe Scrivano 0f12ecea79
chunked: skip file metadata for hard links
if a file was deduplicated with a hard link, do not override its
metadata.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-20 15:47:38 +01:00
Giuseppe Scrivano f52cbe08c1
chunked: add way to skip setting file metadata
when it is set, only the file payload is written, but the inode
attributes are ignored.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-20 15:47:38 +01:00
Giuseppe Scrivano f6356d6ccd
chunked: refactor private fields to internal struct
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-20 15:47:37 +01:00
Daniel J Walsh fa36725dcb
Merge pull request #1861 from containers/dependabot/go_modules/google.golang.org/protobuf-1.33.0
build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0
2024-03-16 07:32:54 -04:00
openshift-merge-bot[bot] c38e65330c
Merge pull request #1860 from cevich/update_success
Cirrus-CI: Give success a name
2024-03-14 14:28:05 +00:00
dependabot[bot] 302edfdaf2
build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 22:57:12 +00:00
Chris Evich a403fdc830
Cirrus-CI: Give success a name
This and the referenced openshift/release PR will make prow (via the
tide bot) block merges unless the success aggregation task is green.
This must be configured independently from branch-protection rules which
tide does/can not manage due to write-only access.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-03-13 10:39:23 -04:00
openshift-merge-bot[bot] 8fbdbaaa06
Merge pull request #1858 from giuseppe/create-merged-only-if-it-doesnot-exist
overlay: create the merged path only if it does not exist
2024-03-11 20:49:11 +00:00
Giuseppe Scrivano 846f78ad56
overlay: create the merged path only if it does not exist
follow-up for ccb70a79a6

more information here: https://github.com/containers/storage/issues/1827#issuecomment-1988332922

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-11 16:08:34 +01:00
openshift-merge-bot[bot] 853cc6a368
Merge pull request #1855 from containers/dependabot/go_modules/golang.org/x/sys-0.18.0
build(deps): bump golang.org/x/sys from 0.17.0 to 0.18.0
2024-03-06 20:48:36 +00:00
dependabot[bot] 58061389c9
build(deps): bump golang.org/x/sys from 0.17.0 to 0.18.0
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.17.0 to 0.18.0.
- [Commits](https://github.com/golang/sys/compare/v0.17.0...v0.18.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 11:39:00 +00:00
openshift-merge-bot[bot] 2a79830a22
Merge pull request #1852 from TomSweeneyRedHat/dev/tsweeney/v1.53.0
Bump to v1.53.0, and then to v1.53.1-dev
2024-03-04 16:13:51 +00:00
tomsweeneyredhat cafce24367 Bump to v1.53.1-dev
As the title says.  Bumping back to a dev version.

[NO NEW TESTS NEEDED]

Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2024-03-04 10:27:47 -05:00
tomsweeneyredhat 25847515e9 Bump to v1.53.0
As the title says.  THIS is the official start of the vendor
dance for Podman v5.0.  Really!

[NO NEW TESTS NEEDED]
Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2024-03-04 10:26:34 -05:00
openshift-merge-bot[bot] bdd7d81880
Merge pull request #1850 from containers/renovate/github.com-stretchr-testify-1.x
fix(deps): update module github.com/stretchr/testify to v1.9.0
2024-03-01 18:51:14 +00:00
renovate[bot] 5c181d7079
fix(deps): update module github.com/stretchr/testify to v1.9.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-01 16:18:16 +00:00
openshift-merge-bot[bot] 7cd5d22fec
Merge pull request #1846 from giuseppe/improve-chunked-merge-heuristic
chunked: improve function to merge chunks
2024-03-01 16:17:15 +00:00
Giuseppe Scrivano 43b836e7e6
chunked: improve function to merge chunks
improve the function that combines neighbor chunks.  Instead of using
the number of parts, which also includes local files, use only the
number of chunks that must be retrieved from the network.

In addition, introduce a threshold limit to merge chunks so that we
further reduce the number of requested ranges.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-01 17:09:47 +01:00
openshift-merge-bot[bot] 226cffb1c4
Merge pull request #1784 from giuseppe/refactor-image-store
store: simplify imagestore implementation
2024-03-01 11:17:29 +00:00
Giuseppe Scrivano d1cc47658a
overlay: support imageStore with partial images
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-02-29 16:35:58 +01:00
Giuseppe Scrivano 0ab61dfb6c
store: lock both graphroot and the imagestore root
when an image store is used, lock it as well as the graphroot.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-02-29 16:35:58 +01:00
Giuseppe Scrivano 92b9480c36
store: simplify imagestore implementation
simplify the imagestore implementation and use it as a first-class
store.  It reduces the amount of code to deal with an image store in
the driver (only overlay supports it at the moment).

Closes: https://github.com/containers/storage/issues/1779

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-02-29 16:35:53 +01:00
Giuseppe Scrivano f31412a314
layers: add infra to lock multiple files
this is a preparation for the next commit, which will use this feature.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-02-29 16:34:29 +01:00
openshift-merge-bot[bot] eadc620e74
Merge pull request #1847 from ChristopherHX/no-users-overlay-xattr
Stop putting `user.overlay.*` into container layer
2024-02-29 15:13:39 +00:00
Daniel J Walsh 2509378045
Merge pull request #1848 from Luap99/revert
Revert commit that breaks podman backwards compatibility
2024-02-29 10:09:42 -05:00