spiegel_podman/libpod
Ian Wienand de852ebd05 shm_lock: Handle ENOSPC better in AllocateSemaphore
When starting a container libpod/runtime_pod_linux.go:NewPod calls
libpod/lock/lock.go:AllocateLock ends up in here.  If you exceed
num_locks, in response to a "podman run ..." you will see:

 Error: error allocating lock for new container: no space left on device

As noted inline, this error is technically true as it is talking about
the SHM area, but for anyone who has not dug into the source (i.e. me,
before a few hours ago :) your initial thought is going to be that
your disk is full.  I spent quite a bit of time trying to diagnose
what disk, partition, overlay, etc. was filling up before I realised
this was actually due to leaking from failing containers.

This overrides this case to give a more explicit message that
hopefully puts people on the right track to fixing this faster.  You
will now see:

 $ ./bin/podman run --rm -it fedora bash
 Error: error allocating lock for new container: allocation failed; exceeded num_locks (20)

[NO NEW TESTS NEEDED] (just changes an existing error message)

Signed-off-by: Ian Wienand <iwienand@redhat.com>
2021-11-12 11:08:25 -05:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define Support selinux options with bind mounts play/gen 2021-09-30 12:06:18 -05:00
driver bump go module to v3 2021-02-22 09:03:51 +01:00
events logFile until flag issue 2021-08-23 12:51:56 -04:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode Add podman static build 2020-05-11 13:11:07 +02:00
lock shm_lock: Handle ENOSPC better in AllocateSemaphore 2021-11-12 11:08:25 -05:00
logs Revert "logs: adjust handling around partial log messages" 2021-09-14 11:40:13 +02:00
network Document to not set K8S envars for CNI 2021-11-12 11:08:25 -05:00
plugin bump go module to v3 2021-02-22 09:03:51 +01:00
shutdown make sure that signal buffers are sufficiently big 2021-08-17 12:10:20 +02:00
boltdb_state.go Ensure pod ID bucket is properly updated on rename 2021-09-29 16:39:29 -04:00
boltdb_state_internal.go Add --requires flag to podman run/create 2021-04-06 14:01:31 -04:00
boltdb_state_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
common_test.go bump go module to v3 2021-02-22 09:03:51 +01:00
container.go Add init containers to generate and play kube 2021-09-10 09:37:46 -04:00
container_api.go Ensure podman ps --sync functions 2021-10-19 14:13:59 -04:00
container_commit.go podman inspect show exposed ports 2021-08-24 15:44:26 +02:00
container_config.go podman inspect show exposed ports 2021-08-24 15:44:26 +02:00
container_copy_linux.go Don't use docker/pkg/archive, use containers/storage/pkg/archive 2021-10-19 15:56:35 -04:00
container_exec.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
container_graph.go implement init containers in podman 2021-08-04 14:14:36 -05:00
container_graph_test.go bump go module to v3 2021-02-22 09:03:51 +01:00
container_inspect.go sync container state before reading the healthcheck 2021-09-22 16:36:31 -04:00
container_internal.go pod/container create: resolve conflicts of generated names 2021-11-12 11:08:25 -05:00
container_internal_linux.go Set Checkpointed state to false after restore 2021-11-12 11:08:25 -05:00
container_internal_linux_test.go feat: add localhost into hosts if the networking mode is not host 2021-09-04 18:24:41 +04:30
container_internal_test.go Refactor container config 2020-07-23 10:18:14 -04:00
container_linux.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_log.go logs -f: file: fix dead lock 2021-09-07 12:46:56 +02:00
container_log_linux.go Fix a few problems in 'podman logs --tail' with journald driver 2021-11-12 11:08:25 -05:00
container_log_unsupported.go Switch eventlogger to journald by default 2021-08-23 17:59:42 -04:00
container_path_resolution.go volumes: be more tolerant and fix infinite loop 2021-11-08 10:17:06 +01:00
container_stat_linux.go podman cp: evaluate symlink correctly when copying from container 2021-03-09 10:45:15 +01:00
container_top_linux.go Bump github.com/containers/psgo from 1.5.2 to 1.6.0 2021-09-10 15:23:43 +02:00
container_validate.go implement init containers in podman 2021-08-04 14:14:36 -05:00
diff.go Implement SD-NOTIFY proxy in conmon 2021-08-20 11:12:05 +02:00
events.go Add ExecDied event and use it to retrieve exit codes 2021-06-10 14:17:41 -04:00
healthcheck.go sync container state before reading the healthcheck 2021-09-22 16:36:31 -04:00
healthcheck_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
info.go [NO NEW TESTS NEEDED] Fix off-by-one index comparision (reported by LGTM) 2021-11-12 11:08:25 -05:00
kube.go Generate Kube should not print default structs 2021-11-12 11:08:25 -05:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go fix restart always with rootlessport 2021-09-16 09:42:14 -04:00
networking_slirp4netns.go Slirp4netns with ipv6 set net.ipv6.conf.default.accept_dad=0 2021-11-12 11:08:25 -05:00
oci.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
oci_attach_linux.go libpod: fix race when closing STDIN 2021-10-19 14:08:58 -04:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_exec_linux.go libpod: fix race when closing STDIN 2021-10-19 14:08:58 -04:00
oci_conmon_linux.go Ensure podman ps --sync functions 2021-10-19 14:13:59 -04:00
oci_missing.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
oci_util.go libpod: rootful close binded ports 2021-09-16 09:42:14 -04:00
options.go InfraContainer Rework 2021-08-26 16:05:16 -04:00
pod.go libpod: do not call (*container).Config() 2021-09-29 16:39:29 -04:00
pod_api.go libpod: do not call (*container).Config() 2021-09-29 16:39:29 -04:00
pod_internal.go InfraContainer Rework 2021-08-26 16:05:16 -04:00
pod_status.go bump go module to v3 2021-02-22 09:03:51 +01:00
pod_top_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
reset.go migrate Podman to containers/common/libimage 2021-05-05 11:30:12 +02:00
runtime.go runtime: change PID existence check 2021-11-12 11:08:25 -05:00
runtime_cstorage.go Ignore mount errors except ErrContainerUnknown when cleaningup container 2021-09-29 16:39:29 -04:00
runtime_ctr.go pod/container create: resolve conflicts of generated names 2021-11-12 11:08:25 -05:00
runtime_img.go migrate Podman to containers/common/libimage 2021-05-05 11:30:12 +02:00
runtime_migrate.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_pod.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_pod_linux.go pod/container create: resolve conflicts of generated names 2021-11-12 11:08:25 -05:00
runtime_renumber.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_volume.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_volume_linux.go Volumes: Only remove from DB if plugin removal succeeds 2021-08-18 14:19:11 -04:00
state.go Rewrite Rename backend in a more atomic fashion 2021-03-02 13:30:28 -05:00
state_test.go Remove in-memory state implementation 2021-04-13 14:00:38 -04:00
stats.go stats: detect containers restart 2021-09-10 09:03:10 +02:00
storage.go turn hidden --trace into a NOP 2021-03-08 09:22:42 +01:00
util.go podman inspect show exposed ports 2021-08-24 15:44:26 +02:00
util_linux.go bump go module to v3 2021-02-22 09:03:51 +01: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 v3 2021-02-22 09:03:51 +01:00
volume.go volumes: Add support for exporting volumes to external tar 2021-08-23 20:42:41 +05:30
volume_inspect.go bump go module to v3 2021-02-22 09:03:51 +01:00
volume_internal.go Support size and inode options on builtin volumes 2021-08-02 10:32:45 -04:00
volume_internal_linux.go Support size and inode options on builtin volumes 2021-08-02 10:32:45 -04:00