Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use 4GB Heap on Platform Workspace #1612

Merged
merged 2 commits into from
Dec 1, 2023
Merged

Conversation

jukzi
Copy link
Contributor

@jukzi jukzi commented Nov 30, 2023

After few days of doing much work in platform workspace across several repositories i use to end up in OOME.
I never could find a single point of failure, memory is allocated by jdt, platform, jgit, pde, classloader ... it seems like it just sums up
image

If anybody wants that heapdump just tell me

@jukzi
Copy link
Contributor Author

jukzi commented Nov 30, 2023

image

@HannesWell
Copy link
Member

I would even go for 4g are nowadays.

In general specifing the xmx/s in the project setup can cause trouble if one has multiple OOMPH project-streams in the workspace setup.
In such cases the ini is often just changed back and forth.

@merks
Copy link
Contributor

merks commented Nov 30, 2023

4g seems good. The task should be merged. I’ve not seen it get changed repeatedly. That would be annoying.

@HannesWell
Copy link
Member

The task should be merged. I’ve not seen it get changed repeatedly. That would be annoying.

Indeed. Sorry for the confusion.
But IIRC one cannot control which value is used.
E.g. one setup specifies 2g and one 4g, then 4g does not always win (which at least I would consider the right thing because these values are often the lower bound of the upper limit).
If I'm not mistaken again the last value applied wins.

@merks
Copy link
Contributor

merks commented Dec 1, 2023

Yes, last one wins. One would need to add special support for that particular key to interpret the value and choose the largest value while merging. I think it's specified like this:

For options that take a parameter, add a suffix to the size value: "k" or "K" to indicate kilobytes, "m" or "M" to indicate megabytes, "g" or "G" to indicate gigabytes, or "t" or "T" to indicate terabytes.

So the point here is, which one of these would win?

image

@merks
Copy link
Contributor

merks commented Dec 1, 2023

I do believe the configuration will win. But note that the Configuration is used once initially in the installer and it's parts are copied into Navigate -> Open Setup -> Installation and Navigate -> Open Setup -> Workspace where they can only be changed in the future by editing those files.

@jukzi jukzi merged commit 39e09d4 into eclipse-platform:master Dec 1, 2023
4 checks passed
@jukzi jukzi deleted the xmx branch December 1, 2023 06:57
@jukzi jukzi changed the title use 3GB Heap on Platform Workspace use 4GB Heap on Platform Workspace Dec 1, 2023
@jukzi
Copy link
Contributor Author

jukzi commented Feb 8, 2024

@merks
the platform workspace setup wants to change my XMX
image
how to update that value? I have not followed it exactly, but my impression is that it randomly changes between 2,3 and 4 GB

@merks
Copy link
Contributor

merks commented Feb 8, 2024

You can try Navigate -> Open Setup -> Workspace and copy-and-paste this

<?xml version="1.0" encoding="UTF-8"?>
<setup:EclipseIniTask
    xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
    option="-Xmx"
    value="8000m"
    vm="true"/>

That should override all other definitions of that task for that workspace. Of course pick the value/size you want....

It would be better if that task had smarts for at least some of the special/known properties to pick the highest value when merging...

@jukzi
Copy link
Contributor Author

jukzi commented Feb 8, 2024

You can try Navigate

can't we just update all conflicting setting to 4G in the repositorie(s)- wherever they are hidden?

@merks
Copy link
Contributor

merks commented Feb 8, 2024

Yes, these can all be changed:

image

jukzi pushed a commit to jukzi/eclipse.platform.releng.aggregator that referenced this pull request Feb 8, 2024
jukzi pushed a commit to jukzi/eclipse.pde that referenced this pull request Feb 8, 2024
merks pushed a commit to eclipse-pde/eclipse.pde that referenced this pull request Feb 8, 2024
jukzi pushed a commit to jukzi/eclipse.jdt that referenced this pull request Feb 8, 2024
jukzi pushed a commit to eclipse-jdt/eclipse.jdt that referenced this pull request Feb 8, 2024
merks pushed a commit to eclipse-equinox/equinox that referenced this pull request Feb 8, 2024
jukzi pushed a commit that referenced this pull request Feb 8, 2024
@HannesWell
Copy link
Member

Yes, these can all be changed:

image

Instead of adjusting all project specific setups, wouldn't it be simpler to just define it once in a parent?

@merks
Copy link
Contributor

merks commented Feb 8, 2024

Which common parent? The catalog of all Eclipse projects? 😱

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

Successfully merging this pull request may close these issues.

None yet

4 participants