eclipse-m2e / m2e-core

Eclipse Public License 2.0
112 stars 114 forks source link

Eclipse 2022-09 on Windows 10 - Maven into endless loop #1011

Open yapkm01 opened 1 year ago

yapkm01 commented 1 year ago

The situation i am facing only happens on windows laptop. No issue on Ubuntu. So far no luck on solving it. There are 2 places which Eclipse goes into "No response" mode - meaning the circle icon goes round endlessly.

a. Windows -- Preferences -- Maven -- Installation A left mouse click on the "Installation" word, Eclipse goes into endless loop

b. Run -- Run Configurations -- Maven Build. Right click the Maven Build, you'll see the "New Configuration". A left mouse click on the "New Configuration" word and Eclipse goes infinite loops.

I checked the workspace .metadata/.log and i noticed there's no new additional logs when i clicked the above. I was hoping i see additional console logs there showing the deadlock. But nothing.

I am not sure how to produce the console logs on Eclipse showing the deadlock. Any advise and also how to solve this? Thanks.

Platform: Wndows 10 Java: jdk-19

HannesWell commented 1 year ago

Could this be https://github.com/eclipse-m2e/m2e-core/issues/923? Please try the latest M2E 2.1.0 snapshot and check if this issue is resolved already: https://download.eclipse.org/technology/m2e/snapshots/2.1.0/

yapkm01 commented 1 year ago

I worked in an environment where the company does not allow access to Eclipse download site due to security regulation. So i am planning on downloading all the necessary artifacts. From your link, i am planning to download all the files from the features & plugins folders. Question is would that suffice to make it work or there are other dependencies requires? Please advise. Thanks.

HannesWell commented 1 year ago

I worked in an environment where the company does not allow access to Eclipse download site due to security regulation. So i am planning on downloading all the necessary artifacts. From your link, i am planning to download all the files from the features & plugins folders. Question is would that suffice to make it work or there are other dependencies requires? Please advise. Thanks.

That should work. To be save also download the metadata files like content.jar, artifact.jar etc. and replicate the folder structure from the download server locally. Then you can add a file-URL to your local copy of the repo as Update-Site to your Eclipse.

laeubi commented 1 year ago

AFAIK the landing page "your are close" is a PHP script (by @merks ?) that shows at https://download.eclipse.org/technology/m2e/snapshots/2.1.0/ so probably it would be a good idea to enhance that script to offers a "download as zip" button like github offers it for repositories?

mickaelistria commented 1 year ago

It's possible for consumers to use p2 mirror application to create a clone of a remote p2 repo. @yapkm01 m2e would welcome a PR modifying its Jenkinsfile so a zip is produced and published as well.

merks commented 1 year ago

@laeubi I'm not sure the details of the PHP script; the webmaster would have to provide such a thing. Of course projects are capable of creating such a zip themselves as EMF does:

It's also easy to create a mirror:

https://wiki.eclipse.org/Equinox_p2_Repository_Mirroring

HannesWell commented 1 year ago

Providing a "download as zip" button would be very convenient for such cases. It would have the advantage that it is immediately available for all p2-repos hosted at Eclipse, projects would not have to do additional build steps to set up and the same artifacts would not be stored multiple times. Therefore I would be in favor of such button over providing a zip manually.

Did any one of you already asked the web-master for this?

merks commented 1 year ago

Note though that a feature like this could easily be abused to overload the server...

merks commented 1 year ago

Maybe m2e would be interested in reusing the publishing mechanism used to produce all these sites:

I could help contribute that if interested. It build zips, limits the number of nightly builds, adds mirrors URLs to milestone builds and cleans them when a new version starts, and for a release build it promotes the most recently milestone build so you end up with the same bits that have already been well tested...

laeubi commented 1 year ago

Note though that a feature like this could easily be abused to overload the server...

It all depends on how it is implemented. For example one could generate the file once it is requested and afterwards just redirect to the generated file. Or one can create a "uncompressed zip" that is streamed to the client on the fly, then also the CPU load is very small and comparable to someone just downloading anything by hand, or limit this feature to sites below a given threshold (e.g. 50MB total size), so I think it is manageable.

Of course one way would be to generate a zip also in advance (and actually Tycho can be instructed to create such zip already), I just though about such "generate on demand" could be useful because it does not require any changes in the workflow.

HannesWell commented 1 year ago

Note though that a feature like this could easily be abused to overload the server...

What would be the difference compared to the downloads now? The compression Christoph mentioned?

Maybe m2e would be interested in reusing the publishing mechanism used to produce all these sites:

* https://download.eclipse.org/justj/jres/17/updates/

* https://download.eclipse.org/cbi/updates/p2-aggregator/tools/

* https://download.eclipse.org/cbi/updates/tpd/

* https://download.eclipse.org/oomph/simrel-extras/

I could help contribute that if interested. It build zips, limits the number of nightly builds, adds mirrors URLs to milestone builds and cleans them when a new version starts, and for a release build it promotes the most recently milestone build so you end up with the same bits that have already been well tested...

And thank you for providing the links. Those sites indeed look very nice. But I have to admit that currently I have other things with higher priority that I would like to do first. Can I reach out to you for that later? In case you are interested, m2e currently only provides a snapshots/lastest repo that reflects the current master state (so we basically limit to one already 😅). And for the release promotion we have a simple job that copies the current snapshot for the version to release from the snapshots to the releases repos: https://ci.eclipse.org/m2e/job/m2e-promote-snapshots-to-release/