最近一个月升级SpringBoot版本到2.3.12.RELEASE, Spring Cloud升级到Hoxton.SR12以后,今天线上突然出现了,磁盘Inodes的报警,这本身比较危险的事,如果打满之后,服务将不可用,磁盘Inodes并非是磁盘容量被占满,而是磁盘文件生成过多导致的,通过进入到容器内查看,生成了很多类似于,synchronoss-file-upload-一串数字,这样的文件夹,里面都是空的。所以并不占用磁盘空间,但是Inodes却变大了,类似于文件夹炸弹。经过调查,发现是 , Spring-web中,5.2.15.RELEASE这个版本出现的问题,在SynchronossPartHttpMessageReader 这个类中。
会有一个创建临时文件的方法存在,导致了每当有一个请求,就会创建一个临时文件。从而引发报警,Spring的官方在这里有所解释,https://github.com/spring-projects/spring-framework/issues/27092https://github.com/spring-projects/spring-framework/issues/27092
他们认为,这不是一个bug,但同样有人也遇到了相同的问题,
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.16.RELEASE</version>
</dependency>
到5.2.6.RELEASE,这个版本中逻辑稍加做了调整。解决了不断创建临时文件的问题。