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

博客讨论了在不同操作系统和架构(如arm64 CentOS 7.6, arm64 Ubuntu 18.04, x86 CentOS 7.6)上启动容器时遇到的JVM栈大小问题。错误信息提示栈大小设置过小,至少需要328k。通过分析openjdk-1.8.0源代码,发现最小栈大小受StackYellowPage、StackRedPage、StackShadowPage及页面大小等因素影响。不同平台的页面大小差异导致了最小栈大小计算的不同,例如arm64 CentOS 7.6需要328k,而arm64 Ubuntu 18.04只需164k。因此,arm64 CentOS 7.6无法启动使用-Xss256k选项的Cassandra和Radar Docker镜像。

被折叠的 条评论
为什么被折叠?



