zoukankan      html  css  js  c++  java
  • nexus 挂掉启动报错解决

    nexus:3.13.01

    nexus启动日志:

    ./nexus run   (注意nexus start是看不到日志的)

    问题:

    nexus由于内存溢出挂掉,重新启动报错  Error injecting constructor, java.nio.file.FileAlreadyExistsException: /data/nexus/sonatype-work/nexus3/elasticsearch/nexus/nodes/0/__es__.tmp

    问题分析:

    查看nexus的ES版本;在ES的源码中通过关键字__es__.tmp找到了相关源码,如下所示:

     ensureAtomicMoveSupported方法是在ES启动时初始化GatewayMetaState对象时调用的,从方法注释可以看出这个方法是为了测试ES运行环境中是否支原子性地移动一个文件。测试的方法就是,先创建一个名为__es__.tmp的文件,在将其移动到名为__es__.final的文件,如果这个操作成功,说明支持,如果报异常说明不支持。测试结束后会通过调用Files.deleteIfExists(src);Files.deleteIfExists(target);将__es__.tmp 与__es__.final这两个文件都删除。

    在看我们的报错


    显然报这个错是因为ensureAtomicMoveSupported方法方法试图创建__es__.tmp的时候他已经存在了。至于为什么存在这个文件,我的推测是,上次ES启动过程中在__es__.tmp创建到删除这段时间,ES进程被强制杀死导致__es__.tmp没有被删除。

    解决方法

    解决这个异常的方法很容易想到,那就是手动把__es__.tmp删除,再重启NEXUS即可。

    另外,需要说明的是ES的开发者已经意识到这个缺陷,并且将其在5.x版本中修复。

     参考连接:https://blog.csdn.net/qqqq0199181/article/details/87935519

  • 相关阅读:
    数据流图和数据流程图的定义与组成元素
    敏捷开发3种角色
    WBS
    开发流程
    结对编程
    笔记
    登录注册界面维护2----注册界面进行Toast提示
    登录注册界面修改错误
    听说
    “学习链接篇”
  • 原文地址:https://www.cnblogs.com/thirteen-yang/p/13591459.html
Copyright © 2011-2022 走看看