spiegel_podman/libpod
Ian Wienand 72cf389685 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-09 18:34:21 +11:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define Pod Volumes From Support 2021-10-01 14:09:11 -04:00
driver bump go module to v3 2021-02-22 09:03:51 +01:00
events standardize logrus messages to upper case 2021-09-22 15:29:34 -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-09 18:34:21 +11:00
logs standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
network Fix swagger definition for the new mac address type 2021-11-05 19:25:40 +01:00
plugin bump go module to v3 2021-02-22 09:03:51 +01:00
shutdown Fix CI flake on time of shutdown for API service 2021-10-12 09:53:19 -07:00
boltdb_state.go Ensure pod ID bucket is properly updated on rename 2021-09-28 14:12:18 -04:00
boltdb_state_internal.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
boltdb_state_linux.go standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
common_test.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
container.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
container_api.go Ensure podman ps --sync functions 2021-10-06 11:19:32 -04:00
container_commit.go standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
container_config.go Merge pull request #11890 from Luap99/ports 2021-11-06 10:39:16 +01:00
container_copy_linux.go Don't use docker/pkg/archive, use containers/storage/pkg/archive 2021-10-14 10:28:42 -04:00
container_exec.go libpod: add execSessionNoCopy 2021-09-29 13:44:55 +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 Merge pull request #11686 from cdoern/podDeviceOptions 2021-10-01 10:53:14 -04:00
container_internal.go pod/container create: resolve conflicts of generated names 2021-11-08 13:33:30 +01:00
container_internal_linux.go Add 'stats-dump' file to exported checkpoint 2021-11-05 16:15:00 +00: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 logging: new mode -l passthrough 2021-09-27 12:07:01 +02:00
container_log_linux.go Fix a few problems in 'podman logs --tail' with journald driver 2021-10-26 12:18:57 -04: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-10-28 16:37:33 +02: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 standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
healthcheck.go sync container state before reading the healthcheck 2021-09-22 17:40:16 +02: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-10-25 10:52:01 +02:00
kube.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go Merge pull request #11890 from Luap99/ports 2021-11-06 10:39:16 +01:00
networking_linux_test.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
networking_slirp4netns.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02: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-06 17:51:07 +02: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-06 17:51:07 +02:00
oci_conmon_linux.go oci: rename sub-cgroup to runtime instead of supervisor 2021-10-28 09:18:08 +02:00
oci_missing.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
oci_util.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
options.go Merge pull request #11890 from Luap99/ports 2021-11-06 10:39:16 +01:00
pod.go codespell code 2021-10-12 16:44:25 -04:00
pod_api.go Add --time out for podman * rm -f commands 2021-10-04 07:07:56 -04:00
pod_internal.go standardize logrus messages to upper case 2021-09-22 15:29:34 -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 Add --time out for podman * rm -f commands 2021-10-04 07:07:56 -04:00
runtime.go runtime: change PID existence check 2021-10-28 11:18:48 +02:00
runtime_cstorage.go Storage can remove ErrNotAContainer as well 2021-09-29 10:12:49 -04:00
runtime_ctr.go pod/container create: resolve conflicts of generated names 2021-11-08 13:33:30 +01:00
runtime_img.go Add --time out for podman * rm -f commands 2021-10-04 07:07:56 -04:00
runtime_migrate.go standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
runtime_pod.go Add --time out for podman * rm -f commands 2021-10-04 07:07:56 -04:00
runtime_pod_linux.go pod/container create: resolve conflicts of generated names 2021-11-08 13:33:30 +01:00
runtime_renumber.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_volume.go Add --time out for podman * rm -f commands 2021-10-04 07:07:56 -04:00
runtime_volume_linux.go Remove a volume with --force if container is running 2021-10-11 15:02:04 -04:00
state.go Rewrite Rename backend in a more atomic fashion 2021-03-02 13:30:28 -05:00
state_test.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
stats.go stats: detect containers restart 2021-09-10 09:03:10 +02:00
storage.go Storage can remove ErrNotAContainer as well 2021-09-29 10:12:49 -04:00
util.go libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
util_linux.go standardize logrus messages to upper case 2021-09-22 15:29:34 -04: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