对Http响应码“302”的误判

一. 问题描述

今日EDI平台的运行时环境下午4点左右开始出现服务注册失败的情景, 是由于一个Rest请求异常导致的(Rest返回码为302).

二. 尝试路径

  1. 此前3天内, EDI平台的管理端环境, 运行时环境都没有上线操作. 排除引入了变化的代码.
  2. 根据以往的经验, 302错误, 一般是Rest请求时认证未通过引起的登陆重定向. 但本次请求的Url无需认证, 排除该错误.
  3. 查看Rest服务器(即管理端服务器)日志, 发现是该rest接口执行异常, 且并为捕获, 导致302重定向到错误页面.具体错误是4点左右删除数据库相关数据不完全, 导致的NPE.

三. 反思

  1. 检查变化时, 注意变化不只包含代码, 也包含数据库等依赖的外部状态.
  2. 被以往经验束缚, 武断认为302就是sso登陆问题, 导致走了弯路
  3. 删除数据应通过接口, 避免手动操作, 导致数据库状态不一致引起程序异常

评论