Centos 6 & modern docker
How to force your decomposed grand-grand dad to walk and to smile like he’s alive — some prosthetic and actuators needed.
My unlucky involvement with Docker had stumbled upon a new problem: Centos6 images no longer can build, and any attempt to run anything inside container ends with ‘exit code 136’.
With some struggles I found that I still can run dash instead of bash, and if I run bash inside centos, I got a ‘segmentation fault’. Further dmesg inspection shows:
[ 216.191596] bash[970] vsyscall attempted with vsyscall=none ip:ffffffffff600400 cs:33 sp:7ffcd9270918 ax:ffffffffff600400 si:7ffcd9271f76 di:0
[ 216.191646] bash[970]: segfault at ffffffffff600400 ip ffffffffff600400 sp 00007ffcd9270918 error 15
I found that Centos 6 is dead, decomposed and abandoned. Unfortunately, I can’t skip it, as testinfra want to work on Centos6, so it have it in test suite.
The solution
My docker runs in VM. I found that adding vsyscall=emulate
to the kernel command line (/etc/default/grub
) fix this problem, and Centos6 smiles again, even if actuators make this smile a bit noisy.
I’ve updated my playbooks to reflect this.