
# 文件服务器常见问题合集
基于使用标品默认文件服务器的场景,不适用二开存储的客户。
### 1、文件服务不可用:The config of server is unavailable
**问题描述**:日志中看到 The config of server is unavailable 提示
此类问题一般常见于项目刚开始搭建,没有配置好文件服务器,或者苍穹与文件服务器之间的网络问题( ping不通 、端口未开放等原因)
**排查步骤:**
(1)检查文件服务配置,登录 monitor (注册中心》系统属性)搜索配置(如果是容器部署通常的配置是:http://fileserver:8100/fielserver)

(2)确认配置正确,根据服务地址查看,文件服务器是否正常启动。(检查进程、服务状态)。
(3)检查 web 、mservice 节点与文件服务器所在机器之间的网络(ip、端口)的连通性。
以上检查都通过,基本上问题已经解决。
### 2、上传文件:403
**问题描述:**上传文件失败,F12 查看响应状态码为 403

**排查步骤:**
此问题基本上都是因为服务代理层做的限制,用户所在的网段被限制上传文件。
### 3、上传文件:413
**问题描述:**上传文件时,http 响应报文中提示 413
**排查步骤:**
该问题常出现在上传大文件时。通过检查 Nginx 的日志,会发现 Nginx 限制上传文件大小。可以调整 Nginx 的参数,设置允许上传文件的大小。
### 4、上传文件:net::ERR_CONNECTION_RESET
**问题描述:**上传时,可以看到请求的 Status 报错 net::ERR_CONNECTION_RESET。

**排查步骤:**
(1)检查代理 nginx 是否有拦截。
(2)客户的网络环境做了限制,找客户运维检查网络限制。
基本上都是上诉两种情况的一种,需要仔细检查确认。
### 5、上传文件:No such file or directory
**问题描述:**上传时,发现日志堆栈中出现类似错误堆栈(No such file or directory)

**排查步骤:**
通过堆栈看到 kd.bos.fileserver.api.impl.FileDiskServiceImpl 包名知道是文件服务器返回给苍穹的错误日志。
该问题是文件服务器配置(挂载)的磁盘没有写权限导致。联系运维老师检查权限,正确授权即可。
### 6、上传文件:No space left on device
**问题描述:**上传报错:No space left on device
**排查步骤:**报错是指,fileserver容器上的/kddata目录挂载的存储满了,需要检查:
* 容器根目录是否满了
* 是否挂载有问题
* 挂载的存储满了
### 7、下载文件:Idle timeout expired: 30000/30000 ms
**问题描述:**下载文件失败,在 monitor 日志中查询发现以下日志(关键词:Idle timeout expired: 30000/30000 ms)
```
org.eclipse.jetty.io.EofException: Closed
at org.eclipse.jetty.server.HttpOutput.checkWritable(HttpOutput.java:768)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:792)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
at kd.bos.actiondispatcher.ActionUtil.writeResponseResult(ActionUtil.java:85)
at kd.bos.web.actions.AttachmentAction.download(AttachmentAction.java:476)
at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kd.bos.actiondispatcher.Invoker.invoke(Invoker.java:23)
at kd.bos.actiondispatcher.ActionFilter.doFilter(ActionFilter.java:170)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.login.filter.LoginFilter.doFilter(LoginFilter.java:706)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.metric.instruments.servlet.MetricFilter.doFilter(MetricFilter.java:95)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.trace.instrument.web.TraceFilter.generateTraceId(TraceFilter.java:139)
at kd.bos.trace.instrument.web.TraceFilter.doFilter(TraceFilter.java:103)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.framework.filter.ThreadLifeCycleFilter.doFilter(ThreadLifeCycleFilter.java:36)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.mservice.circuitbreaker.filter.web.CircuitbreakerFilter.lambda$doFilter$0(CircuitbreakerFilter.java:46)
at kd.bos.mservice.circuitbreaker.noop.NoopCircuitbreaker.call(NoopCircuitbreaker.java:41)
at kd.bos.mservice.circuitbreaker.filter.web.CircuitbreakerFilter.doFilter(CircuitbreakerFilter.java:45)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.service.web.filter.KDCommonFilter.doFilter(KDCommonFilter.java:96)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
at java.lang.Thread.run(Thread.java:745)
/dcc.pxwsemi.com/1251557215718867968/202201/hw_baseservice/hw_filesign/1278369073301831680/attachments/1641879953076.ziperror
kd.bos.exception.KDException: /dcc.pxwsemi.com/1251557215718867968/202201/hw_baseservice/hw_filesign/1278369073301831680/attachments/1641879953076.ziperror
at kd.bos.fileservice.impl.AbstractFileService.download(AbstractFileService.java:549)
at kd.bos.web.actions.AttachmentAction.download(AttachmentAction.java:460)
at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kd.bos.actiondispatcher.Invoker.invoke(Invoker.java:23)
at kd.bos.actiondispatcher.ActionFilter.doFilter(ActionFilter.java:170)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.login.filter.LoginFilter.doFilter(LoginFilter.java:706)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.metric.instruments.servlet.MetricFilter.doFilter(MetricFilter.java:95)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.trace.instrument.web.TraceFilter.generateTraceId(TraceFilter.java:139)
at kd.bos.trace.instrument.web.TraceFilter.doFilter(TraceFilter.java:103)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.framework.filter.ThreadLifeCycleFilter.doFilter(ThreadLifeCycleFilter.java:36)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.mservice.circuitbreaker.filter.web.CircuitbreakerFilter.lambda$doFilter$0(CircuitbreakerFilter.java:46)
at kd.bos.mservice.circuitbreaker.noop.NoopCircuitbreaker.call(NoopCircuitbreaker.java:41)
at kd.bos.mservice.circuitbreaker.filter.web.CircuitbreakerFilter.doFilter(CircuitbreakerFilter.java:45)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:277)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:69)
at kd.bos.service.web.filter.KDCommonFilter.doFilter(KDCommonFilter.java:96)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
at org.eclipse.jetty.servlet.Filter