Opensearch 2.3.0 on ARM exited with code 143

I’m wondering if anyone has seen this. Using 2.3.0 with this basic config.

config:
  opensearch.yml: |
    cluster.name: opensearch-cluster
    network.host: 0.0.0.0
    plugins.security.disabled: true

on x64 kubernetes, this works fine, but when I tried to run in ARM nodes, I get the following error in logs and it restarts.

Enabling OpenSearch Security Plugin
Killing opensearch process 10
OpenSearch exited with code 143
Performance analyzer exited with code 1

I’m using the exact same config on each, so not sure what I missed.

I have exactly the same issue with Opensearch 2.4.0 on x86_64 architectures. I’ve really no idea why opensearch is being killed, I’ve enabled docker debug mode, check syslog, … and no clue of what’s happening

version: '3'
services:
  odfe-node1:
    image: opensearchproject/opensearch:2.4.0
    container_name: odfe-node1
    environment:
      - cluster.name=odfe-cluster
      - node.name=odfe-node1
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - DISABLE_INSTALL_DEMO_CONFIG=true
      - "OPENSEARCH_JAVA_OPTS=-Xms8000m -Xmx8000m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - ...
    ports:
      - 9200:9200
      - 9600:9600
    expose:
      - "9200"
    networks:
      - ...
...
$ docker-compose up odfe-node1 
Starting odfe-node1 ... done
Attaching to odfe-node1
odfe-node1    | Disabling execution of install_demo_configuration.sh for OpenSearch Security Plugin
odfe-node1    | Enabling OpenSearch Security Plugin
odfe-node1    | Killing opensearch process 10
odfe-node1    | OpenSearch exited with code 143
odfe-node1    | Performance analyzer exited with code 0
odfe-node1 exited with code 0

OK found why I got this 143 code, it was in fact linked to the performance analyser startup failure as a configuration file (performance-analyzer.properties) was missing. And so if the performance analyzer can’t be started then opensearch is automatically killed by the startup script.

So how did you fix it? What steps? Strange it starts on x64 for me though.

Thanks

Has anyone seen this that has a fix or at least give me some pointers how to figure it out? The pod is in crashloop starting up. I’ve been trying to figure out how to get more logs using the helm values yaml , but no luck yet.

$ kubectl logs -f opensearch-cluster-master-0
Disabling execution of install_demo_configuration.sh for OpenSearch Security Plugin
Enabling OpenSearch Security Plugin
Killing opensearch process 10
OpenSearch exited with code 143
Performance analyzer exited with code 1

When I try and run the docker image locally, the only file in the logs folder is the performce-analyzer.log with the following.

uintx InitialCodeCacheSize=4096 is outside the allowed range [ 65536 ... 18446744073709551615 ]
Improperly specified VM option 'InitialCodeCacheSize=4096'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

But I don’t know why this would make the main process fail.

OK, it was the performce-analyzer killing the pod. How can I override the bad settings in the PA_AGENT_JAVA_OPTS when running docker without building my own image?

For the ARM image, the PA -XX:InitialCodeCacheSize= is set totally wrong. BUG

I opened the following

but I am still looking for a solution to my current deployment.