I have a docker environment with VNC where I want to do simulations. the simulation environment runs fine but the graoh output was missing. So i tested glxgears and it seems that glxgears only works when running as sudo. If i run it as normal user the result is:
X Error of failed request: BadShmSeg (invalid shared segment parameter)
Major opcode of failed request: 130 (MIT-SHM)
Minor opcode of failed request: 3 (X_ShmPutImage)
Segment id in failed request: 0x1a00005
Serial number of failed request: 43
Current serial number in output stream: 44
I tried the following
- adding the user to the sudo and video group,
- running the docker with --ipc=host
- comparing the shared memory between the 2 users
- running the glxgears with LIBGL_ALWAYS_INDIRECT=1
- reinstall mesa-utils (was already latest)
- compared the env variables between sudo and normal user
- test glxinfo (runs without problem)
i can not run my simulation (ros2 + gazebo) in sudo. Does anyone have another idea what i could try?
result of ipcs -l
------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18446744073709551612
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 32000
max semaphores per array = 32000
max semaphores system wide = 1024000000
max ops per semop call = 500
semaphore max value = 32767