-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Describe the bug
I installed kroki in our own kubernetes cluster to generate diagrams for asciidoc documents. The generation of the plantuml diagrams in kroki fails because of the plantuml implementation in Kroki.
I tried to manually run the plantuml executable in the running pod and got the following error (which is also exposed when I try to generate the documentation using kroki):
ubuntu@kroki-7599479794-2hwrz:/$ plantuml
The current machine does not support all of the following CPU features that are required by the image: [CX8, CMOV, FXSR, MMX, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, POPCNT, LZCNT, AVX, AVX2, BMI1, BMI2, FMA].
Please rebuild the executable with an appropriate setting of the -march option.
I used cat /proc/cpuinfo to get the cpu flags available from our kubernetes cluster which returns the following flags:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves avx_vnni vnmi umip waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize flush_l1d arch_capabilities
This set misses the features: SSE3, LZCNT
I think this is related to the fact that the plantuml version used by kroki is not the generic java version, but build using graalvm and during the build somehow adds these features as used optimizations.
To Reproduce
Steps to reproduce the behavior:
I guess it is hard to reproduce because this really depends on which environment this plantuml binary is executed.
I have no control over our kubernetes cluster hardware, but using the /proc/cpuinfo information I am getting the following processor information:
processor : 21
vendor_id : GenuineIntel
cpu family : 6
model : 170
model name : Intel(R) Core(TM) Ultra 7 165H
stepping : 4
Expected behavior
Plantuml can be used to generate diagrams
Screenshots
n/a
Desktop (please complete the following information):
n/a
Smartphone (please complete the following information):
n/a
Additional context
n/a