Closed bismoy2013 closed 4 years ago
In all fairness, we don't know for sure whether Lombok is the cause of the problem as @bismoy2013 has not tried whether adding/removing lombok makes a difference.
We also have not yet recieved information such as JVM stacktraces that could help us trouble-shoot and determine why the UI thread is being blocked and pinpoint a potential cause.
The problem may be caused by Lombok or it may not. We really don't know either way.
Even if Lombok is the problem, we probably need an example project to reproduce, because as it seems to affect only a minority of users, it is likely that this is caused not by Lombok in general, but by a single Lombok annotation or a special way how one annotation is used.
@janrieke I have closed the issue because I don't think I would be able to devote much time tracing logs and stuff , I can clearly understand if this issue remains unresolved because in the end it's free , be it's lombok or Spring Tool Suite . I have downloaded another version of STS provided by Martin and it was running fine, as I added lombok , it started behaving bit weirdly , just basic "method implementation" navigation by doing (Ctrl+Click on method name) , STS immediately freezes . This is an open source community , I do not have the right to judge anyone as I am not paying , but I just thought if intellij works fine , STS also should have worked out well. I am providing a link where people did discuss about lombok and STS issue in the past - https://github.com/rzwitserloot/lombok/issues/1717
Your not supposed to go through logs etc. However, it would be nice if you could give at least information that could help us reproduce the issue:
Lombok-Version: 1.18.12 STS Version : 4 Java version : OpenJDK 1.8.0_242 , did not try with others .
Hope this helps.
STS Version : 4
That is a bit vague. You can get a more precise version number by opening the 'About' dialog from the 'Help' menu. If you are not sure what to look for... click on the 'Installation Details' button in the bottom right of the dialog. Select the 'Configuration' tab and just copy-paste all the text that appears. It contains every possible information about the Eclipse installation, from the version of OS, JVM you are running to exact version of every single individual Eclipse plugin you have installed and more.
Version: 4.5.1.RELEASE Build Id: 202001211302
A very crucial bit of information still missing is which version of Eclipse the STS version is based on. In fact there are multiple builds on different versions of Eclipse for every STS release. I am guessing the version/build of Eclipse @bismoy2013 is using was based on Eclipse 4.14. I think Martin also provided him a link with a STS 4.5.1.RELEASE based on Eclipse 4.13 (the reasoning being that if Lombok was the cause it might work better on an older version of Eclipse).
@kdvolder yes this is the same STS that I downloaded from the link provided by Martin . Hope this clarifies .
I beleave the one Martin provided was based on Eclipse 4.13 whereas the 'default' distrubution downloaded from official download page would be based on Eclipse 4.14. The base Eclipse version is also displayed in the 'about' dialog. A lot of confusion could/can be avoided if you just followed my advice on copying all the info from the 'About' dialogs 'Installation Details', 'Configuration' tab. All that information and more is included there.
** System properties:
applicationXMI=org.eclipse.ui.workbench/LegacyIDE.e4xmi
awt.toolkit=sun.lwawt.macosx.LWCToolkit
com.genuitec.eclipse.theming.ui.isDark=true
com.genuitec.eclipse.theming.ui.isDevStyle=true
com.genuitec.eclipse.theming.ui.isMojaveDark=true
ds.delayed.keepInstances=true
ds.delayed.keepInstances.default=true
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=4.5.1.202001211302-RELEASE
eclipse.commands=-os
macosx
-ws
cocoa
-arch
x86_64
-showsplash
-launcher
/Applications/SpringToolSuite4.app/Contents/MacOS/SpringToolSuite4
-name
SpringToolSuite4
--launcher.library
/Applications/SpringToolSuite4.app/Contents/MacOS//../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.1100.v20190907-0426/eclipse_1902.so
-startup
/Applications/SpringToolSuite4.app/Contents/MacOS//../Eclipse/plugins/org.eclipse.equinox.launcher_1.5.500.v20190715-1310.jar
--launcher.overrideVmargs
-product
org.springframework.boot.ide.branding.sts4
-keyring
/Users/bismoymurasing/.eclipse_keyring
-vm
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib
eclipse.home.location=file:/Applications/SpringToolSuite4.app/Contents/Eclipse/
eclipse.launcher=/Applications/SpringToolSuite4.app/Contents/MacOS/SpringToolSuite4
eclipse.launcher.name=SpringToolSuite4
eclipse.p2.data.area=@config.dir/../p2/
eclipse.p2.profile=DefaultProfile
eclipse.product=org.springframework.boot.ide.branding.sts4
eclipse.startTime=1584079431922
eclipse.stateSaveDelayInterval=30000
eclipse.vm=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib
eclipse.vmargs=-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
-XX:+UseG1GC
-XX:+UseStringDeduplication
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Xdock:icon=../Resources/sts4.icns
-javaagent:/Applications/SpringToolSuite4.app/Contents/Eclipse/lombok.jar
-Djava.class.path=/Applications/SpringToolSuite4.app/Contents/MacOS//../Eclipse/plugins/org.eclipse.equinox.launcher_1.5.500.v20190715-1310.jar
equinox.init.uuid=true
file.encoding=UTF-8
file.encoding.pkg=sun.io
file.separator=/
ftp.nonProxyHosts=local|.local|169.254/16|*.169.254/16
gopherProxySet=false
gosh.args=--nointeractive
guice.disable.misplaced.annotation.check=true
java.awt.graphicsenv=sun.awt.CGraphicsEnvironment
java.awt.printerjob=sun.lwawt.macosx.CPrinterJob
java.class.path=/Applications/SpringToolSuite4.app/Contents/MacOS//../Eclipse/plugins/org.eclipse.equinox.launcher_1.5.500.v20190715-1310.jar:/Applications/SpringToolSuite4.app/Contents/Eclipse/lombok.jar
java.class.version=52.0
java.endorsed.dirs=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/lib/endorsed
java.ext.dirs=/Users/bismoymurasing/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre
java.io.tmpdir=/var/folders/ty/t18v_frd6jg82r1r4zqprk5w0000gn/T/
java.library.path=/Users/bismoymurasing/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
java.runtime.name=OpenJDK Runtime Environment
java.runtime.version=1.8.0_242-b08
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=1.8
java.vendor=AdoptOpenJDK
java.vendor.url=http://java.oracle.com/
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
java.version=1.8.0_242
java.vm.info=mixed mode
java.vm.name=OpenJDK 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.specification.version=1.8
java.vm.vendor=AdoptOpenJDK
java.vm.version=25.242-b08
line.separator=
maven.defaultProjectBuilder.disableGlobalModelCache=true
org.eclipse.debug.ui.breakpoints.toggleFactoriesUsed=true
org.eclipse.equinox.simpleconfigurator.configUrl=file:org.eclipse.equinox.simpleconfigurator/bundles.info
org.eclipse.m2e.log.dir=/Users/bismoymurasing/Documents/workspace-spring-tool-suite-4-4.5.1.RELEASE/.metadata/.plugins/org.eclipse.m2e.logback.configuration
org.eclipse.swt.internal.carbon.smallFonts=
org.eclipse.swt.internal.deviceZoom=200
org.eclipse.update.reconcile=false
org.osgi.framework.executionenvironment=OSGi/Minimum-1.0,OSGi/Minimum-1.1,OSGi/Minimum-1.2,JavaSE/compact1-1.8,JavaSE/compact2-1.8,JavaSE/compact3-1.8,JRE-1.1,J2SE-1.2,J2SE-1.3,J2SE-1.4,J2SE-1.5,JavaSE-1.6,JavaSE-1.7,JavaSE-1.8
org.osgi.framework.language=en
org.osgi.framework.os.name=MacOSX
org.osgi.framework.os.version=10.15.3
org.osgi.framework.processor=x86-64
org.osgi.framework.storage=/Applications/SpringToolSuite4.app/Contents/Eclipse/configuration
org.osgi.framework.system.capabilities=osgi.ee; osgi.ee="OSGi/Minimum"; version:List
*** System environment variables: APP_ICON_2788=../Resources/sts4.icns HOME=/Users/bismoymurasing JAVA_STARTED_ON_FIRST_THREAD_2788=1 LOGNAME=bismoymurasing PATH=/usr/bin:/bin:/usr/sbin:/sbin SHELL=/bin/zsh SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.B0dJ8BnEts/Listeners TMPDIR=/var/folders/ty/t18v_frd6jg82r1r4zqprk5w0000gn/T/ USER=bismoymurasing XPC_FLAGS=0x0 XPC_SERVICE_NAME=org.springframework.boot.ide.branding.sts4.4896 __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
I did not paste the whole thing , just the part that I believe is useful . The whole details would be too big to paste here
For eclipse it is possible to 'run an eclipse inside eclipse', in debug mode, which makes it a lot easier to profile.
However, it's not easy to do profile runs, and STS is both for the community as a while not a big prority (not nearly as commonly used as eclipse itself), nor for @rspilker or I, as we don't use it.
If someone else wants to try to find out, let me know, maybe we can help you a little bit, but most of the heavy lifting would have to be done by you (basically, we can help you get a lombokized eclipse running in a PDE eclipse, and that's as far as we can take you) – otherwise it might be a good long while before we get around this :(
Leaving it open as it is still a problem.
@rzwitserloot I understand you don't feel compelled to invest time into STS specific issue.
However, the question is whether this problem is 'STS specific' though. The truth is that I don't know. But if I were to take a wild guess, I would assume that its probably not. STS is just Eclipse with some additional plugins. So the chances are that if its a problem for STS it is a problem for any Eclipse installation with the same version of JDT.
The way to verify this and know for sure would be to try whether similar problem arises when using a plain Eclipse with Lombok. I'm not sure I can try it (well I can, but TBH I don't know if I know enough to actally be able to reproduce the problem at all).
I.m.o @bismoy2013 who is the one actually experiencing the problem would be the best placed to try whether the problem is STS specific or generally also a problem with a vanilla Eclipse + Lombok setup. I do sense his patience is wearing very thin.
Anyhow, if we can get some clear evidence that the problem is indeed STS specific, it would go a long way in convincingin me or someone else on STS team to invest the time to try and debug it.
As it is though we do not feel like it is our responsibility to debug Lombok, a tool that we do not officially support nor recommend, and do not include with our STS distribution builds. Users can of course install it on their own initiative. and far be it from us to stop them. However we do not feel responsible for problems it may cause (and their have been many instances that I can recall were Lombok did cause problems, which also part of the reason we don't really like to endorse or recommend it to our users).
@kdvolder you'll be happy to know that millions of eclipses with lombok are out there, every day. Either they're all just accepting the slowness (an extraordinary claim), or nobody is running into this (which makes it either STS specific, or it's not STS specific but nevertheless extremely exotic). It also strongly suggests just faffing about, clicking random buttons, hoping the slowdown occurs is not going to be a fruitful bug hunting exercise either. And that's the only real plan I have here (though, given that it is highly likely STS related, as so far nobody's reported eclipse slowdowns), I'd do that with an STS install and not an eclipse install.
We now have a single plausible report that lombok + some specific STS version has slowdowns, but no real formula to reproduce it. If neither team STS nor lombok currently wants to spend resources on this one, the next step is to wait for more reports, and more detailed reports.
If I or anybody else created the impression that you have a responsibility to reproduce and fix this, I apologize – you certainly do not :) open source licenses are rather explicit in disavowing merchantability and responsibility for pretty much everything.
However, users gonna user, and I'm pretty sure that the % of all lombok users that uses STS is much, much lower than the % of all STS users that uses lombok. Thus: You do not owe an explanation to lombok's maintainers. But you might owe one to STS's users.
Lombok's core maintainers are 2 people who get paid enough to work at minimum wage for a few hours a week max on lombok. I'm pretty sure team STS has more resources than that, so from a perspective of 'who has the most resources to throw at this problem', I don't feel obligated. We must triage our time to work on what's most important to the community and this just isn't making the cut; not without more details on how to reproduce this.
@rzwitserloot I can strongly confirm this is not a lombok issue. It's an internal STS issue , to confirm that I have written an email with log traces to Martin from STS team . The issue was showing up even without lombok addition.
The thing is, even if I want to help further more , I can only help till some extent , sharing personal projects for debugging purpose to external teams (like both of you) would have been too much . I hope @kdvolder agrees, after all, we are all bounded by any org's rules and guidelines !
Also , there could be many who faces this issue that we all are unaware of, but they wouldn't spend time reporting bugs here, they would easily move to an IDE that works just fine, as simple as that. Many people don't even know the right medium for addressing IDE related bugs .
@bismoy2013
I can only help till some extent , sharing personal projects for debugging purpose to external teams (like both of you) would have been too much . I hope @kdvolder agrees
Of course, it is implicit that you are the one who decides how to spend your time and how much you can and want to help, or how much information you can and want to share. However you cannot blame me for trying to get from you the information we want/need while trouble-shooting. If you cannot or don't want to give that help that is fine. But you must also understand that it limits also what we can do to fix the probems you report.
And of course the same applies to @rzwitserloot and the Lombok team.
I feel like the tone here has become a bit too negative. And a bit too much a 'us versus them' discussion. If I am partly responsible for this I apologize.
Personally, I do firmly beleave everybody involved here is trying to doing what is right, and do what they can to make things better all around. And, indeed yes, we all are faced with those same decisions on how to spend our time most productively.
BTW: I did say from the start that we could not know for sure whether Lombok was involved in this bug or not. And TBH, I would not have raised this issue here myself, without having first gathered more evidence where to appropriate place the blame (i.e. STS vs Eclipse vs Lombok). Making this determination is what I was trying to do by asking @bismoy2013 to try if the problem could be reproduced without Lombok. I.m.o the issue should not have been brought here until that step in the trouble-shooting process was done.
Anyhow, what is done is done and I am glad to see that as things stand right now, thanks to @bismoy2013 continuing to help with getting information, we do now have some confirmation that the problem happens without Lombok installed). I think that should allow us to try to debug it further without the help from Lombok team.
Refer : https://github.com/spring-projects/sts4/issues/417