spiegel_podman/libpod
Matthew Heon b1793d4b1f Ensure that a broken OCI spec does not break inspect
The process of saving the OCI spec is not particularly
reboot-safe. Normally, this doesn't matter, because we recreate
the spec every time a container starts, but if one was to reboot
(or SIGKILL, or otherwise fatally interrupt) Podman in the middle
of writing the spec to disk, we can end up with a malformed spec
that sticks around until the container is next started. Some
Podman commands want to read the latest version of the spec off
disk (to get information only populated after a container is
started), and will break in the case that a partially populated
spec is present. Swap to just ignoring these errors (with a
logged warning, to let folks know something went wrong) so we
don't break important commands like `podman inspect` in these
cases.

[NO NEW TESTS NEEDED] Provided reproducer involves repeatedly
rebooting the system

Backported to v4.2.0-rhel for RHBZ 2126697

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-09-23 11:38:28 -04:00
..
define Update init ctr default for play kube 2022-07-26 13:39:20 -04:00
driver bump go module to version 4 2022-01-18 12:47:07 +01:00
events fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
lock libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
logs libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
plugin libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
shutdown libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
common_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container.go Ensure that a broken OCI spec does not break inspect 2022-09-23 11:38:28 -04:00
container_api.go container wait: improve error message 2022-07-26 14:40:52 -04:00
container_commit.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_config.go podman cgroup enhancement 2022-06-24 15:39:15 -04:00
container_copy_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_exec.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
container_graph.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_graph_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_inspect.go Merge pull request #14501 from cdoern/podUTS 2022-07-06 14:51:22 +00:00
container_internal.go syncContainer: transition from stopping to exited 2022-08-10 16:46:05 -04:00
container_internal_linux.go Add container GID to additional groups 2022-09-08 15:33:29 +00:00
container_internal_linux_test.go test: use T.TempDir to create temporary test directory 2022-05-05 21:09:41 +08:00
container_internal_test.go test: fix failing TestPostDeleteHooks 2022-05-05 21:39:46 +08:00
container_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_log.go fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
container_log_linux.go fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
container_log_unsupported.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_path_resolution.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_stat_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_top_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_validate.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
diff.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
doc.go document that using libpod package directly is not supported 2022-03-23 19:05:29 +01:00
events.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
healthcheck.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
healthcheck_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
info.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
info_test.go Robust whitespace split of cpu utilization line from /proc/stat 2022-05-14 00:34:56 +00:00
kube.go Add ports and hostname correctly in kube yaml 2022-07-08 11:21:48 -04:00
mounts_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
networking_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
networking_linux_test.go enable unparam linter 2022-04-25 13:23:20 +02:00
networking_machine.go enable gocritic linter 2022-04-26 18:12:22 +02:00
networking_slirp4netns.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
oci.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_attach_linux.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_conmon_exec_linux.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_conmon_linux.go libpod: UpdateContainerStatus: do not wait for container 2022-09-12 09:20:38 +02:00
oci_missing.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_util.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
options.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
pod.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
pod_api.go Merge pull request #14501 from cdoern/podUTS 2022-07-06 14:51:22 +00:00
pod_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
pod_status.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_top_linux.go libpod/pod_top_linux.go: s/TODO/NOTE/ 2022-05-25 12:30:19 +02:00
reset.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
runtime.go Merge pull request #14789 from saschagrunert/libpod-errors 2022-07-05 07:23:22 +00:00
runtime_cstorage.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_ctr.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_img.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_migrate.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_pod.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_pod_linux.go libpod: do not lock all containers on pod rm 2022-07-26 14:42:19 -04:00
runtime_renumber.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_volume.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_volume_linux.go Use SafeChown rather then chown for volumes on NFS 2022-07-26 13:32:54 -04:00
runtime_worker.go work queue: simplify and use a wait group 2022-05-25 10:17:46 +02:00
service.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
state.go libpod: fix wait and exit-code logic 2022-06-23 09:11:57 -04:00
state_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
stats.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
storage.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util_linux_test.go Fix mismatch between log messages and behavior of libpod.LabelVolumePath. 2020-09-13 23:24:15 -04:00
util_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume.go podman volume create --opt=o=timeout... 2022-06-09 16:44:21 -04:00
volume_inspect.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
volume_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
volume_internal_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00