Community
Participate
Working Groups
Created attachment 285850 [details] Visual Install from marketplace hangs and cannot be canceled. This started yesterday. I used different Eclipse installations on different networks. Strangely, the URL is HTTP and not https. The website works fine, also with http
Pressing cancel in the dialog does nothing. That should be a minimal requirement for this dialog. Also, disconnecting from the network does not force the dialog to error out. I have to forcefully kill the process.
I am currently debugging the process. Before you reset any servers, give me 15 minutes to find out where it fails.
Ok, there is a blocking io going on from which we never return. Thread [ModalContext] (Suspended) owns: BufferedInputStream (id=266) waiting for: PipedInputStream (id=267) Object.wait(long, int) line: not available [native method] PipedInputStream(Object).wait(long) line: 221 PipedInputStream.read() line: 326 PipedInputStream.read(byte[], int, int) line: 377 FileReader$1.read(byte[], int, int) line: 332 BufferedInputStream.fill() line: 252 BufferedInputStream.read1(byte[], int, int) line: 292 BufferedInputStream.read(byte[], int, int) line: 351 BufferedInputStream(FilterInputStream).read(byte[]) line: 107 FallbackTransportFactory$FallbackTransport.tryBuffer(BufferedInputStream) line: 119 FallbackTransportFactory$FallbackTransport.primaryFailed(URI, IProgressMonitor, Exception) line: 133 FallbackTransportFactory$FallbackTransport.stream(URI, IProgressMonitor) line: 97 DefaultCatalogService(RemoteMarketplaceService<T>).processRequest(String, String, boolean, IProgressMonitor) line: 165 DefaultCatalogService(RemoteMarketplaceService<T>).processRequest(String, boolean, IProgressMonitor) line: 130 DefaultCatalogService(RemoteMarketplaceService<T>).processRequest(String, IProgressMonitor) line: 117 DefaultCatalogService.listCatalogs(IProgressMonitor) line: 53 AbstractMarketplaceWizardCommand.lambda$0(AtomicReference, IProgressMonitor) line: 169 0000000000000000.run(IProgressMonitor) line: not available ModalContext$ModalContextThread.run() line: 122
Created attachment 285853 [details] mpc httpclient initialization error The issue is caused by an httpclientservice implementation issue
Right. It was caused by a faulty user-installed plugin that exported the wrong version of o.a.commons.logging. All httpclient related code was upset by this change (which in turn was used by mpc, git, p2, etc..). The code is not robust enough to handle this break (missing commons-logging) but ultimately it was not Eclipse.
Hey Wim, thanks for the detailed analysis and your conclusion. However, I'm thinking, since we maintain our OSGi bundling for the httpclient library ourselves in Orbit, if we can't do a better job of expressing our expected version of o.a.commons.logging so this doesn't happen (or at least breaks early and visibly). To that end, can you say which plugin (+version) caused the breakage, or how it specified its of o.a.commons.logging export?
Also, I think the MPC dialog should do a better job at degrading / failing instead of blocking the dialog. So I'm going to reopen and move this to the MPC project if you don't mind.
Reopened as MPC bug
Created attachment 285858 [details] A project to provoke the issue (In reply to Carsten Reckord from comment #7) > Also, I think the MPC dialog should do a better job at degrading / failing > instead of blocking the dialog. So I'm going to reopen and move this to the > MPC project if you don't mind. No, brilliant. Let me write up the complete issue now I have still everything fresh. The issue was caused by a plugin that stated to export org.apache.commons.logging 1.7.5 but that jar actually contains commons.logging 1.1.1 I could see in the run configuration that there were issues, and it may be exceptional, but it should not lockup Eclipse. To duplicate: set a breakpoint in FallbackTransportFactory 74 (a breakpoint file with all the nice landmarks is in the project :) 1. Restore the attached bundle 2. include it in a plain eclipse (with mpc) 3. Run with this bundle (you see httpclient and other bundlers complaining) 4. Start Marketplace from the menu Eventually there is a NPE from httpclient which causes a jump into line 97 of FallbackTransportFactory. Stepping into primaryFailed you will see that tryBuffer method will block forever.