IDE name and version: Eclipse IDE for Java Developers 2024-12
SonarQube for Eclipse plugin version: 11.0.0.82545
Programming language you’re coding in: Java
Is connected mode used: Yes
SonarQube Cloud, SonarQube Server, or SonarQube Community Build? (if one of the latter two, which version?): SonarQube Community Edition v9.9.6 (build 92038)
And a thorough description of the problem / question:
After the update to version 11, SonarQube for Eclipse keeps opening this popup every few minutes, sometimes even several times immediately after I closed it:
The “Don’t show again” link doesn’t do what it promises, I can’t stop these popups.
The existing SonarQube issues are not shown, neither in the Java editor nor in the “SonarQube on-the-fly” view. (While before the update it worked as expected.)
Immediately after starting Eclipse and loading our quite large Java project, the log of SonarQube for Eclipse filled with over 1000 identical error entries like this (just differing in the address value):
Failed to recover to valid root, address = 16605225, file = 00000000800.xd
jetbrains.exodus.log.DataCorruptionException: DataIterator: no more bytes available, address = -1, file = 00000000000.xd
at jetbrains.exodus.log.DataCorruptionException.raise(DataCorruptionException.java:33)
at jetbrains.exodus.log.DataIterator.next(DataIterator.java:61)
at jetbrains.exodus.log.Log.readNotNull(Log.kt:481)
at jetbrains.exodus.tree.btree.BTreeBase.getLoggable(BTreeBase.java:123)
at jetbrains.exodus.tree.btree.BTreeBase.loadLeaf(BTreeBase.java:156)
at jetbrains.exodus.tree.btree.BasePageMutable.getKey(BasePageMutable.java:158)
at jetbrains.exodus.tree.btree.BasePageMutable.binarySearch(BasePageMutable.java:264)
at jetbrains.exodus.tree.btree.BasePageMutable.binarySearch(BasePageMutable.java:223)
at jetbrains.exodus.tree.btree.BasePageMutable.binarySearch(BasePageMutable.java:218)
at jetbrains.exodus.tree.btree.BottomPageMutable.put(BottomPageMutable.java:65)
at jetbrains.exodus.tree.btree.BTreeMutable.put(BTreeMutable.java:142)
at jetbrains.exodus.tree.btree.BTreeMutable.put(BTreeMutable.java:124)
at jetbrains.exodus.env.MetaTreeImpl.cloneTree(MetaTreeImpl.java:273)
at jetbrains.exodus.env.MetaTreeImpl.create(MetaTreeImpl.java:69)
at jetbrains.exodus.env.EnvironmentImpl.(EnvironmentImpl.java:131)
at jetbrains.exodus.env.Environments$newInstance$4.invoke(Environments.kt:46)
at jetbrains.exodus.env.Environments$newInstance$4.invoke(Environments.kt:46)
at jetbrains.exodus.env.Environments.prepare(Environments.kt:120)
at jetbrains.exodus.env.Environments.newInstance(Environments.kt:46)
at org.sonarsource.sonarlint.core.tracking.XodusKnownFindingsStore.buildEntityStore(XodusKnownFindingsStore.java:155)
at org.sonarsource.sonarlint.core.tracking.XodusKnownFindingsStore.(XodusKnownFindingsStore.java:95)
at org.sonarsource.sonarlint.core.tracking.KnownFindingsStorageService.get(KnownFindingsStorageService.java:41)
at org.sonarsource.sonarlint.core.tracking.TrackingService.startMatchingSession(TrackingService.java:256)
at org.sonarsource.sonarlint.core.tracking.TrackingService.onAnalysisStarted(TrackingService.java:101)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:382)
at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:254)
at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:173)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:400)
at org.sonarsource.sonarlint.core.analysis.AnalysisService.analyze(AnalysisService.java:657)
at org.sonarsource.sonarlint.core.rpc.impl.AnalysisRpcServiceDelegate.lambda$analyzeFilesAndTrack$7(AnalysisRpcServiceDelegate.java:131)
at org.sonarsource.sonarlint.core.rpc.impl.AbstractRpcServiceDelegate.lambda$requestAsync$0(AbstractRpcServiceDelegate.java:67)
at org.sonarsource.sonarlint.core.rpc.impl.AbstractRpcServiceDelegate.computeWithLogger(AbstractRpcServiceDelegate.java:135)
at org.sonarsource.sonarlint.core.rpc.impl.AbstractRpcServiceDelegate.lambda$requestAsync$1(AbstractRpcServiceDelegate.java:65)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
I tried uninstalling and reinstalling the plugin. That didn’t change anything.
thanks for reaching out. We had similar error messages regarding the JetBrains Exodus library and my colleagues are currently working on that.
Let’s try to get rid of the actual errors first. Could you please close the IDE and in your workspace rename the .sonarlint folder to something else and restart the IDE? This should regenerate all the necessary files.
If this works, we can get rid of the renamed folder, otherwise we can remove the newly generated one and get back the old one and delete only the specific storages that somehow now act up.
And thank you for the hint about Don't show again: It seems despite the errors looking similar, they differ - I will nevertheless have a look to also not show “similar” errors again.
Update: I’ve created SLE-1065 for that and will tackle it asap.
Letting the plugin rebuild the .sonarlint folder helped: I don’t get these massive errors any more, and the SonarQube issues are displayed again in Java editors and in the SonarQube on-the-fly view.
Now I just get this Exception from time to time (5x until now):
Stream failed
java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434)
at org.apache.hc.core5.reactor.IOSessionImpl.read(IOSessionImpl.java:202)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.receiveEncryptedData(SSLIOSession.java:585)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.access$000(SSLIOSession.java:74)
at org.apache.hc.core5.reactor.ssl.SSLIOSession$1.inputReady(SSLIOSession.java:200)
at org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:143)
at org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:176)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:125)
at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:92)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.base/java.lang.Thread.run(Thread.java:1583)
This feels not that severe from my POV, but may also be noteworthy for you.
thank you very much for your feedback. I’m very sorry that you ran into these issues initially.
We assume it was due to an update in one of the dependencies we did but this was not found by testing on macOS/Linux.
For the logs of the exception you’ve provided, do you have some more context or is there more shown in the Console? Or is it just happening randomly or periodically - sadly not showing any of “our” classes in the trace?
We use that library for our HTTP connections to the server etc, mind if I’m asking whether you configured any of these settings?
Hi Tobias,
it looks like the log doesn’t provide any more context for these SocketExceptions. After letting Eclipse just wait unused in the background for some time, I had 4 in a row with nothing in between. Here is the snipplet with a few normal log lines before and after:
Index files
1 file indexed
No workDir in SonarLint
Configured Java source version (sonar.java.source): 8
JavaClasspath initialization
JavaClasspath initialization (done) | time=21ms
JavaTestClasspath initialization
JavaTestClasspath initialization (done) | time=21ms
Server-side caching is not enabled. The Java analyzer will not try to leverage data from a previous analysis.
Java "Main" source files AST scan
1 source file to be analyzed
The Java analyzer cannot skip unchanged files in this context. A full analysis is performed for all files.
1/1 source file has been analyzed
Did not optimize analysis for any files, performed a full analysis for all 1 files.
Java "Main" source files AST scan (done) | time=743ms
No "Test" source files to scan.
No "Generated" source files to scan.
Available processors: 16
Using 16 threads for analysis.
Analyzing all except non binary files
1 source file to be analyzed
1/1 source file has been analyzed
Analysis detected 7 issues and 0 Security Hotspots in 14657ms
Found 7 issue(s) on project 'sp1-all'
Stream failed
java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434)
at org.apache.hc.core5.reactor.IOSessionImpl.read(IOSessionImpl.java:202)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.receiveEncryptedData(SSLIOSession.java:585)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.access$000(SSLIOSession.java:74)
at org.apache.hc.core5.reactor.ssl.SSLIOSession$1.inputReady(SSLIOSession.java:200)
at org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:143)
at org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:176)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:125)
at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:92)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.base/java.lang.Thread.run(Thread.java:1583)
Stream failed
java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434)
at org.apache.hc.core5.reactor.IOSessionImpl.read(IOSessionImpl.java:202)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.receiveEncryptedData(SSLIOSession.java:585)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.access$000(SSLIOSession.java:74)
at org.apache.hc.core5.reactor.ssl.SSLIOSession$1.inputReady(SSLIOSession.java:200)
at org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:143)
at org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:176)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:125)
at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:92)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.base/java.lang.Thread.run(Thread.java:1583)
Stream failed
java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434)
at org.apache.hc.core5.reactor.IOSessionImpl.read(IOSessionImpl.java:202)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.receiveEncryptedData(SSLIOSession.java:585)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.access$000(SSLIOSession.java:74)
at org.apache.hc.core5.reactor.ssl.SSLIOSession$1.inputReady(SSLIOSession.java:200)
at org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:143)
at org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:176)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:125)
at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:92)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.base/java.lang.Thread.run(Thread.java:1583)
Stream failed
java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434)
at org.apache.hc.core5.reactor.IOSessionImpl.read(IOSessionImpl.java:202)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.receiveEncryptedData(SSLIOSession.java:585)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.access$000(SSLIOSession.java:74)
at org.apache.hc.core5.reactor.ssl.SSLIOSession$1.inputReady(SSLIOSession.java:200)
at org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:143)
at org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:176)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:125)
at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:92)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.base/java.lang.Thread.run(Thread.java:1583)
[SYNC] Synchronizing issues for project 'de.symmedia:sp1' on branch 'master'
[SYNC] Synchronizing taint issues for project 'de.symmedia:sp1' on branch 'master'
SonarLint analysis of project sp1-all (4 files processed)...
And no, I didn’t touch any of the timeout settings that you linked to.
thanks for your reply. I asked those questions in order to see whether or not the issue you have with the SocketException is the same as HERE - it sadly is.
Maybe watch the other thread as well in order to not duplicate responses on both threads?
thanks for the link to that existing SocketException ticket, I will watch it. I agree that we don’t need to regard that issue in this ticket.
So for this ticket, my acute problem is solved - Thanks!
And what is left is just the observation that (likely related to the recent update) it might (rarely?) be necessary to rebuild the .sonarlint folder of the Eclipse workspace.
One more info: I have 5 Eclipse workspaces with different branches of the same project, and the DataCorruptionException happened in one of them only.
thanks for the additional information. I will keep this in mind - I used to work this way where we would have a workspace per branch as well and also worked with all branches in the same workspace, so a long living workspace.
The latter one at some point always led to some form of error or failure coming randomly, not necessarily due to SonarQube for IDE while having one workspace per branch worked most of the time except for long-running branches like master (not sure if the error occurred for you on a workspace with a long-running branch).
But yes I will take that with me for further investigation at some point: The .sonarlint folder contains the stored issues, connection-related information and downloaded analyzers as well as temporary directories. I could imagine a mechanism that from time to time cleans part of it to be re-build at the next IDE start - of course, and at best, without the user noticing by getting excessive logs or errors or so.
Thank you for your input, this is much appreciated