美文网首页
一个关于session奇怪的BUG

一个关于session奇怪的BUG

作者: Kair | 来源:发表于2015-12-31 23:14 被阅读105次
  1. 环境如下:
    thinkphp + PHP5.4 + apache + mysql + linux/windows.

  2. bug描述如下:
    当我页面进行登录的时候,一开始登录上去了,然后隔一段时间,突然间就又自动退出了,而且退出的session返回之前的状态,很难寻找究竟BUG出现在哪里。

  3. 解决过程如下:

  • 首先,和同事尽力地去重现这个BUG,但是发现这个BUG是不定时出现的,刷着刷着就出现了,很奇怪问题究竟出现在什么地方,于是就无限重复地尝试重试BUG,总结了这个BUG的规律大概就是,隔一段时间,就自动刷新回以前的session。
  • 之后无限重读了thinkphp的源码,发现问题并不大,怎么思考都觉得没有这方面的BUG。
  • 回忆了这几天所做的修改,发现最大的就是把session存进数据库,还有就是新版页面的轮询。于是翻查了数据库的东西,发现并没有存在这些问题,无论如何都是在我打开登录页面,登录之后,刷新回某个页面发生的事情。
  • 在同事的提醒下,突然间明白了整个BUG的产生过程。
  1. BUG发生的原因解析:
  • 我在其他页面使用了轮询,这是一个单独的线程,然而session的机制,当我关闭这个线程的时候,PHP会将当前session重新写入,这样就导致了,虽然我已经登录了,但是由于轮询的那个线程关闭时间还没到,当时间一到,线程关闭,session被重新写入,session被我无意中删除!
  1. 解决方案:
  • 在轮询的过程中,不需要写入session的话,则session_write_close()
  • 当你需要写入session,再session_start()

这个BUG非常之无脑= =,两个人合作查找了一两个小时,不过问题最终还是解决完毕了。记录一下。

相关文章

  • 一个关于session奇怪的BUG

    环境如下:thinkphp + PHP5.4 + apache + mysql + linux/windows. ...

  • 关于一个奇怪Bug的处理

    是个人,他能想得到,是记录文件出的问题?----序通过这篇文章,希望大家可以理解我们的思想,同时明白一个道理——没...

  • 奇怪的“bug”

    今天是1月1日,为了一些事情,我把电脑的时间调到1月10日进行工作。期间我用VS2010发布过我的web程序。发布...

  • 奇怪的bug

    昨天用php curl模拟post发送请求,测试环境一切正常线上却返回了false。 调查了大半天解决了问题,但是...

  • 奇怪的bug

    bug年年有,最近特别多,今天用我的小米笔记本下载点东西,路由器在我面前,却死活连不上,好不容易连上之后显示有In...

  • 奇怪的bug

    1、3S提示,一闪而过:sources——右边暂停按钮 2、动态下拉框定位快捷键:ctrl+shift+C 3、e...

  • 一个奇怪的 Bug

    一个奇怪的 Bug[https://develop.pulsgarney.com/article/an-inter...

  • 关于Camera$Parameters的BUG历险记

    最近在开发系统的相机应用,今天发现一个奇怪的BUG,Camera.java里面报的一个关于LinkedHashMa...

  • 日常排BUG1 - Java测试junit之@Test+@Bef

    场景:hibernate建立(@Before)和关闭(@After)session的时候BUG: java.lan...

  • 大战一个奇怪的bug

    初窥事实 经测试,我的个人管理程序在自己的电脑上运行正常,但是在其他电脑上运行会出现严重错误,导致无法正常登录,报...

网友评论

      本文标题:一个关于session奇怪的BUG

      本文链接:https://www.haomeiwen.com/subject/agxwhttx.html