当前位置:  开发笔记 > 编程语言 > 正文

Java应用程序在Linux上挂起"java.io.UnixFileSystem.getBooleanAttributes0"

如何解决《Java应用程序在Linux上挂起"java.io.UnixFileSystem.getBooleanAttributes0"》经验,为你挑选了2个好方法。

我们的客户应用程序似乎挂起了以下堆栈跟踪:

  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?



1> Chris Jester..:

getBooleanAttributes0电话stat(或者stat64,如果有的话).如果您有OpenJDK源代码,则会在文件中列出jdk/src/solaris/native/java/io/UnixFileSystem_md.c.

所以真正的问题是,为什么要stat冻结?例如,正在被访问的服务器上的文件是否被关闭?如果这是一个可重现的问题,您可能希望strace在冻结之前使用附加到Java进程.然后查看输出中的调用stat,以查看正在访问的内容.



2> staffan..:

看起来像是阻塞的stat呼叫getBooleanAttributes0.这通常是因为该文件位于已关闭的NFS共享上.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有