Understanding on 'Error to Origin (50x)' , 'Internal CDN Error (50x)' and 'External Error (50x)' in Chartron
Overview
This document explains about definition of these values on OUI Chartron.
Definition of Error Types
- Error to Origin (50x) Hits/Sec
- The hits per seconds of response 504. As RFC2616, "504" means "Gateway Timeout". But CS use this value for logging "Error to Origin".
The situation to return response 504 : If PX-503 response header starts with "O ", then log as 504.
- Internal CDN Error (50x) Hits/Sec
- Definition : The hits per seconds of response 505. As RFC2616, "505" means "HTTP Version Not Supported". But CS use this value for logging "Internal CDN Error".
The situation to return response 505 : If PX-503 response header not starts with "O " , then log as 505.
- External Error (50x) Hits/Sec
- Definition : The hits per seconds of response 50x received from origin.
- If origin returns 504 or 505, CS logs as 503. (i.e. External Error = all of 5xx except 504,505)
- Internal timeout (202)
- Definition : The hits per seconds of response 202.
The situation that a request has accepted, but internal timeout
occurs. As RFC2616, "202" means "Accepted". CS use similary this
meaning.- If a real 202 response come from origin, perhit log
has other reponse headers like "Server" or "Date", etc. But 202 response
without other headers, the situation is internal timeout. - While CS retries to other nodes, CS will disconnect client connection and log as 202. In this case, request client cannot receives any http response code nor headers.
- If a real 202 response come from origin, perhit log
- Definition : The hits per seconds of response 202.
Test environment
- Edge node : n5 (10.40.196.201)
- Shield node : n7 (10.40.196.203), n4(10.40.196.204)
- Origin : 10.40.198.222 (CustomHttpd)
- Attached file : very_small.mp4 (325117 bytes)
- Reproduce conditions
- User -> CS edge
- CS edge -> master or shield
- CS shield -> origin
Error Cases by connection state
(CS Last level shield - origin)
(CS node - CS node)
Client - CS edge node
http.log messages
Error type | http.log message | Description |
Error To Origin | "read error" | When using gzip compression, error occured on reading data to gzip buffer. |
Error To Origin | "too many downloads" | The count of active connection to origin is over limit. (site's max_origin_downloads) |
Error To Origin | "PAD is marked dead" | When site is not dead, total origin connection per site is over 100 and origin timeout per site is over 40% of total origin request per site, the site is marked dead. This check is working every 20 second. And origin connection counters are also reset every 20 seconds. When site is dead, total origin connection per site is over 0 and origin When the requested cache object does not exist and the site is dead, if |
Error To Origin | "preceding upstream connection has not yet finished" | When waiting prceding upstream connection at using NTLM feature (v8.2.1~) |
Error To Origin | "Too many upstream connections, aborting download for $(URL)" | Upstream connection is over limit. |
Internal CDN Error | "file too large (chunked-transfer-encoding on a chunking pad)" | (~ v8.0.x) Redirect to origin when data size is larger than 200MB and use_sub_file is false and use transfer-encoding is chunked. |
Internal CDN Error | "bad file (disk)" | The data from disk is bad. |
Internal CDN Error | "subfile mismatch" | When using sub_file (chunking) , subfile's total content length is mismatched from first chunk's. |
Internal CDN Error | "short read" | When Disk Cache cannot read data in right length from Disk. |
Internal CDN Error | "Init Task Failed" | Various reason for fail MyStack.initStack() |
Internal CDN Error | "Selecting Master" | Exception occurs on selectMaster() |
Internal CDN Error | "null" | UpstreamConnectionHandler.doConnect() |
Conditional | "unknown host" | upstream download fail : UnknownHostException occurred |
Conditional | "socket timeout" | upstream download fail : SocketTimeoutException occurred |
Conditional | "io exception" | upstream download fail : IOException occurred |
Conditional | "unknown exception" | upstream download fail : Exception occurred |
Conditional | "Host lookup failed for $(host)" | upstream download fail : DNS lookup failed |
Conditional | "Stalled download" + "Killed by connection manager after XXX" | Upstream timeout |
Conditional | "Connect Failed" | Upstream connect fail |
Conditional | "Read buffer filled but cannot parse" | Read buffer done, but still cannot parse response header. |
Conditional | "reading (connection was closed prematurely)" | Receiving socket close packet from upstream. |
Conditional | "reading response: connection was closed prematurely" | connection was closed by upstream. |
Conditional | "The client side connection was already closed!" | connection was closed by client. |
Conditional | "Downstream connection closed while upstream transfer chunked channel setting." | Downstream connection closed while upstream transfer chunked channel setting. |
Conditional | "Connection closed while writing request" | upstream connection was closed while writing request to upstream |
Conditional | "Connection closed while writing request body" | upstream connection was closed while writing request body to upstream |
Conditional | "Connection closed while writing request body(chunked) : XX bytes sent" | Error occured on ending stream Transfer-Encoding : chunked |
Conditional | "Invalid selection key" | Java nio selection key is invalid on handling upstream connections. |
Conditional | "gotMoreContentDataThreaded" | Exception occured in UpstreamConnection thread |
"Conditional" : When upstream fails, CS retries another upstream server that is called "failover" logic. Following failover logic, If the last selected server is origin, Error type decides "Error To Origin", other "Internal CDN Error" |
Understanding on 'Error to Origin (50x)' , 'Internal CDN Error (50x)' and 'External Error (50x)' in Chartron的更多相关文章
- angularjs 运行时报错ERROR in node_modules/rxjs/internal/types.d.ts(81,44): error TS1005: ';' expected. node_modules/rxjs/internal/types.d.ts(81,74): error TS1005: ';' expected. node_modules/rxjs/internal/t
解决方法: 在package.json文件里面 修改 "rxjs": "^6.0.0" 为 "rxjs": "6.0.0" ...
- idea报错:error java compilation failed internal java compiler error
idea下面报如下问题 error java compilation failed internal java compiler error 解决办法:Setting->Compiler-> ...
- idea Error:java: Compilation failed: internal java compiler error
idea 遇到Error:java: Compilation failed: internal java compiler error 是提示说你当前使用的编译器jdk版本不对. 按住Ctrl+Alt ...
- com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Cannot assign requested address: bind
在发布 web service 时报错: Endpoint.publish(publishAddress, hl7MessageReveiver); com.sun.xml.internal.ws.s ...
- Error:java:Compilation failed: internal java compiler error
在IDEA中编译时出现这个错误:Error:java:Compilation failed: internal java compiler error! Information:Using javac ...
- Git版本控制工具使用:Error pulling origin: error: Your local changes to the following files would be overwritten by merge
摘自: CSDN 逆觞 git在pull时,出现这种错误的时候,可能很多人进进行stash,相关stash的请看:Error pulling origin: error: Your local cha ...
- Error pulling origin: error: The following untracked working tree files would be overwritten by...
git在pull时,出现这样的错误的时候,可能非常多人进进行stash.相关stash的请看:Error pulling origin: error: Your local changes to th ...
- Error pulling origin: error: Your local changes to the following files would be overwritten by merge
Git在pull时,出现这种错误的时候,可能很多人进进行stash,相关stash的请看:Error pulling origin: error: Your local changes to the ...
- Android studio Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to
http://blog.csdn.net/FlyRabbit_1/article/details/74536317 Error:org.gradle.api.internal.tasks.Defaul ...
随机推荐
- 面向对象(OOP)一
一.面向对象理论 1)面向对象概念 面向对象编程(object Oriented Programming,OOP),是一种计算机编程构架,OOP达到软件工程的三个目标重用.灵活和扩展性. 2)什么是对 ...
- CF1136D Nastya Is Buying Lunch
思路: 1. 最终答案不超过能与Nastya“直接交换”的人数. 2. 对于排在j前面的i,如果i和i-j之间(包括j)的每个人都能“直接交换”,j才能前进一步. 实现: #include <b ...
- Retrofit 2.0 轻松实现多文件/图片上传/Json字符串/表单
如果嫌麻烦直接可以用我封装好的库:Novate: https://github.com/Tamicer/Novate 通过对Retrofit2.0的前两篇的基础入门和案例实践,掌握了怎么样使用Retr ...
- DB错误代码大全
db2错误代码大全 sqlcode sqlstate 说明000 00000 SQL语句成功完成01xxx SQL语句成功完成,但是有警告+012 01545 未限定的列名被解释为一个有相互关系的引 ...
- hihoCoder hiho一下 第二周 #1014 : Trie树(Trie树基本应用)
思路: 完全看题目中的介绍就行了.还有里面的input写道:不保证是英文单词,也有可能是火星文单词哦.比赛结束后的提交是不用考虑26个字母之外的,都会AC,如果考虑128种可能的话,爆了内存.步骤就是 ...
- ARM实验1 —— 流水灯实验
实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...
- StackOverflow之旅<2>------{HashMap和Hashtable的区别}
问题 在Java中HashMap和Hashtable的区别? 哪一个对于多线程应用程序更好? 回答 Hashtable是同步的,加了synchronized锁,而HashMap不是.没有加synchr ...
- Being a Good Boy in Spring Festival(博弈)
Being a Good Boy in Spring Festival Problem Description一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧 陪妈妈逛一次 ...
- 小w的糖果
题目连接 : https://ac.nowcoder.com/acm/contest/923/C 算是一道找规律的题了,因为后一个人会比前一个人多,可以理解成后一个人要继承前一个人,sum为当前糖果数 ...
- 已解决: idea创建并部署SpringMVC项目时 报错 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
用IDEA创建并运行SpringMVC项目时,最初发现没有Servlet包,这个问题已在上篇解决,然而当我们尝试去运行此时的SpringMVC项目时,发现仍然有错误.ClassNotFoundExce ...