记录上传文件异常 /tmp/tomcat... (No space left on device)

一,问题描述

用postman调用上传接口,基本每两次调用会有一次报错,如下

{
    "timestamp": "2023-04-11T03:00:15.469+0000",
    "status": 500,
    "error": "Internal Server Error",
    "exception": "org.springframework.web.multipart.MultipartException",
    "message": "Could not parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. /tmp/tomcat.476807474335553889.8040/work/Tomcat/localhost/ROOT/upload_18b82282_3d69_4839_aa73_fa4f2d02893b_00000427.tmp (No space left on device)",
    "path": "/userService/oss/uploadFile"
}

二,问题排查

先排查日志,上传成功的服务有对应日志,失败的没有日志,说明失败请求没有到上传服务

1》.上传文件会先上传到服务器的临时文件,临时文件有定时清理机制,文件被清理了,所以报上面错误

依据:

/tmp/tomcat.476807474335553889.8040/work/Tomcat/localhost/ROOT/upload_18b82282_3d69_4839_aa73_fa4f2d02893b_00000427.tmp (No space left on device)

对应的解决方案

1.在其他位置新建临时文件存储路径,不放在默认临时文件中tmp,这样就不会被清理

2.设置tomcat.文件不被清理

3.重启,重启会重新生成临时文件

参考:

FileNotFoundException /tmp/tomcat.26341039_Erwinl的博客-CSDN博客

上传文件突然报错/tmp/tomcat_/tmp/tomcat.3780801945149811830.8904/work/tomcat/l_he_xiao123的博客-CSDN博客

2》.磁盘空间不足

依据:No space left on device

三,结论

尝试了,在上传服务器,新建临时文件与重启服务均未解决,磁盘空间占用也不大

 原因:

没有找到问题点,应该先排查网关服务的问题,不应该直接看上传接口对应的服务器,所以上面解决方案前提都是错误的。以上问题在网关服务排查一遍,发现两台网关中有一台磁盘空间满了,重启后,上传接口正常了,解释了为什么上传时成功一次失败一次。

参考这篇文章

No space left on device问题解决记录_caohl04的博客-CSDN博客

四,临时文件与删除策略

临时文件

按理说临时文件默认在tmp/tomcat.........,但这个目录下并没有上传照片信息,是空的

 删除临时文件配置

 疑问

1.这里配置自动删除临时文件是tmp,为什么上传文件没有存在这里,实际存在哪里

2.磁盘空间占满,是哪里满了,哪里的临时文件

3.D /tmp 1777 root root -

这个命令中 - 是什么意思,没有配置具体天数,是不是临时文件不会删除

如果把这个替换成具体天数,是否可实现定时自动删除临时文件,但问题排查后,上传图片信息又不在这个临时文件中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值