旧版本nginx的bug一处

  • A+
所属分类:配置

bug发生在官方版本1.1.19之前,使用tengine的同学需要注意,1.4.0之前都是包含此官方bug的。
使用如下upstream写法:

upstream abc {
    server  8.8.8.8  backup ;
    #server  4.4.4.4:80  weight=1 max_fails=80 fail_timeout=5s;
    #server  4.4.4 flagyl australia.5:80  weight=1 max_fails=80 fail_timeout=5s;
}

理论上,这种写法是没有存活upstream,配置错误。但是旧版本nginx可以通过configtest并reload。
reload之后,原有nginx进程会直接僵死并占满CPU,新生成相同数目的nginx进程,但并不工作。80端口不通。
新版本nginx对此种写法不能通过,直接报错。

附上nginx官方的更新日志针对此bug的描述:
Changes with nginx 1.1.19 12 Apr 2012
*) Bugfix: nginx hogged CPU if all servers in an upstream were marked as “backup”.

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: