泊坞窗推以“无法读取流下降:意外的EOF读取插座”状态‘400’

问题描述:

我们对AWS的artifactory的测试设置,其中包括AWS ELB和一个EC2实例作为artifactory的服务器我们的设置是搬运工基于JFROG artifactory泊坞窗推以“无法读取流下降:意外的EOF读取插座”状态‘400’

我们在推送特定图像(“平台图像”)的同时面临“在套接字上读取意外的EOF”错误,但我们能够将相同的图像推送到我们拥有的生产环境中,这两个环境之间的是,我们正在使用AWS ELB和分域码头工人类型注册处的测试环境。在我们目前的督促我们没有ELB和码头工人注册表类型的端口绑定。

2017年10月16日06:48:37967 [HTTP-NIO-8081-EXEC-9] [ERROR](oaacrArtifactoryService:282) - 无法读取流:意外的插座 org.jfrog EOF读取。 storage.binstore.common.ClientInputStreamException:无法读取流:在org.jfrog.storage.binstore.common.ClientStream.read(ClientStream.java:36)〜[binary-store-core-1.0]上的套接字 上读取意外的EOF .2.jar:NA] 在org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)〜[公地-IO-2.4.jar:2.4] 在org.apache.commons.io.IOUtils .copyLarge(IOUtils.java:1769)〜[commons-io-2.4.jar:2.4] at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744)〜[commons-io-2.4.jar :2.4]

2017-10-16 06:48:37,968 [http-nio-8081-exec-9] [警告](ojrdvrhDockerV2LocalRepoHandler:170) - 错误上传blob'platform-image/_uploads/e205ae95-2e43-48c2-942e-a5aea659575c''status'400 '和信息:'读取流失败:在插座上读取意外的EOF'

请检查并让我们知道这里可能是什么问题。对于所有图像我们都没有面对这个问题。但是和有问题的相同的形象,能推进推动实例。

注意:同样的图像最初一次工作,但当我们尝试几天后,它不工作。

所以我们怀疑这可能是我们的配置。如果您需要我们更多的细节,请告诉我们。

图片名称:平台图片 尺寸:15.2 GB。

我们的集群细节: AWS经典ELB:1 EC2实例(i3.2xlarge):1

Nginx的配置:

## server configuration 
server { 
    listen 443 ssl; 
    listen 80 ; 
    server_name ~(?<repo>.+)\.domain.com domain.com; 

    if ($http_x_forwarded_proto = '') { 
     set $http_x_forwarded_proto $scheme; 
    } 
    ## Application specific logs 
    access_log /var/log/nginx/docker-access.log; 
    error_log /var/log/nginx/docker-error.log; 
    rewrite ^/$ /artifactory/webapp/ redirect; 
    rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect; 
    rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo/$1/$2; 
    chunked_transfer_encoding on; 
    client_max_body_size 0; 
    location /artifactory/ { 
    proxy_read_timeout 3200; 
    proxy_pass_header Server; 
    proxy_cookie_path ~*^/.* /; 
    proxy_pass   http://localhost:8081/artifactory/; 
    proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port/artifactory; 
    proxy_set_header X-Forwarded-Port $server_port; 
    proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; 
    proxy_set_header Host    $http_host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

调查后,我们发现这个问题是由ELB配置引起。 ELB空闲超时值默认设置为60秒,并且artifactory在此时间内无法发回响应,因此ELB正在关闭连接。增加空闲超时值可解决问题。

Artifactory日志错误并不清楚超时,它是更通用的,这让我们思考很多方面。

谢谢。