从昨天(周日)早上开始,我的生产应用程序无法启动,没有从我身边的代码更改。它运行Springboot 2.3.4,Liquibase-core 3.8.0,并托管在亚马逊linux2上。有趣的是,只有在部署时,本地才没有例外。
下面是相关的堆栈跟踪:
Caused by: liquibase.exception.UnexpectedLiquibaseException: java.nio.file.NoSuchFileException: /tmp/agent12302722365010540729.jar
at liquibase.servicelocator.ServiceLocator.setResourceAccessor(ServiceLocator.java:129)
at liquibase.servicelocator.ServiceLocator.<init>(ServiceLocator.java:69)
at liquibase.servicelocator.CustomResolverServiceLocator.<init>(CustomResolverServiceLocator.java:16)
at org.springframework.boot.liquibase.LiquibaseServiceLocatorApplicationListener$LiquibasePresent.replaceServiceLocator(LiquibaseServiceLocatorApplicationListener.java:55)
at org.springframework.boot.liquibase.LiquibaseServiceLocatorApplicationListener.onApplicationEvent(LiquibaseServiceLocatorApplicationListener.java:44)
at org.springframework.boot.liquibase.LiquibaseServiceLocatorApplicationListener.onApplicationEvent(LiquibaseServiceLocatorApplicationListener.java:36)
...
Caused by: java.nio.file.NoSuchFileException: /tmp/agent801508645517312012.jar
at liquibase.resource.ClassLoaderResourceAccessor.getResourcesAsStream(ClassLoaderResourceAccessor.java:53)
at liquibase.servicelocator.ServiceLocator.setResourceAccessor(ServiceLocator.java:115)我双重检查了所有与应用程序相关的文件和env变量,它们都是相同的。这个文件与我的应用程序没有任何关系。
你知道这个文件是什么吗?为什么Liquibase突然要找到它?
发布于 2021-12-20 15:57:49
我也有同样的问题。在启动amazon 2时,安装了一个安全修补程序。
导致此问题的包是log4j-CVE-2021-44228-Hotpatch.noarch.noarchin/var/log/yum.log中检查这个包。
临时解决方案是卸载修补程序并安装另一个java版本。
yum remove log4j-cve-2021-44228-hotpatch.noarch
yum install java-11-openjdk-11.0.12.0.7-0.amzn2.0.2.x86_64感谢@mihristov的解决方案。
发布于 2021-12-21 14:10:10
为了更详细地介绍一下这里发生的事情:
AWS已经开发了一个system d服务,它每秒钟都会查找系统上运行的任何JVM。对于它所找到和支持的所有内容,它连接一个java代理,该代理在运行时用硬编码的安全字符串替换log4j JNDI lookup()方法。
我不清楚为什么清算公司在这个问题上失败了。我确实看到,已经给出的答案似乎太有侵略性。不需要删除/重新安装/更新JVM。你可以通过以下方法来解决这个问题:
停止systemd修补程序服务的sudo service log4j-cve-2021-44228-hotpatch status|stop|start:
创建杀死文件,如果服务读取该文件,则停止应用修补程序:sudo touch /etc/log4j-cve-2021-44228-hotpatch.kill
发布于 2021-12-21 08:01:31
对于我们来说,转移到最新的清算基地(4+)解决了这个问题。他们在4+中使用了更标准的4+,这似乎产生了不同的效果。
https://stackoverflow.com/questions/70421613
复制相似问题