Ticket #18 (closed defect: fixed)

Opened 15 years ago

Last modified 15 years ago

cms发布调商城接口出现空白问题

Reported by: chenchongqi Owned by: lidarong
Priority: major Milestone:
Component: 商家后台 Version: 5.0
Keywords: Cc:
Due Date:

Description (last modified by chenchongqi) (diff)

最近接到报障,cms发布的一些分站、栏目页调用商城接口随机出现空白现象。从时间上看,是接口页面改用memcached和调整了refresh参数后出现,具体原因是否和这次调整相关还要再检查。

具体表现是:
1.nginx缓存了一个空白文件,里面只有一个空格。而报障后去查mc缓存和逐台服务器检查resin是有数据的。
2.nginx访问resin如果返回不是200不会做缓存。
3.resin这边如果返回200,肯定会带接口描述文字,这部分没有做页面缓存,这是个矛盾,不知道nginx这个空格文件从何而来。

逻辑上的可能性:
1.resin接口报错,但是吞掉了异常,还是返回200,因为出现异常,所以没有按代码顺序去返回接口描述文字。
2.nginx缓存的时候一切正常,但是出于某种原因,nginx自己或者操作系统修改了缓存文件。
3.nginx收到请求的时候,有一定几率没有正常访问resin,而是访问一个别的什么东西生成了带一个空格的文件。

Change History

comment:1 Changed 15 years ago by chenchongqi

  • Status changed from new to assigned

出现过空白的页面:
 http://family.pconline.com.cn/ (注:这个页面上的接口small_hot_visit_company_product_array_js.jsp 改回了用oscache)

 http://gz.pconline.com.cn/
 http://shanghai.pconline.com.cn/
 http://diy.pconline.com.cn/mouse/
 http://diy.pconline.com.cn/vocality/

comment:2 Changed 15 years ago by chenchongqi

  • Description modified (diff)

comment:3 Changed 15 years ago by lidarong

今日发现,制作(偷偷)把refresh=true参数传递过来 穿透了这边的缓存(oscache mc)。
今天的修改是
1.把refreshCode换回来
2.把jsp里的java声明放到第一行
3.small_hot_visit_company_product_array_js.jsp 使用refreshCode

待观察

comment:4 Changed 15 years ago by chenchongqi

改回refresh=true参数后目前观察的结果正常,但是为什么发布的时候如果refresh不起作用的时候,应用会返回空白,这个原因待查。

comment:5 Changed 15 years ago by chenchongqi

  • Cc chenyinle@…, yuanhuoqing@… removed

观察结果显示,改回refresh=true参数后仍然有空白现象。

观察过nginx和resin的accesslog,有出现nginx取到200 0,但是resin200 xxxx的情况,但是不能确定是这个原因引起,因为200 0出现的几率比较大,并且其他应用也有200 0的情况。

目前暂时把nginx缓存去掉,改为jsp里设置expire,观察一段时间,如果没有问题,再改为nginx使用memcached模块来处理。

comment:6 Changed 15 years ago by chenchongqi

按目前观察的情况来看,去掉nginx缓存后没有出现空白现象,期间有过一次空白但不是同一个问题,查明是js出错,在4.0的firefox上没有显示出来。

comment:7 Changed 15 years ago by chenchongqi

  • Status changed from assigned to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.