Home » Eclipse Projects » Oomph » Stuck doing something/looping around (not deadlock) in SignatureBlockProcessor
Stuck doing something/looping around (not deadlock) in SignatureBlockProcessor [message #1745411] |
Mon, 10 October 2016 13:19 |
Michael Vorburger Messages: 103 Registered: July 2009 |
Senior Member |
|
|
Hello,
I'm finding https://github.com/vorburger/opendaylight-eclipse-setup is either completely broken or got REALLY SLOW - it seems to remain "stuck" at some point in the P2 Director task, and a jstack shows it spending A LOT of time around the org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor class - some snapshots shown below. (Should be reproducible by provisioning a workspace for any of the OpenDaylight projects in the catalogue.)
Tried it several times, attempted to run with Bundle Pool switched off at the first step of the wizard, repair (nothing) and clean up the bundle pool, finally wiping ~/.p2, but no good, currently can't install anymore ..
This is with Oomph 1.5.0 Build 2617, but the problem of course could be elsewhere - in p2 code, or even in one of the external p2 sites we pull... perhaps something wrong with a signature somewhere, but which?
Last line printed in Oomph wizard UI console view after, after a full wipe of ~/.p2 (although stuck at different places earlier), is:
Downloading org.bouncycastle.bcprov
Fetching org.bouncycastle.bcprov_1.52.0.v20160915-1535.jar from http://download.eclipse.org/linuxtools/updates-docker-nightly/plugins/
This stay stuck there for over 20 min, with very high (100%) x2 CPU usage - clearly something gone wrong, IMHO.
Have any of you other Oomph users seen something like this in your own projects? Any suggestions for how to resolve, or further debug (my understanding of the inner works of p2 is VERY limited .. which other Forum / Bugzilla product would even be appropriate for org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor related issues? Equinox/p2?), or work around this?
Thanks,
M.
"Worker-31" #73 prio=5 os_prio=0 tid=0x00007f379800a800 nid=0x3a91 sleeping[0x00007f375275d000]
java.lang.Thread.State: RUNNABLE
at java.lang.String.indexOf(String.java:1769)
at java.lang.String.indexOf(String.java:1735)
at java.lang.AbstractStringBuilder.indexOf(AbstractStringBuilder.java:1348)
at java.lang.StringBuffer.indexOf(StringBuffer.java:636)
- eliminated <owner is scalar replaced> (a java.lang.StringBuffer) at java.lang.AbstractStringBuilder.indexOf(AbstractStringBuilder.java:1329)
at java.lang.StringBuffer.indexOf(StringBuffer.java:628)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.removeAll(SignatureBlockProcessor.java:463)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.stripContinuations(SignatureBlockProcessor.java:458)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.populateMDResults(SignatureBlockProcessor.java:189)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.processSigner(SignatureBlockProcessor.java:112)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.process(SignatureBlockProcessor.java:61)
at org.eclipse.osgi.internal.signedcontent.SignedBundleFile.initializeSignedContent(SignedBundleFile.java:44)
at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:215)
at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verifyContent(SignatureVerifier.java:79)
at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verify(SignatureVerifier.java:61)
at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.close(SignatureVerifier.java:108)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.reportStatus(SimpleArtifactRepository.java:1183)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:592)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:723)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:319)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:288)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:223)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:153)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:707)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-31" #73 prio=5 os_prio=0 tid=0x00007f379800a800 nid=0x3a91 sleeping[0x00007f375275d000]
java.lang.Thread.State: RUNNABLE
at java.lang.String.equalsIgnoreCase(String.java:1109)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.getDigestAlgorithmFromString(SignatureBlockProcessor.java:273)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.populateMDResults(SignatureBlockProcessor.java:201)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.processSigner(SignatureBlockProcessor.java:112)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.process(SignatureBlockProcessor.java:61)
at org.eclipse.osgi.internal.signedcontent.SignedBundleFile.initializeSignedContent(SignedBundleFile.java:44)
at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:215)
at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verifyContent(SignatureVerifier.java:79)
at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verify(SignatureVerifier.java:61)
at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.close(SignatureVerifier.java:108)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.reportStatus(SimpleArtifactRepository.java:1183)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:592)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:723)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:319)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:288)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:223)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:153)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:707)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-31" #73 prio=5 os_prio=0 tid=0x00007f379800a800 nid=0x3a91 sleeping[0x00007f375275d000]
java.lang.Thread.State: RUNNABLE
at java.lang.String.indexOf(String.java:1769)
at java.lang.String.indexOf(String.java:1735)
at java.lang.AbstractStringBuilder.indexOf(AbstractStringBuilder.java:1348)
at java.lang.StringBuffer.indexOf(StringBuffer.java:636)
- eliminated <owner is scalar replaced> (a java.lang.StringBuffer) at java.lang.AbstractStringBuilder.indexOf(AbstractStringBuilder.java:1329)
at java.lang.StringBuffer.indexOf(StringBuffer.java:628)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.removeAll(SignatureBlockProcessor.java:463)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.stripContinuations(SignatureBlockProcessor.java:458)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.populateMDResults(SignatureBlockProcessor.java:189)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.processSigner(SignatureBlockProcessor.java:112)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.process(SignatureBlockProcessor.java:61)
at org.eclipse.osgi.internal.signedcontent.SignedBundleFile.initializeSignedContent(SignedBundleFile.java:44)
at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:215)
at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verifyContent(SignatureVerifier.java:79)
|
|
| | | | | |
Re: Stuck doing something/looping around (not deadlock) in SignatureBlockProcessor [message #1745637 is a reply to message #1745548] |
Thu, 13 October 2016 16:40 |
Michael Vorburger Messages: 103 Registered: July 2009 |
Senior Member |
|
|
> Me and my colleague are also stuck at the same installation step in Oomph:
Aziz, are you stuck with this in https://github.com/vorburger/opendaylight-eclipse-setup, or with another completely different Oomph model which happens to also use http://download.eclipse.org/linuxtools/updates-docker-nightly/plugins/ ?
If it's the former, then I can help you and could try, as a temporary workaround, to just disable (or make it an option during the installation) the particular Eclipse plugin which pulls this apparently troublesome bundle from the opendaylight.setup. It's actually isn't critical at all and totally just nice to have one, in this setup.
If it's the latter, then you being the 2nd person hitting this independently with this particular JAR makes me think that this is perhaps something for you to pick up with the linuxtools project - perhaps they simple have some sort.. bug, which makes p2 choke, where they publish this particular bundle?
|
|
| |
Re: Stuck doing something/looping around (not deadlock) in SignatureBlockProcessor [message #1745774 is a reply to message #1745699] |
Mon, 17 October 2016 12:27 |
Michael Vorburger Messages: 103 Registered: July 2009 |
Senior Member |
|
|
Ed, thanks again for your willingness to investigate this further! FYI the SSL problem above from https://otto.takari.io was another issue, completely unrelated to the main p2 one, and seems to have gotten fixed; I just rechecked, and we find that the expired cert on otto.takari.io has just been replaced by a new one which now "Begins on: Saturday 15 October 2016 & Expires on: Wednesday 16 October 2019" - so the problem above won't happen anymore (thanks... Jason van Zyl, I suppose).
If you're willing to retry now re. the original issue, that could be valuable (I suspect you would find either some general problem in p2, or something particular wrong on http://download.eclipse.org/linuxtools/updates-docker-nightly/plugins/.
FYI I've just done a simple standalone test - I've wiped (backed up) ~/.p2, installed a completely fresh new Eclipse IDE for Java Developers (Neon), and "manually" (without Oomph, just good ol' Help > Install New Software..) added both that Docker and Vagrant Tooling from Linux Tools on http://download.eclipse.org/linuxtools/updates-docker-nightly/ - and that WORKS, I can't replicate it that way. However if I retry an opendaylight-eclipse-setup now, then I still see the same problem initially reported above - same jstack thread dump stack trace, and console mentions "Downloading org.bouncycastle.bcprov" & "Downloading org.bouncycastle.bcpkix" which I have a "hunch" this could be related to. Don't know if that is because in opendaylight-eclipse-setup there are other p2 sites in the picture, or because there is another version of "p2" (?) that runs from Oomph than Eclipse Neon IDE?
BTW: This signature verification security stuff MAY BE related to more than just Java 8 vs Java 7 (above) - I'm seeing this problem on OpenJDK on Fedora - I could theoretically imagine that this kind of (security) stuff behaves differently on other platforms...
As a short term work around this problem, which other users have now raised via email, I'm going to attempt making installation of additional Eclipse plugins optional in this particular setup model.
|
|
| |
Re: Stuck doing something/looping around (not deadlock) in SignatureBlockProcessor [message #1745794 is a reply to message #1745774] |
Mon, 17 October 2016 14:51 |
Michael Vorburger Messages: 103 Registered: July 2009 |
Senior Member |
|
|
> because there is another version of "p2" (?) that runs from Oomph than Eclipse Neon IDE?
I'm now reasonably certain that this is the root cause! Here's why:
> going to attempt making installation of additional Eclipse plugins optional
Exploring this, see parallel forum thread Project with only P2 Director but no Git Clone nor Stream, led to a partially working situation where I more by coincidence managed to get the stuff from http://download.eclipse.org/linuxtools/updates-docker-nightly/plugins/ not initially installed by Oomph, but then later by the Eclipse IDE (by "accident"; see the other thread for more about that). Curiously, that worked just fine, without that looping around (not deadlock) in SignatureBlockProcessor - as already found in the standalone non-Oomph installation attempt documented above.
So I had a closer look at version, and found that indeed Oomph Eclipser Installer version: 1.5.0 Build 2617, which appears to be the latest currently publicly released auto-updated one, has e.g. org.eclipse.equinox.p2.core v2.4.0.v20150527-1706 - but an Eclipse IDE for Java Developers Version: Neon:1a Release (4.6.1) has an org.eclipse.equinox.p2.core 2.4.100.v20160419-0834 ... NB: I am NOT certain that the "stuck" problem which is is about is in equinox.p2.core, but as other bundles are likely about a full year off, perhaps it would be sensible to upgrade the versions of all p2 components used in Oomph to the latest released ones available at this point?
FTR: In the mean time, to unblock end-users of https://github.com/vorburger/opendaylight-eclipse-setup, I just have, for now, simply completely removed http://download.eclipse.org/linuxtools/updates-docker-nightly/plugins/ from it, and confirmed that this "fixes" this problem in the short term. Note to anyone reading this: You have to wipe your ~/.p2 directory, because otherwise if you've used it before, Oomph will still choke on "bad" (incompatible) content already in it.
|
|
| | | | | | |
Goto Forum:
Current Time: Mon Dec 09 10:31:13 GMT 2024
Powered by FUDForum. Page generated in 0.05520 seconds
|