summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* When refreshing libpod, if SHM locks exist, remove themMatthew Heon2019-01-04
| | | | | | | | | | | | | | | This will hopefully help cases where libpod is initialized multiple times on the same system (as on our CI tests). We still run into potential issues where multiple Podmans with multiple tmp paths try to run on the same system - we could end up thrashing the locks. I think we need a file locks driver for situations like that. We can also see about storing paths in the SHM segment, to make sure multiple libpod instances aren't using the same one. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Ensure different error messages and creating/opening locksMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Update unit tests to use in-memory lock managerMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Remove runtime lockDir and add in-memory lock managerMatthew Heon2019-01-04
| | | | | | | | | Remove runtime's lockDir as it is no longer needed after the lock rework. Add a trivial in-memory lock manager for unit testing Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Convert pods to SHM locksMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Convert containers to SHM lockingMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Add lock manager to libpod runtimeMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Move to POSIX mutexes for SHM locksMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Disable lint on SHMLock structMatthew Heon2019-01-04
| | | | | | | | Golint wants to rename the struct. I think the name is fine. I can disable golint. Golint will no longer complain about the name. Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Refactor locks package to build on non-LinuxMatthew Heon2019-01-04
| | | | | | | | Move SHM specific code into a subpackage. Within the main locks package, move the manager to be linux-only and add a non-Linux unsupported build file. Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Add an SHM-backed Lock Manager implementationMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Add interface for libpod multiprocess locksMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Improve documentation and unit tests for SHM locksMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Propogate error codes from SHM lock creation and openMatthew Heon2019-01-04
| | | | | | Also add a few more unit tests Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Add mutex invariant to SHM semaphores.Matthew Heon2019-01-04
| | | | | | | | | | | | Check value of semaphores when incrementing to ensure we never go beyond 1, preserving mutex invariants. Also, add cleanup code to the lock tests, ensuring that we never leave the locks in a bad state after a test. We aren't destroying and recreating the SHM every time, so we have to be careful not to leak state between test runs. Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Initial skeleton of in-memory locksMatthew Heon2019-01-04
| | | | Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
* Merge pull request #2045 from vrothberg/initOpenShift Merge Robot2019-01-04
|\ | | | | add init support
| * add container-init supportValentin Rothberg2019-01-04
|/ | | | | | | | | | | | | | | | | | | Add support for executing an init binary as PID 1 in a container to forward signals and reap processes. When the `--init` flag is set for podman-create or podman-run, the init binary is bind-mounted to `/dev/init` in the container and "/dev/init --" is prepended to the container's command. The default base path of the container-init binary is `/usr/libexec/podman` while the default binary is catatonit [1]. This default can be changed permanently via the `init_path` field in the `libpod.conf` configuration file (which is recommended for packaging) or temporarily via the `--init-path` flag of podman-create and podman-run. [1] https://github.com/openSUSE/catatonit Fixes: #1670 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #2071 from baude/vendorcsOpenShift Merge Robot2019-01-03
|\ | | | | vendor in new containers/storage
| * vendor in new containers/storagebaude2019-01-03
| | | | | | | | | | | | | | | | | | vendor in latest containers/storage which contains a fix for when a filesystem that overlayfs is on is ENOSPC. adding pgzip/compress as a new dep for c/s Signed-off-by: baude <bbaude@redhat.com>
* | Merge pull request #2072 from rhatdan/completionsOpenShift Merge Robot2019-01-03
|\ \ | |/ |/| Fix completions
| * Fix completionsDaniel J Walsh2019-01-03
|/ | | | | | | | | Currently completions do not work. podman generate kube and podman play kube completions broke this. Also fixed podman import to work properly. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #2065 from TomSweeneyRedHat/dev/tsweeney/troublefix1OpenShift Merge Robot2019-01-02
|\ | | | | Touch up some troubleshooting nits
| * Touch up some troubleshooting nitsTomSweeneyRedHat2019-01-02
|/ | | | Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
* Merge pull request #2068 from mheon/log_container_commandOpenShift Merge Robot2019-01-02
|\ | | | | Log container command before starting the container
| * Log container command before starting the containerMatthew Heon2019-01-02
| | | | | | | | | | | | | | Runc does not produce helpful error messages when the container's command is not found, so print the command ourselves. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | Merge pull request #2067 from mheon/fix_garbage_portsOpenShift Merge Robot2019-01-02
|\ \ | |/ |/| Use sprintf to generate port numbers while committing
| * Use sprintf to generate port numbers while committingMatthew Heon2019-01-02
|/ | | | | | | | | Casting integers to strings is definitely not correct, so let the standard library handle matters. Fixes #2066 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Merge pull request #2052 from rhatdan/sparseOpenShift Merge Robot2018-12-31
|\ | | | | Add troubleshooting for sparse files
| * Add troubleshooting for sparse filesDaniel J Walsh2018-12-30
|/ | | | | | | | | | A common failure with people building container images is the creation of large sparse files, particularly useradd creating the lastlog file. This PR Documents the failures. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #2058 from adrianreber/enable-crOpenShift Merge Robot2018-12-28
|\ | | | | Re-enable checkpoint/restore CI tests on Fedora
| * Re-enable checkpoint/restore CI tests on FedoraAdrian Reber2018-12-28
| | | | | | | | | | | | | | | | Now that the correct distribution CRIU packages are installed the checkpoint/restore tests should no longer fail. This re-enables the disabled tests on Fedora. Signed-off-by: Adrian Reber <areber@redhat.com>
* | Merge pull request #2059 from rhatdan/ociruntimeOpenShift Merge Robot2018-12-28
|\ \ | | | | | | podman build is not using the default oci-runtime
| * | podman build is not using the default oci-runtimeDaniel J Walsh2018-12-28
| |/ | | | | | | | | | | | | | | | | | | Currently if the user installs runc in an alternative path podman run uses it but podman build does not. This patch will pass the default oci runtime to be used by podman down to the image builder. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Merge pull request #2060 from rhatdan/devicesOpenShift Merge Robot2018-12-28
|\ \ | |/ |/| Fix handling of symbolic links
| * Fix handling of symbolic linksDaniel J Walsh2018-12-28
|/ | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #2051 from rhatdan/shmOpenShift Merge Robot2018-12-24
|\ | | | | Fixes to handle /dev/shm correctly.
| * Fixes to handle /dev/shm correctly.Daniel J Walsh2018-12-24
|/ | | | | | | | | | | | | | | | | | We had two problems with /dev/shm, first, you mount the container read/only then /dev/shm was mounted read/only. This is a bug a tmpfs directory should be read/write within a read-only container. The second problem is we were ignoring users mounted /dev/shm from the host. If user specified podman run -d -v /dev/shm:/dev/shm ... We were dropping this mount and still using the internal mount. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #2049 from baude/rootlessusestopOpenShift Merge Robot2018-12-24
|\ | | | | rootless tests using stop is more reliable
| * rootless tests using stop is more reliablebaude2018-12-23
| | | | | | | | | | | | | | | | | | | | | | when testing rootless containers, it is more reliable to stop a container with a zero timeout than kill a container. We made this change in non-rootless tests as well. When IO or CPU are taxed, it avoids a situation where the kill signal is sent but the container has not been able to update its status when a subsequent action occurs. Signed-off-by: baude <bbaude@redhat.com>
* | Merge pull request #2044 from rhatdan/listOpenShift Merge Robot2018-12-23
|\ \ | |/ |/| Allow alias for list, ls, ps to work
| * Allow alias for list, ls, ps to workDaniel J Walsh2018-12-23
| | | | | | | | | | | | | | | | Allow multiple alias for listing containers and images. Also fix documentation for umount and unmount Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Merge pull request #2048 from isimluk/use-idtools-parserOpenShift Merge Robot2018-12-23
|\ \ | |/ |/| Refactor: use idtools.ParseIDMap instead of bundling own version
| * Refactor: use idtools.ParseIDMap instead of bundling own versionŠimon Lukašík2018-12-23
|/ | | | | | | | | | | ParseIDMap function was extracted to idtools in https://github.com/containers/storage/pull/236 it is already used in containers/storage and buildah, it should be used in libpod as well. Signed-off-by: Šimon Lukašík <isimluk@fedoraproject.org>
* Merge pull request #2023 from rhatdan/configOpenShift Merge Robot2018-12-22
|\ | | | | Switch all references to image.ContainerConfig to image.Config
| * Switch all referencs to image.ContainerConfig to image.ConfigDaniel J Walsh2018-12-21
| | | | | | | | | | | | This will more closely match what Docker is doing. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Merge pull request #2042 from cevich/new_criu_imagesOpenShift Merge Robot2018-12-22
|\ \ | |/ |/| Use new VM images with updated CRIU
| * cirrus: Use updated images including new cruiChris Evich2018-12-21
|/ | | | | | | Also add two minor tweaks which were preventing images from building properly. Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #2033 from rhatdan/devicesOpenShift Merge Robot2018-12-21
|\ | | | | Allow users to specify a directory for additonal devices
| * Allow users to specify a directory for additonal devicesDaniel J Walsh2018-12-21
| | | | | | | | | | | | | | Podman will search through the directory and will add any device nodes that it finds. If no devices are found we return an error. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>