我们的客户应用程序似乎挂起并显示以下堆栈跟踪:
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(Unknown Source)
at java.io.File.isFile(Unknown Source)
at org.tmatesoft.svn.core.internal.wc.SVNFileType.getType(SVNFileType.java:118)
at org.tmatesoft.svn.core.internal.wc.SVNFileUtil.createUniqueFile(SVNFileUtil.java:299)
- locked <0x92ebb2a0> (a java.lang.Class for org.tmatesoft.svn.core.internal.wc.SVNFileUtil)
at org.tmatesoft.svn.core.internal.wc.SVNRemoteDiffEditor.createTempFile(SVNRemoteDiffEditor.java:415)
at org.tmatesoft.svn.core.internal.wc.SVNRemoteDiffEditor.applyTextDelta(SVNRemoteDiffEditor.java:255)
有人知道什么可能导致它挂在 isFile 中吗?
getBooleanAttributes0
calls stat
(or stat64
, 如果可供使用的话)。如果您有 OpenJDK 源代码,则会在文件中列出jdk/src/solaris/native/java/io/UnixFileSystem_md.c
.
所以真正的问题是,为什么stat
冻结?例如,正在访问的文件是否是已关闭的服务器上的网络文件?如果这是一个可重现的问题,您可能希望使用strace
在冻结之前附加到 Java 进程。然后在输出中查找对以下内容的调用stat
,查看正在访问的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)