当前位置: 首页 > news >正文

记录上传文件异常 /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 -

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

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

http://www.lryc.cn/news/58689.html

相关文章:

  • 无向连通图中长度为 n 的循环
  • 打造出ChatGPT的,是怎样一群人?
  • 数据结构——栈与队列相关题目
  • Redhat6.7离线安装rabbitmq
  • EasyCVR平台基于GB28181协议的语音对讲配置操作教程
  • 谷歌发布Self-Debug方法,让大模型学会自己修bug,一次性生成正确代码
  • 行为型模式-模板方法
  • 正则表达式识别日期
  • 如何设计一个秒杀架构设计?
  • Elasticsearch:配置选项
  • 消息中间件Kafka分布式数据处理平台+ZooKeeper
  • Linux 用户文件磁盘网络进程指令
  • 如何使用Socks5代理IP提高网络安全性
  • 《Java8实战》第3章 Lambda 表达式
  • 开放式耳机的颠覆之作!南卡OE Pro新皇降临!佩戴和音质双重突破
  • 生成器设计模式(Builder Design Pattern)[论点:概念、图示、示例、框架中的应用、场景]
  • JUC并发工具
  • java面试题-基础问题-如何理解Java中的多态?
  • 03.vue3的计算属性
  • Ceph性能调优
  • 机器学习-问答题准备(英文)-更新中
  • 展示演示软件设计制作(C语言)
  • Android 自定义view 入门 案例
  • [imangazaliev/didom]一个简单又快速的DOM操作库
  • Cookie和Session的工作流程及区别(附代码案例)
  • 适用于高级别自动驾驶的驾驶员可预见误用仿真测试
  • Linux之进程知识点
  • 一种供水系统物联网监测系统
  • Linux驱动开发——字符设备(2)
  • 【MySQL数据库原理】MySQL Community安装与配置