- This topic has 8 replies, 2 voices, and was last updated 1 year, 4 months ago by Brian Fernandes.
-
AuthorPosts
-
GregoryParticipantMyEclipse Enterprise Workbench
Version: 2023.1.1
Build id: 16.0.0-20230614
Windows 11, latest versionAfter updating to this version, now it fails to start properly. The window comes up, but the background threads (dozens of them) for Spring Boot Language Servers prevent any work being done – clicking just causes the window to freeze up and then flash.
There was a bug in STS 4.17, fixed in 4.17.1, that may have related, but this version of Eclipse includes version 4.18, so one would hope it wouldn’t be back.
I can’t see/change any preferences, as I can’t interact with the IDE window after it opens, due to these background threads.
My system is an 8 core i7, background threads shouldn’t be an issue.
I’m currently unable to work.
Thoughts?
Brian FernandesModeratorGregory,
Sorry to hear you’re running into this. Yes, we do have STS 4.18 integrated in which the bugs you mention should be fixed (appreciate the reference). We’ve been trying to replicate this locally, but have so far been unable to.
1) I’m assuming you updated from MyEclipse 2022?
2) Can you send us a screenshot of the threads in the progress view please? (just want to be sure of the exact jobs running)
3) Approximately how many Spring Boot projects do you have in your workspace?
4) When you get into this state, can you please get us a few thread dumps (sent to different files of course) so we can see where things are going south? This is really key to help us get to the root of this issue.To get dumps, please execute
jstack -l PID > dump1.txt
Where jstack can be found in the
bin
directory of any JDK, even in[MyEclipse Install Directory]/binary/com.azul.zulu.jdk174.win32.x86_64_1.17.4/bin
andPID
is the process ID of the MyEclipse executableYou can mail the dumps to support@genuitec.com
Hope to be able to figure this out with your help, thanks!
GregoryParticipant1. Yes, upgraded in place from ME 2022 via the built-in notification.
2. progress view screenshot attached. The list gets longer the longer the IDE is open. That was after about 15 minutes, a couple minutes later it was 50% longer. Then it goes down some, then back up.
3. I have only one Spring Boot project, and maybe 6 other non-Spring/Spring Boot Java projects open, that’s all.
4. myeclipse.exe PID doesn’t have the Java DLL loaded (Windows, obviously), so jstack can’t dump anything from it. It owns 2 long-running processes, Java.exe and javaw.exe. I’ve attached 3 dumps for each of those.
There is also a 3rd (and sometimes 4th) Java process that is short-lived and constantly re-spawning, I can’t catch it running long enough to type in the PID and get a dump. That is likely the process spawned by the problem code.
I’ll send the dumps to the support email as well.
Attachments:
You must be logged in to view attached files.
GregoryParticipantFor now, disabling all languages in the Language Servers preferences page stopped the unending thread spawning:
https://stackoverflow.com/questions/54354708/how-to-disable-eclipse-ide-language-server
However that’s only a stopgap, as that functionality is actually useful at times.
Brian FernandesModeratorGregory,
Thank you for the prompt response – the screenshot and the dumps definitely help! We’re investigating this at high priority and will let you know as soon as an update is available with the fix. Do let use know if you experience any other issues with this release.
Brian FernandesModeratorGregory,
As we research this issue further, we think you’re most likely running into the issue covered here: https://github.com/spring-projects/sts4/issues/925
Given the nature of this particular problem, we’re not too sure the latest STS releases will actually have it 100% fixed, but we are continuing our investigation. Unfortunately, we’re still unable to reproduce the problem locally.
Could you try the following:
1) Re-enable the language servers and restart MyEclipse. Does the problem recur?
2) If it does, instead of disabling the language servers, can you go to Preferences > Frameworks > Spring > Boot General and disable the,Start Language Server at startup if Spring Boot is a dependency
option. Now, restart MyEclipse – do you still see the problem?The benefit of this approach is that it will keep the multiple processes from spawning at startup (which is where we believe the primary problem lies) while still allowing you to benefit from most (if not all) the features the Spring language servers provide.
I realize this is not something easily done, but we would really appreciate it if you could give it a shot and let us know how it works out.
Thanks!
GregoryParticipantI re-enabled only 3 of the language servers and re-started MyEclipse. The only ones enabled were for Spring-specific configuration file types, none of which I have open by default in an editor. The issue persisted for a minute or so, then stopped. So it appears related to the number of language servers enabled.
I then enabled a dozen more including a Java source file language server, and disabled the start at startup option (#2 in your comment).
I have a Java source file open and with focus on startup. I do not see the progress jobs, but I do see the heap usage growing until GC and the cursor blinks from a pointer to a spinner and back every few seconds (~3S). Heap growth reports in 24-64MB chunks along the same intervals.
After several minutes, this activity appears to stop. At this point I noticed UI/editor responsiveness improved – I’d thought it was just app bloat, but it turns out the background threads, even though they appeared short lived and did not register in the progress view, had a noticeable impact on usability until they finished or died.
Note I specifically did not enable multiple language servers for the same file types – the default of all checked has many overlapping language servers, which seems to me could contribute to an issue, if only due to the added complexity when editing a file of knowing which one wins, or, if multiple at once are allowed, in what order and how not to trigger one another in a loop.
GregoryParticipantupdate: eventually after opening more Java source files the background jobs returned in the progress window, and behaved like before. I’ll need to disable language servers for file types I actually use.
Brian FernandesModeratorGregory,
As we discussed on the ticket, we’ve updated the integrated STS version from 4.18 to 4.19 in the 2023.1.2 release. While we were unable to reproduce the problem you experienced at our end (we did try a lot), there have been several fundamental changes in how these jobs are scheduled and managed in the update. We hope these changes address the issue, and you’re able to turn the Language Servers back on.
For more on this release, please see: https://www.genuitec.com/myeclipse-2023-1-2-summer-fixes/
Thanks!
-
AuthorPosts