-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gitlab container volume frequently blocks io (hangs) until a mounted volume is accessed from within the container. #5498
Comments
Are you running as root, or rootless? If rootless, fuse-overlayfs sounds like a likely culprit. I somewhat doubt this is related to volumes. |
All deployments listed above are run as normal non-root users. Our main reason to use podman is for better security. |
Root podman does work on CentOS 8.1 podman 1.6.4. So the issue does appear to affect only "rootless" instances. A full podman exec is not necessary. The unblocking can also come from a single "podman exec -ti bash" and then use "ls /opt/gitlab" when needed. Also noted that other direct volume "ls" commands or other directories appear to unblock. Not even a "ls -ld /opt/gitlab", or "ls -ld /opt/gitlab/bin". Any subdir listing has no affect, but a "ls -ld /opt/gitlab/*" does unblock. This hang may always be related to the starting of a new service by the "runsvdir" process (noted below). |
My suspicion is definitely fuse-overlayfs now. It sounds like it's blocking on something, and then unblocking when another operation comes in. @giuseppe PTAL |
Well here's another useful update. dnf install centos-release-stream Works as expected with the new kernel. broken> cat /proc/version This seems like the nicest solution for us at the moment. |
Can you provide 'podman info' for the 1.6.4 build? I'd like to see if the
fuse-overlay version is different.
…On Mon, Mar 16, 2020, 15:15 NHRedAnt ***@***.***> wrote:
Well here's another useful update.
Appears to work correctly on CentOS 8.1 podman 1.6.4 with updated kernel
4.18.0-177.el8.x86_64.
dnf install centos-release-stream
dnf --refresh update
reboot
Works as expected with the new kernel.
broken> cat /proc/version
Linux version 4.18.0-177.el8.x86_64 ***@***.***)
(gcc version 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC)) #1
<#1> SMP Wed Feb 12 19:59:38 UTC
2020
This seems like the nicest solution for us at the moment.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#5498 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB3AOCG4KF4YJSJOOF54TVTRHZ3DTANCNFSM4LH3H3VQ>
.
|
This is from one of the CentOS 8.1 rack servers. Unfortunately this preview system upgrade to centos-release-stream needed to be reversed (due to requiring kmod-mptsas for it's older SAS controller). This is the information from that system after reverting. Once we solve the SAS issue on this server, or I'm back at work with access to the Mac VM I can check to see if this information is the same after the "centos-release-stream".
|
The first I'd be interested in a test of the new, 1.8.0 Podman with the old 0.7.2 fuse-overlayfs - I suspect that combination will work fine |
I've tried locally on Fedora with different versions of podman and fuse-overlayfs and I am not able to reproduce the hang. It could be the kernel. Can you strace the container process when the hang happens? |
We saw no problems in Fedora 30 or 31 with and without selinux. The problem occurs only in CentOS 8.1 podman 1.6.4/1.8.0/1.8.1 rootless gitlab image (most recent 3 upto gitlab/gitlab-ce:12.8.6-ce.0) with the default 8.1 kernel 4.18.0-147.5.1.el8_1.x86_64. Newer kernel (4.18.0-177.el8.x86_64) or root podman works. |
Here is the requested "podman info" from a working kernel upgraded (via centos-release-stream) CentOS 8.1 podman 1.6.4
|
A friendly reminder that this issue had no activity for 30 days. |
Since this works on newer kernel, I take it we can close this Bug? Reopen if I am mistaken |
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
During create (or run) of a complex container like "gitlab" multiple hang (IO block?) events occur when running on CentOS 8.1.1911. It does not unblock when left untouched for 12 hours. However it will immediately unblock when "ls /opt/gitlab" command is run from inside the container.
This behavior exists in the official podman 1.6.4 available on CentOS 8.1.
Same behavior occurs under CentOS 8.1 when updated the the most recent podman 1.8.1.
However we experience no such behavior when testing on Fedora 30 or Fedora 31 using their default podman 1.8.0.
CentOS platforms had SE Linux enabled and enforcing.
Fedora 30 system had selinux disabled. The Fedora 31 system had selinux enabled.
Assuming this might be related to major kernel differences, and not the unlikelyhood of a fix before 1.8.0 and reversion at 1.8.1.
CentOS 8.1 kernel: 4.18.0-147.5.1.el8_1.x86_64
Fedora30 kernel: 5.5.7-100.fc30.x86_64
Steps to reproduce the issue:
Note that the --ulimit isn't needed to show the behavior, but is to actually complete the build. Also note that it does require the host system limit is set sufficiently before execution.
Describe the results you received:
Container stops building after a dozen seconds of logged activity. The following command will allow further building, but will hang again within a few minutes. The same "ls /opt/gitlab" always releases the block.
The build completes normally if given sufficient volume access. Like using:
After correctly built "podman start gitlab" also experiences the same blocking behavior (and solution). But not as frequently as during the build. Aside from the io block the container appears to perform normally.
Describe the results you expected:
Normal processing for a few minutes until container instance provides a working gitlab.
Additional information you deem important (e.g. issue happens only occasionally):
Shell exploring or running commands that access the mounted volume appear to also release the block.
Fails similarly for all gitlab versions tested:
gitlab/gitlab-ce:12.8.6-ce.0
gitlab/gitlab-ce:12.8.5-ce.0
gitlab/gitlab-ce:12.6.8-ce.0
Output of
podman version
:Output of
podman info --debug
:Package info (e.g. output of
rpm -q podman
orapt list podman
):Additional environment details (AWS, VirtualBox, physical, etc.):
The CentOS 8.1 podman 1.8.1 information given for "broken" is a VirtualBox on a Mac, as is the Fedora 31 system that worked using podman 1.8.0.
Two separate CentOS 8.1 podman 1.6.4 physical Dell rack servers fail similarly.
The working Fedora 30 podman 1.8.0 is a physical Dell desktop system.
The text was updated successfully, but these errors were encountered: