结构介绍:

最近在写游戏中社交相关的逻辑处理。整体思路架构如下:

当玩家登录游戏,去数据库中查找有没有玩家的信息,如果有,那么就取出来,放在内存中,如果没有,就新建一个玩家信息。

当玩家登出游戏的时候,把玩家的信息从内存中写入数据库中

现场日记:

今天在做单元测试的时候,发现一个bug,当玩家第一次登录游戏,然后登出之后,玩家的信息竟然没有存到数据库里。

当玩家第二次登录的时候,再登出游戏,竟然存到数据库里了。

分析过程:

在知晓这个bug之后,仔细打印从玩家登录到登出过程中运行的每一个函数。经过一翻查找,发现玩家在登出游戏的时候,玩家的信息

往数据库里存储的时候报错,并且错误被劫持。

紧接着,开始打印错误日志,发现当玩家的信息往数据库里面写入的时候,有一个信息从内存中读取失败。

然后分析这个信息,发现了之前思维的一个漏洞:

之前的想法是当玩家第一次登录的时候,先校验用户名和密码,如果不存在用户,那么就会新建一个。这时候,应该接着新建一个初始

的玩家信息,但是之前没有执行这一步。所以导致玩家的信息一直都没有,自然就写不入数据库里。

最终解决方案:

在玩家第一次登入的时候,初始化玩家信息,并存入数据库中

bug修复日记------玩家第一次登陆的信息没有存储相关推荐

  1. bug修复日记---------玩家信息被重复写入数据库

    结构介绍: 当客户端下线的时候,客户端会发一个消息给服务端,告诉服务端,我要下线,接着,客户端就会执行下线的函数 下线函数里会执行让服务端往数据库里写客户端的数据的函数并且把这个客户端从session ...

  2. dnf过年服务器维护否,DNF服务器或发生重大漏洞,玩家:维护这么慢,这些BUG修复了吗?...

    原标题:DNF服务器或发生重大漏洞,玩家:维护这么慢,这些BUG修复了吗? 爱玩游戏,分享快乐,我是游戏欢乐Tree. DNF每周四都是例行服务器维护的日子,玩家们对此已经早就习以为常.每次服务器维护 ...

  3. ninjala还是显示服务器维护,Ninjala更新2.0版本 调整了武器平衡以及BUG修复

    <Ninjala>更新2.0版本,泡泡糖忍战今日更新了最新的版本2.0,分别调整了大部分游戏的平衡性以及武器平衡,还修复了BUG错误 机制调整: -整合全球服务器,匹配已不受服务器限制 - ...

  4. Saiku Table展示数据合并bug修复(二十五)

    Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据,如果点击了 非空的字段 按钮,则会自动进行数据合并,为空的数据行以及数据列都会自动隐藏掉. 首先我们应该定位问题: ...

  5. 我的世界服务器如何修复报错,我的世界18w30a发布_我的世界1.13版本bug修复

    我的世界1.13版本刚刚上线没多久,官方就发布了18w30a,修复了游戏中的诸多bug,说实话,这次版本更新中的bug还真是不少啊,那么究竟有哪些内容呢,赶快来跟小编一起看一下吧! 我的世界1.13版 ...

  6. 12月19日绝地求生服务器维护公告,绝地求生12月19日更新内容有哪些更新到几点 BUG修复哪些...

    绝地求生12月19日正式服更新,PC1.0版本第24轮更新公告追加内容正式上线,接下来给大家带来具体的更新内容及更新时间,一起来看看吧. [正式服维护公告] 我们将在北京时间12月19日(星期三) 0 ...

  7. TensorFlow 1.7.0正式发布,Bug修复和改进内容都在这里了

    编译 | AI科技大本营(公众号ID:rgznai100) 参与 | 张建军 TensorFlow 1.7.0 近日正式发布,新版本主要有以下改进内容,AI科技大本营对其进行了编译. 主要特征和改进 ...

  8. PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆...

    PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆  什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数 ...

  9. Swoole 1.8.12 发布,Bug修复版本

    PHP的异步.并行.高性能网络通信引擎Swoole 已发布 1.8.12 版本.此版本是一个BUG修复版本,修复了多个细节问题.建议所有用户升级至此版本. 主要更新: 修复SwooleTable在遍历 ...

最新文章

  1. spring执行定时任务
  2. 【解决方案】istio-ingressgateway HTTP probe failed with statuscode: 503
  3. 100行java电路程序_easyopen原理解析——不到100行代码实现一个最精简的easyopen
  4. 一个Java程序是怎样运行起来的【class解析全过程】
  5. 微信开发系列之二 - 在微信公众号里开发一个自动应答的图灵机器人
  6. 前端每周清单第 30 期:WebVR 指南,Vue 代码分割范式,理想的 React 架构特性
  7. python中continue用法案例_Python continue语句实例用法
  8. 用于科研的移动机器人平台推荐
  9. flyme7 android彩蛋,魅族 15 系列开启预约,Flyme7 或是发布会彩蛋
  10. 修复 IE 的文本3像素偏移Bug
  11. AI如何提升10倍筛药效率?6月18日华为云携手中科院上海药物所揭开谜底
  12. linux内核按键驱动,嵌入式Linux按键驱动框架
  13. 【C++编程技巧】函数多个返回值
  14. python实现归并排序_排序算法学习(python版本)之归并排序(MergeSort)
  15. jupyter怎么安装jieba_记录 anaconda安装jieba
  16. word 全部标题降级
  17. ppt计算机实验报告册,PPT实验报告模板
  18. Base64、32、16 编码解析
  19. Key(Windows Android),申请 android google 地图 API key(转)
  20. WinForm分页控件

热门文章

  1. 撞库是什么意思?与洗库和拖库有什么关系?
  2. 计算机windows7连接打印机
  3. Android 如何清空 Canvas 清屏只需三句话
  4. 【读论文04】CVPR2022选读
  5. 使用mint ui(一)
  6. 家庭哑铃健身训练计划
  7. spring boot通过微信扫码登录
  8. 火车票退票费计算,2013年起,火车票退票费比例下调:票面乘车站开车时间前48小时以上的按票价5%计退票费。同时,车票退票费的计算方法不再四舍五入到元为单位,而以5角为单位:尾数小于0.25元的舍去
  9. 一个竞赛蒟蒻,开个Blog玩玩
  10. 隐私泄露、AI换脸存风险 11家企业被约谈