Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

所有上传接口不稳定,需要排查一下。 #521

Open
ruibaby opened this issue Jan 29, 2020 · 11 comments
Open

所有上传接口不稳定,需要排查一下。 #521

ruibaby opened this issue Jan 29, 2020 · 11 comments
Assignees
Labels
bug
Projects
Milestone

Comments

@ruibaby
Copy link
Member

@ruibaby ruibaby commented Jan 29, 2020

我的环境

Server 版本:1.2.0
Admin 版本:1.2.0
数据库:H2
运行模式:production
UA 信息:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36


错误日志

	... 54 common frames omitted
	at io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.beginPart(MultiPartParserDefinition.java:254) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at java.nio.file.Files.createTempFile(Files.java:852) ~[na:1.8.0_221]
	at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161) ~[na:1.8.0_221]
	at java.nio.file.TempFileHelper.create(TempFileHelper.java:138) ~[na:1.8.0_221]
	at java.nio.file.Files.createFile(Files.java:632) ~[na:1.8.0_221]
	at java.nio.file.Files.newByteChannel(Files.java:361) ~[na:1.8.0_221]
	at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214) ~[na:1.8.0_221]
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[na:1.8.0_221]
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[na:1.8.0_221]
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86) ~[na:1.8.0_221]
Caused by: java.nio.file.NoSuchFileException: /tmp/undertow.8410319932659743251.80/undertow6854475745071598809upload
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_221]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_221]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_221]
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) [undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376) [undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269) [undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]

期望行为

当前行为

https://bbs.halo.run/d/473

@ruibaby ruibaby added the bug label Jan 29, 2020
@ruibaby ruibaby added this to the 1.3.0 milestone Jan 29, 2020
@JohnNiang

This comment has been minimized.

Copy link
Member

@JohnNiang JohnNiang commented Jan 29, 2020

Okay,这个问题比较严重。

@JohnNiang JohnNiang self-assigned this Jan 29, 2020
@ruibaby

This comment has been minimized.

Copy link
Member Author

@ruibaby ruibaby commented Jan 29, 2020

Okay,这个问题比较严重。

他重启之后居然好了... 估计还是我们的问题。重启前,所有上传相关的接口都不行。

@JohnNiang

This comment has been minimized.

Copy link
Member

@JohnNiang JohnNiang commented Jan 29, 2020

我最近也遇到这个问题了。同样的错误。

@JohnNiang

This comment has been minimized.

Copy link
Member

@JohnNiang JohnNiang commented Jan 29, 2020

最新找到的错误日志:

2020-01-24 03:09:52.701 ERROR 10510 --- [XNIO-1 task-12] io.undertow.servlet.request              : UT015012: Failed to generate error page /error for original exception: java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.16063392481573919428.8090/undertow16352890065052762880upload. Generating error page resulted in a 405.
2020-01-24 03:09:52.734  WARN 10510 --- [XNIO-1 task-12] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
2020-01-24 03:12:01.173 ERROR 10510 --- [XNIO-1 task-6] io.undertow.request                      : UT005023: Exception handling request to /api/admin/attachments/upload

