7u45 Webstart中新的死锁错误? [英] new Deadlock bug in 7u45 webstart?
问题描述
java 7u45带来的乐趣不断.这次,这是Webstart的僵局.启动一个大型应用程序(约100个jar)时,这种情况非常一致地发生(每次).
The fun from java 7u45 keeps on giving. This time it's a deadlock within webstart. This is happening very consistently (every time) launching a large application (~100 jars).
是否还有其他人遇到此问题或知道任何解决方法?除了还原为1.7.0_40之外?
Has anyone else run into this or know of any workarounds? Other than reverting to 1.7.0_40?
谢谢
Found one Java-level deadlock:
=============================
"Java Web Start Main Thread":
waiting to lock monitor 0x066368bc (object 0x29e65428, a java.lang.Class),
which is held by "Finalizer"
"Finalizer":
waiting to lock monitor 0x00dbc954 (object 0x2a1b52b0, a com.sun.deploy.cache.CacheEntry),
which is held by "Java Web Start Main Thread"
Java stack information for the threads listed above:
===================================================
"Java Web Start Main Thread":
at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
- waiting to lock <0x29e65428> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
at com.sun.deploy.cache.CachedJarFile.getCacheEntry(Unknown Source)
- locked <0x24810058> (a com.sun.deploy.cache.CachedJarFile)
at com.sun.deploy.cache.CachedJarFile.getManifest(Unknown Source)
- locked <0x24810058> (a com.sun.deploy.cache.CachedJarFile)
at com.sun.deploy.util.JarUtil.isBlobSigned(Unknown Source)
at com.sun.deploy.cache.CacheEntry.getJarFile(Unknown Source)
- locked <0x2a1b52b0> (a com.sun.deploy.cache.CacheEntry)
at com.sun.deploy.security.DeployManifestChecker.verify(Unknown Source)
at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
at com.sun.javaws.Launcher.prepareResources(Unknown Source)
at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.launch(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main.access$000(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Finalizer":
at com.sun.deploy.cache.CacheEntry.storageFilesExist(Unknown Source)
- waiting to lock <0x2a1b52b0> (a com.sun.deploy.cache.CacheEntry)
at com.sun.deploy.cache.MemoryCache.validateResource(Unknown Source)
at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
- locked <0x29e65428> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
at com.sun.deploy.cache.CachedJarFile.isReferencedTo(Unknown Source)
at com.sun.deploy.cache.CachedJarFile.close(Unknown Source)
at java.util.zip.ZipFile.finalize(Unknown Source)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Unknown Source)
at java.lang.ref.Finalizer.access$100(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
Found 1 deadlock.
推荐答案
我在评论中提到的错误报告现已被接受.
The bug report I mentioned in my comment has now been accepted.
不过,看起来ID的更改是该过程的一部分.它从JI-
命名空间移动到JDK-
命名空间: https://bugs. openjdk.java.net/browse/JI-9007571 现在重定向到 https://bugs.openjdk.java.net/browse/JDK-8027029 .可以在 http://bugs.sun.com/bugdatabase/view_bug中看到此问题. .do?bug_id = 8027029 现在也是如此.
It looks like its ID changed as part of that process, though. It moved from the JI-
namespace to the JDK-
namespace: https://bugs.openjdk.java.net/browse/JI-9007571 now redirects to https://bugs.openjdk.java.net/browse/JDK-8027029. The issue can be seen at http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8027029 now too.
该修补程序似乎正在讨论中,将于1月发布.7u51.
The fix appears to be under discussion for inclusion in 7u51, due in January.
我们的堆栈跟踪是相似的-死锁本身看起来是相同的.在我们的示例中,页面中有两个同时加载的小程序.
Our stack traces are similar -- the deadlock itself appears to be identical. In our case we have two applets in the page that are loading at the same time.
"thread applet-cl.applet.TutorApplet-2" prio=4 tid=0x04f21000 nid=0x528 waiting for monitor entry [0x0652f000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
- waiting to lock <0x29d288b8> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
at com.sun.deploy.cache.CachedJarFile.getCacheEntry(Unknown Source)
- locked <0x247a4f90> (a com.sun.deploy.cache.CachedJarFile)
at com.sun.deploy.cache.CachedJarFile.getManifest(Unknown Source)
- locked <0x247a4f90> (a com.sun.deploy.cache.CachedJarFile)
at com.sun.deploy.util.JarUtil.isBlobSigned(Unknown Source)
at com.sun.deploy.cache.CacheEntry.getJarFile(Unknown Source)
- locked <0x29eccc00> (a com.sun.deploy.cache.CacheEntry)
at com.sun.javaws.security.SigningInfo.check(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source)
at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"thread applet-cl.applet.TTSApplet-1" prio=4 tid=0x04f1f800 nid=0xa40 waiting for monitor entry [0x0600f000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.sun.deploy.cache.CacheEntry.storageFilesExist(Unknown Source)
- waiting to lock <0x29eccc00> (a com.sun.deploy.cache.CacheEntry)
at com.sun.deploy.cache.MemoryCache.validateResource(Unknown Source)
at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
- locked <0x29d288b8> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
- locked <0x29d288b8> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
at com.sun.deploy.cache.Cache.getCacheEntry(Unknown Source)
at com.sun.deploy.cache.Cache.getCacheEntry(Unknown Source)
at com.sun.deploy.cache.Cache.getCachedResourceFilePath(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getCachedResourceFilePath(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.getSignedJNLPBits(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.getSignedJNLPFile(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedLaunchDescHelper(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedLaunchDesc(Unknown Source)
at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source)
at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
这篇关于7u45 Webstart中新的死锁错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!