This table indicates that all the images fail to start a container with the error message "The stack size specified is too small, Specify at least 328k".
After adjusting -Xss on arm64 Ubuntu and x86 CentOS, I find the minimal stack size per thread of each OS/architecture are different.
arm64 CentOS7.6 328k
arm64 Ubuntu18.04 164k
x86 CentOS7.6 228k
Checking openjdk-1.8.0 source code, the error is from code snippet below.
It shows min_stack_allowed
is related to StackYellowPage, StackRedPage, StackShadowPage, OS page size and VM default page size(8k). StackYellow/Red/ShadowPage could be checked with PrintFlagsFinal and page size is different corresponding to OS. Default page size of CentOS7.6 for arm64 is 64k, however, Ubuntu18.04 for arm64 and CentOS7.6 for x86 are both 4k.
arm64 CentOS7.6 64bit
min_stack_allowed = 3 * 64 + ( 2 * 8 + 1) * 8 = 328k
arm64 Ubuntu18.04 64bit
min_stack_allowed = 7 * 4 + ( 2 * 8 + 1) * 8 = 164k
x86 CentOS7.6 64bit
min_stack_allowed = 228k
That's the reason why CentOS7.6 for arm64 cannot start canssandra docker images as jvm option "-Xss256k". In order to support it, could we have some change on this option?
waiting for your reply, thanks a lot.
转载于:
Stack size is too small for arm64 platform · Issue #192 · docker-library/cassandra · GitHub