java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.16063392481573919428.8090/undertow8006398932966701769upload
	at io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.beginPart(MultiPartParserDefinition.java:261) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.util.MultipartParser$ParseState.headerName(MultipartParser.java:208) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.util.MultipartParser$ParseState.parse(MultipartParser.java:123) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.parseBlocking(MultiPartParserDefinition.java:232) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.spec.HttpServletRequestImpl.parseFormData(HttpServletRequestImpl.java:835) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.spec.HttpServletRequestImpl.getParameter(HttpServletRequestImpl.java:714) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at run.halo.app.security.filter.AbstractAuthenticationFilter.getTokenFromRequest(AbstractAuthenticationFilter.java:217) ~[classes!/:1.2.0]
	at run.halo.app.security.filter.AbstractAuthenticationFilter.checkForTempToken(AbstractAuthenticationFilter.java:175) ~[classes!/:1.2.0]
	at run.halo.app.security.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:160) ~[classes!/:1.2.0]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at run.halo.app.filter.CorsFilter.doFilter(CorsFilter.java:41) ~[classes!/:1.2.0]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:108) ~[spring-boot-actuator-2.2.1.RELEASE.jar!/:2.2.1.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99) ~[undertow-servlet-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.nio.file.NoSuchFileException: /tmp/undertow.16063392481573919428.8090/undertow8006398932966701769upload
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) ~[na:na]
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[na:na]
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) ~[na:na]
	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219) ~[na:na]
	at java.base/java.nio.file.Files.newByteChannel(Files.java:374) ~[na:na]
	at java.base/java.nio.file.Files.createFile(Files.java:651) ~[na:na]
	at java.base/java.nio.file.TempFileHelper.create(TempFileHelper.java:137) ~[na:na]
	at java.base/java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:160) ~[na:na]
	at java.base/java.nio.file.Files.createTempFile(Files.java:871) ~[na:na]
	at io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.beginPart(MultiPartParserDefinition.java:254) ~[undertow-core-2.0.27.Final.jar!/:2.0.27.Final]
	... 54 common frames omitted
@JohnNiang

This comment has been minimized.

Copy link
Member

@JohnNiang JohnNiang commented Jan 29, 2020

从错误详情来看,似乎是 undertow 在接收文件的时候,创建临时文件出现了问题。

@ruibaby ruibaby added this to To do in plan Jan 30, 2020
@JohnNiang

This comment has been minimized.

Copy link
Member

@JohnNiang JohnNiang commented Jan 30, 2020

package run.halo.app.utils;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * Files test cases.
 *
 * @author johnniang
 */
public class FilesTest {

    private Path tempPath;

    @Before
    public void createTempDir() throws IOException {
        tempPath = Files.createTempDirectory("files-test");
    }

    @Test
    public void tempFileCreateSuccessTest() throws IOException {
        Files.createTempFile(tempPath, "undertow", "upload");
    }

    @Test
    public void tempFileCreateFailTest() throws IOException {
        Path nonExistTempPath = Paths.get(tempPath.toString() + "append");
        Files.createTempFile(nonExistTempPath, "undertow", "upload");
    }

    @After
    public void cleanTempDir() throws IOException {
        FileUtils.deleteFolder(tempPath);
    }
}

以上是测试用例,可以简单地模拟出上述错误。

@JohnNiang

This comment has been minimized.

Copy link
Member

@JohnNiang JohnNiang commented Jan 30, 2020

该错误发生在 /tmp/undertow.5237405432265511091.8090 文件夹被删除之后。

@JohnNiang

This comment has been minimized.

Copy link
Member

@JohnNiang JohnNiang commented Jan 30, 2020

主要原因可能是系统执行了 tmp 目录清理服务(systemd-tmpfiles-clean.service),导致 /tmp/undertow...8090/ 目录被清理,然而在上传的时候,undertow 服务器需要创建 /tmp/undertow...8090/undertow...upload 临时文件,但是调用 Files.createFile(...) 的时候就会发现找不到父目录,才导致了以上的错误。

@JohnNiang JohnNiang moved this from To do to In progress in plan Feb 10, 2020
@feiyangbeyond

This comment has been minimized.

Copy link

@feiyangbeyond feiyangbeyond commented Feb 12, 2020

遇到相同问题😂

@ruibaby

This comment has been minimized.

Copy link
Member Author

@ruibaby ruibaby commented Feb 12, 2020

@feiyangbeyond 目前你可以通过重启解决,后面我们修复之后会发一个小版本。

@feiyangbeyond

This comment has been minimized.

Copy link

@feiyangbeyond feiyangbeyond commented Feb 12, 2020

@feiyangbeyond 目前你可以通过重启解决,后面我们修复之后会发一个小版本。

好的,重启啦

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
plan
  
In progress
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.