11518 Commits

Author SHA1 Message Date
4f0a080fdc compose test: diagnose flakes v3
From the debug output we know that rootlesskit does not bind the port
correctly. The rootlesskit port forwarder has a quite a few debug
statements so lets see the debug log when the test fails. Also check
if it binded the port inside the rootless cni namespace.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-04-15 20:05:39 +02:00
b074e80351 Merge pull request #10035 from pablofsf/volume-chown-docs
[CI:DOCS] Update documentation of podman-run to reflect volume "U" option
2021-04-15 09:32:35 -04:00
0a13b1a245 Merge pull request #10040 from containers/dependabot/go_modules/github.com/rootless-containers/rootlesskit-0.14.2
Bump github.com/rootless-containers/rootlesskit from 0.14.1 to 0.14.2
2021-04-15 09:25:37 -04:00
405331ff90 Merge pull request #10032 from nalind/trace-level
Recognize "trace" logging, and use it for lone errors at exit
2021-04-15 09:08:37 -04:00
b2a3bb4a61 Merge pull request #10034 from rhatdan/build
Fix flake on failed podman-remote build : try 2
2021-04-15 07:18:35 -04:00
495adab26c Bump github.com/rootless-containers/rootlesskit from 0.14.1 to 0.14.2
Bumps [github.com/rootless-containers/rootlesskit](https://github.com/rootless-containers/rootlesskit) from 0.14.1 to 0.14.2.
- [Release notes](https://github.com/rootless-containers/rootlesskit/releases)
- [Commits](https://github.com/rootless-containers/rootlesskit/compare/v0.14.1...v0.14.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-15 07:59:56 +00:00
df6c7c2ae5 Merge pull request #10031 from edsantiago/compose_test_flakes_again
compose test: ongoing efforts to diagnose flakes
2021-04-14 18:01:51 -04:00
693352c841 Update documentation of podman-run to reflect volume "U" option
The "U" option is accepted by `--volume` in `podman-build`,
but documentation is missing

Signed-off-by: Pablo Correa Gómez <ablocorrea@hotmail.com>
2021-04-14 23:55:07 +02:00
855a5a89dd Fix flake on failed podman-remote build : try 2
This time we are checking if the function actually succeeded,
otherwise we will report an error.

Also if we did not get the id, report unexpected failure.

[NO TESTS NEEDED] Still no good way to test this, but manually.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-14 16:51:13 -04:00
9f36efda37 Merge pull request #10030 from rhatdan/build
Fix flake on failed podman-remote build
2021-04-14 15:34:51 -04:00
a7bbb78c8d Merge pull request #10028 from edsantiago/bats
System tests: fix racy podman-inspect
2021-04-14 15:12:51 -04:00
1cf2b3eb28 compose test: ongoing efforts to diagnose flakes
Yay, we got a failure with the new code (#10017). It shows
one ECONNRESET followed by a lot of ECONNREFUSED over an 8-second
period (actually 15s because of the second curl retry).

My hunch: the container itself is dying. No amount of retrying
will get anything to work. So, instead of the curl retry, if
curl fails, run 'docker-compose logs', 'podman ps', and 'ss -tulpn'
and hope that one/more of those tells us something useful when
the test flakes again.

Also: DUH! Bitten by one of the most common bash pitfalls.
Checking exit status after 'local' will always be zero.
Split the declaration and the action into separate lines.

Also: if curl fails, return immediately. There's no point in
running the string output comparison.

Also: in _show_ok(), don't emit "actual/expect" messages
if both strings are empty.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-04-14 12:32:20 -06:00
bc86c50cd8 Test that we don't error out on advertised --log-level values
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-04-14 14:16:09 -04:00
6bde4d00dd At trace log level, print error text using %+v instead of %v
If we're logging at trace level, use %+v instead of %v when printing an
error at exit.  If the error included stack information, this will cause
the backtrace to be printed, which is very handy for debugging.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-04-14 13:45:36 -04:00
9b3226a80a pkg/errorhandling.JoinErrors: don't throw away context for lone errors
When our multierror contains just one error, don't extract its text only
to rewrap it, because doing so discards any stack trace information that
might have been added closer to where the error actually originated.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-04-14 13:45:36 -04:00
39a1f3a04f Recognize --log-level=trace
"trace" is a valid logrus debugging level, so we should be able to tell
the library to display messages logged at that level.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-04-14 13:45:36 -04:00
4347a62e08 Fix flake on failed podman-remote build
We have a race condition where podman build can fail
but still return an exit code of 0.  This PR ensures
that as soon as the build fails, the failed flag is set
eliminating the race.

Fixes: https://github.com/containers/podman/issues/10029

[NO TESTS NEEDED] Tests of failed builds are already in place, and
the elimination of the race should be enough.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-14 12:05:59 -04:00
4ee203dde7 Merge pull request #9945 from rhatdan/runlabel
Fix handling of $NAME and $IMAGE in runlabel
2021-04-14 10:47:50 -04:00
b130dced64 Merge pull request #10019 from alvistack/master-linux-amd64
Update nix pin with `make nixpkgs`
2021-04-14 10:14:51 -04:00
83930a03c5 System tests: fix racy podman-inspect
Add 'podman wait' between kill & inspect.

Fixes: #9751

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-04-14 08:09:20 -06:00
b5e9b30212 Merge pull request #9995 from rhatdan/debug
Fix message about runtime to show only the actual runtime
2021-04-14 09:16:50 -04:00
96ad84fd5a Merge pull request #10017 from edsantiago/compose_test_flakes_again
compose test: try to get useful data from flakes
2021-04-14 09:14:51 -04:00
defb29b72c Merge pull request #10022 from containers/dependabot/go_modules/github.com/containers/common-0.36.0
Bump github.com/containers/common from 0.35.4 to 0.36.0
2021-04-14 09:06:52 -04:00
14ec3a64d9 Merge pull request #10014 from mheon/in_memory_state_gone
Remove in-memory state implementation
2021-04-14 07:30:47 -04:00
bb01c01ef9 Bump github.com/containers/common from 0.35.4 to 0.36.0
Bumps [github.com/containers/common](https://github.com/containers/common) from 0.35.4 to 0.36.0.
- [Release notes](https://github.com/containers/common/releases)
- [Commits](https://github.com/containers/common/compare/v0.35.4...v0.36.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-14 07:59:08 +00:00
77159dbd0a Update nix pin with make nixpkgs
Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
2021-04-14 10:15:25 +08:00
31e31aa9dd compose test: try to get useful data from flakes
docker-compose test continues to flake even after #9961.
Let's try to get some useful data from the failures, by:

  * adding -S (--show-error) to curl. With just -s (--silent),
    curl is completely quiet. With -S, it displays errors.
    (Not in TAP form, but I'm OK with that)

  * oops, adding safety checks to the fix from #9961 (it
    was inadvertently clobbering the curl exit status)

And, as long as I'm in this code: logformatter was not
highlighting these results, because the '1..N' TAP line
needs to be spit out at the end. Have test-compose emit
a 'TAP' header <http://testanything.org/> and make
logformatter recognize it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-04-13 15:18:34 -06:00
4a22d6117a Merge pull request #10008 from edsantiago/bats
System tests: setup: better cleanup of stray images
2021-04-13 22:17:39 +02:00
a2bf4c58d4 Merge pull request #10004 from containers/dependabot/go_modules/github.com/containers/ocicrypt-1.1.1
Bump github.com/containers/ocicrypt from 1.1.0 to 1.1.1
2021-04-13 21:47:39 +02:00
40e5ae30d5 Remove in-memory state implementation
We originally added this in the *very early* days of Podman,
before a proper persistent state was written, so we had something
to test with. It was retained after the original SQLite state
(and current BoltDB state) were written so it could be used for
testing Libpod in unit tests with no requirement for on-disk
storage. Well, such unit tests never materialized, and if we were
to write some now the requirement to have a temporary directory
for storing data on disk is not that bad. I can basically
guarantee there are no users of this in the wild because, even if
you managed to figure out how to configure it when we don't
document it, it's completely unusable with Podman since all your
containers and pods will disappear every time Podman exits.

Given all this, and since it's an ongoing maintenance burden I no
longer wish to deal with, let's just remove it.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2021-04-13 14:00:38 -04:00
21d6b12689 Merge pull request #10000 from rhatdan/cleanup
Do not delete container twice
2021-04-13 16:33:12 +02:00
e29fee7329 Fix message about runtime to show only the actual runtime
Currently the debug line shows every runtime up until it finds
the correct one, confusing users on which runtime it is using.

Also move missing OCI runtime from containers/conf down to Debug level
and improved the debug message, to not report error.

[NO TESTS NEEDED] Since this is just debug.

Triggered by https://github.com/containers/podman/issues/4854

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-13 09:42:29 -04:00
bc2f60ad6d System tests: setup: better cleanup of stray images
Fix a corner case in basic_setup(), where we rmi stray images.
If a test tags $IMAGE and fails to rmi by tag name, cleanup
could rmi both tag name and IID, wiping out the desired image:

   podman tag $IMAGE foo
   ...
   cleanup: rmi foo $FOO_IID   [this removes $IMAGE!]

Solution: rmi by name, but only rmi by IID if != $IMAGE.

TOTH to ypu for bringing this to my attention.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-04-13 06:50:56 -06:00
481556cbee Merge pull request #10002 from jmguzik/prune-doc-update
Reflect current state of prune implementation in docs
2021-04-13 01:50:25 -07:00
24d2df7307 Bump github.com/containers/ocicrypt from 1.1.0 to 1.1.1
Bumps [github.com/containers/ocicrypt](https://github.com/containers/ocicrypt) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/containers/ocicrypt/releases)
- [Commits](https://github.com/containers/ocicrypt/compare/v1.1.0...v1.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-13 08:01:58 +00:00
9d74825c7e Reflect current state of prune implementation in docs
Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-04-13 09:16:25 +02:00
6933d4611a Merge pull request #9381 from cevich/add_make_release
Reorganize and overhaul Makefile & release archive workflows
2021-04-12 12:16:44 -07:00
ddffc7fa80 Merge pull request #9996 from giuseppe/disable-cgroupfs-rootless-on-cgroup-v2
cgroup: do not set cgroup parent when rootless and cgroupfs
2021-04-12 12:15:47 -07:00
a6fb11e34c Merge pull request #9998 from rhatdan/VENDOR
vendor in containers/storage v1.29.0
2021-04-12 11:57:44 -07:00
d40c3076ac Merge pull request #9999 from jwhonce/wip/swagger
[CI:DOCS] Correct status code for /pods/create
2021-04-12 11:56:44 -07:00
801acb01e2 Do not delete container twice
10 lines above we had

	// Set ContainerStateRemoving
	c.state.State = define.ContainerStateRemoving

Which causes the state to not be the two checked states.  Since the
c.cleanup call already deleted the OCI state, this meant that we were
calling cleanup, and hence the postHook hook twice.

Fixes: https://github.com/containers/podman/issues/9983

[NO TESTS NEEDED] Since it would be difficult to tests this.  Main tests
should handle that the container is being deleted successfully.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-12 14:54:37 -04:00
59283322e7 [CI:DOCS] Correct status code for /pods/create
Swagger documentation reported that the API endpoint /pods/create
returned 200 while the as-built code returned 201. 201 is more
correct so documentation updated.

Tests already checked for 201 so no updated needed.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-04-12 09:33:51 -07:00
7203e0a76a Merge pull request #9994 from containers/dependabot/go_modules/github.com/containers/image/v5-5.11.0
Bump github.com/containers/image/v5 from 5.10.5 to 5.11.0
2021-04-12 18:25:00 +02:00
986cd2a6a4 vendor in containers/storage v1.29.0
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-12 12:23:11 -04:00
2fad29ccb2 cgroup: do not set cgroup parent when rootless and cgroupfs
do not set the cgroup parent when running as rootless with cgroupfs,
even if cgroup v2 is used.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1947999

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-04-12 16:55:55 +02:00
3803a2630f Merge pull request #9956 from rhatdan/pinp
[CI:DOCS] Update podman image Dockerfile to support Podman in container
2021-04-12 16:43:22 +02:00
b6b0b6e8bd Overhaul Makefile binary and release worflows
* Incorporate changes from abandoned #9918: Use dedicated `bin`
  sub-directories for `windows` and `darwin` when building
  `podman-remote`.  The linux flavor remains under `bin` as before.

* Fix MacOS Documentation-generation for release-packaging.
  The `install-podman-remote-%-docs` target requires local execution
  of `podman-remote`, but it was assuming GOOS=linux.  Fix this
  by dynamically discovering the local OS/architecture type while
  still permitting cross-building of MacOS binaries under Linux.

* Unify temporary directory/file behavior to use a common template.
  In case of left-over temporary items left in the repository,
  update the `clean` target accordingly to remove them.

* Fix broken podman-remote-static and MacOS release archive targets
  mismatching the `podman-remote-%` target.  Disambiguate this target
  for all platforms by spelling each out in full, instead of using
  a wild-card recipe.

* Fix Windows-installer target to properly recognize existing
  output files and not constantly rebuild every time.

* Include the podman version number in the Windows-installer target
  in case a user downloads multiple releases.

* Include a subdirectory containing the podman version number for
  both `tar.gz` and `zip` targets.  This prevents users clobbering
  existing directories when un-archiving from releases.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-04-12 10:21:28 -04:00
a4686883b7 Reorganize Makefile with sections and guide
Over several years the podman Makefile has become a
bloated complex mess.  This impedes both debugging
and maintenance, besides causing general eye-strain.

Fix this by adding a simple navigation/layout guide, to help
developers quickly find what's needed. Re-organize the entire
file according to the new layout guide.  Add section headers
that call out the purpose of the encompassed content, and
are easy to locate with search-tools.

Note: No recipes or definitions have been altered by this
commit, only re-arranged.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-04-12 10:21:28 -04:00
0e83851f08 Simplify Makefile help target
An in-line Python script, while flexible, is arguably
more complex and less stable than the long-lived `grep`,
`awk`, and `printf`.  Make use of these simple tools
to display a column-aligned table of target and description
help output.

Also, the first target that appears in a Makefile is considered
the default (when no target is specified on the command-line).
However, despite it's name, the `default` target was not listed
first.  Fix this, and redefine "default" target to "all" as
intended, instead of "help".

Lastly, add a small workaround for a vim syntax-hilighting bug.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-04-12 10:19:51 -04:00
bd3dcb9ec4 Merge pull request #9969 from jwhonce/wip/manifests
Update manifest API endpoints
2021-04-12 16:17:22 +02:00