Skip to content
This repository has been archived by the owner on Nov 15, 2024. It is now read-only.

Don't omit Xms Java opt #10

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

olivierlacan
Copy link
Member

As discussed with @drunkensway on Slack this build error occurs because -Xms (the minimum heap size) is expected to exist as the $XMS_VALUE environment variable in
java_agent/memoryConfig.sh: line 90.

This is mentioned in Java Memory Agent itself here: https://github.com/jelastic-jps/java-memory-agent#java-memory-agent-add-on-specific

Interestingly we do set Xms in .jvmopts but these seemingly aren't used inside of docker compose for example. Hence the error I observed when trying to run the latest Hydra image version (31, although the version numbers are very confusing):

2023-11-30 18:23:11 /java_agent/memoryConfig.sh: line 90: [[: 2
2023-11-30 18:23:11 2: syntax error in expression (error token is "2")

The code in question is:

  [[ $XMS_VALUE -ge $XMX_VALUE ]] && XMS=${XMX_VALUE}M

Also here: https://github.com/jelastic-jps/java-memory-agent/blob/7fdd2996319d010ac0746b0351971fbe4c752e72/scripts/memoryConfig.sh#L91

As you can see there's an expectation that the $XMS_VALUE is always set.

After supplying this env var to the hydra docker image in my docker-compose.yml, everything worked fine:

JAVA_OPTS: "-Xmx2G -Xms1G"

As discussed with @drunkensway this build error occurs
because -Xms (the minimum heap size) is expected to
exist as the `$XMS_VALUE` environment variable in
java_agent/memoryConfig.sh: line 90.

This is mentioned in Java Memory Agent itself here:
https://github.com/jelastic-jps/java-memory-agent#java-memory-agent-add-on-specific

Interestingly we do set Xms in .jvmopts but these seemingly aren't used
inside of docker compose for example. Hence the error I observed when trying
to run the latest Hydra image version (31, although the version numbers are
very confusing):

```
2023-11-30 18:23:11 /java_agent/memoryConfig.sh: line 90: [[: 2
2023-11-30 18:23:11 2: syntax error in expression (error token is "2")
```

The code in question is:

```
  [[ $XMS_VALUE -ge $XMX_VALUE ]] && XMS=${XMX_VALUE}M
```

Also here: https://github.com/jelastic-jps/java-memory-agent/blob/7fdd2996319d010ac0746b0351971fbe4c752e72/scripts/memoryConfig.sh#L91

As you can see there's an expectation that the $XMS_VALUE is always set.

After supplying this env var to the hydra docker image in my
docker-compose.yml, everything worked fine:

```
JAVA_OPTS: "-Xmx2G -Xms1G"
```
@olivierlacan
Copy link
Member Author

@drunkensway Tests failed but honestly not sure why.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants