mgoltzsche/podman-static

failed to get new shm lock manager: failed to create 2048 locks in /libpod_lock: no such file or directory

Poorunga opened this issue · 1 comments

Description

 The bottom layer of the Android architecture is based on the Linux kernel, so I want to run container on the Android-x86 platform, just for fun.
 I added the Linux kernel compilation option to make Android-x86 support Linux container features. I copied all Docker static executable files (such as docker, dockerd, docker-init, docker-proxy, containerd, containerd-shim, runc ...) to Android-x86. After configuration, I can be Run Docker perfectly on Android-x86.
 I think Podman is better than Docker, so I hope to use Podman on Android-x86. Similar to before, I get all statically compiled executable files through the podman-static project(https://github.com/mgoltzsche/podman-static). After compiling, I got statically compiled files: podman, buildah, comon, slirp4netns, cniplugins, runc, fuse-overlayfs, fusermount3 ... Then, I configured these files correctly. However, when I ran podman info, I encountered the error "failed to create 2048 locks in / libpod_lock"

Steps to reproduce the issue:

1.Statically compile all x86_64 executable files related to podman.

2.Use the adb push command to copy the file into Android-x86.

3.Run podman --log-level debug info command.

Describe the results you received:

DEBU[0000] Found deprecated file /etc/containers/libpod.conf, please remove. Use /etc/containers/containers.conf to override defaults. 
DEBU[0000] Reading configuration file "/etc/containers/libpod.conf" 
DEBU[0000] Using conmon: "/usr/libexec/podman/conmon"   
DEBU[0000] Initializing boltdb state at /var/lib/containers/storage/libpod/bolt_state.db 
DEBU[0000] Using graph driver                           
DEBU[0000] Using graph root /var/lib/containers/storage 
DEBU[0000] Using run root /var/run/containers/storage   
DEBU[0000] Using static dir /var/lib/containers/storage/libpod 
DEBU[0000] Using tmp dir /var/run/libpod                
DEBU[0000] Using volume path /var/lib/containers/storage/volumes 
DEBU[0000] Set libpod namespace to ""                   
DEBU[0000] cached value indicated that overlay is supported 
DEBU[0000] cached value indicated that metacopy is being used 
DEBU[0000] cached value indicated that native-diff is not being used 
WARN[0000] Not using native diff for overlay, this may cause degraded performance for building images: kernel has CONFIG_OVERLAY_FS_REDIRECT_DIR enabled 
DEBU[0000] backingFs=tmpfs, projectQuotaSupported=false, useNativeDiff=false, usingMetacopy=true 
INFO[0000] [graphdriver] using prior storage driver: overlay 
DEBU[0000] Initializing event backend file              
DEBU[0000] using runtime "/usr/local/bin/runc"          
DEBU[0000] using runtime "/bin/crun"                    
WARN[0000] Error initializing configured OCI runtime kata: no valid executable found for OCI runtime kata: invalid argument 
INFO[0000] Found CNI network podman (type=bridge) at /etc/cni/net.d/87-podman-bridge.conflist 
WARN[0000] Default CNI network name podman is unchangeable 
ERRO[0000] could not get runtime: failed to get new shm lock manager: failed to create 2048 locks in /libpod_lock: no such file or directory

Describe the results you expected:

I hope podman will work fine under Android-x86.

Output of podman version:

Version:            1.9.0
RemoteAPI Version:  1
Go Version:         go1.14.2
OS/Arch:            linux/amd64

Output of podman info --debug:

Error: could not get runtime: failed to get new shm lock manager: failed to create 2048 locks in /libpod_lock: no such file or directory

Package info (e.g. output of rpm -q podman or apt list podman):

RUNC_VERSION=v1.0.0-rc10
PODMAN_VERSION=v1.9.0
CONMON_VERSION=v2.0.15
CNI_PLUGIN_VERSION=v0.8.5
SLIRP4NETNS_VERSION=v0.4.4
LIBFUSE_VERSION=fuse-3.9.1
FUSEOVERLAYFS_VERSION=v0.4.1
BUILDAH_VERSION=v1.14.8

Additional environment details (AWS, VirtualBox, physical, etc.):

My machine: macOS High Sierra v10.13.6

Android-x86 runs in Virtualbox VM, and the Android version is Andoird 9.0 (Pie).

The Linux kernel information for Android-x86 is:

Linux localhost 4.19.80-android-x86_64-g914c6a31d738-dirty # 13 SMP PREEMPT Fri Dec 20 17:16:20 CST 2019 x86_64

Hi @Poorunga, that's a very interesting setup you're doing there. However I did not try to run it on Android. Apparently Android lacks shm support or rather does it differently.
I am looking forward to the outcome of the duplicate issue you created in the libpod project and therefore closing this one.