2017-03-31 Roger
一个页面需要滑动才能加载数据的BUG 今天遇到了一个页面需要滑动才能加载出数据的神奇问题~ 努力排查后发现,由于是在非主线程调用了 RecycleView 的刷新,造成了列表的卡顿。 公司在项目前期使用了很多的 RxJava,造成很多的回调,其中的业务逻辑乱飞,各个回调方法运行在哪个线程很难判断,可读性极差,稍不注意就会造成在业务线程调用 UI 更新。 继续阅读 »
2015-04-03 Roger
写下这个标题我脸都红了.. 不来点干货怎能留下你们呢,客官请留步,好酒好肉马上来。 QA大大们提了个BUG:打开WIFI条件下,疯狂点击便携式热点按钮,接着按钮就再也点不动了。 跟进代码一看,哎呀我去,没人改过,这是google写的。在最新的5.0系统中测试,一样存在这个问题。卧槽,QA太牛了,google好几年没测出来的BUG你都能发现。 继续阅读 »
2016-03-27 kk
在 python 中表示 tuple 很多种方式,下面是比较常用的两种 python () (1,) 1, # 导致bug的尾逗号 (1,2) 1,2 (1,2,...) 1,2,... 继续阅读 »
2015-06-15 litaotao
1. failed to write data to stream 环境:ipython, OSX 操作:在ipython里import 一个pure module 问题: Python - ERROR - failed to write data to stream: ', mode 'w' at 0x104c8f150> 办法:export PYTHONIOENCODING=UTF-8 will solve it. 相关:stackoverflow 继续阅读 »
2018-01-11 LEo
最近的主要工作就是bug fix,所以借此机会总结下,都是bug fix的相关内容,其实是我工作中遇到的一些小问题,有些道理很简单,但没经历过,也就未必明白。本次主要分享以下5点: 代码有bug是常态 bug fix一定要找到root cause 提交的代码一定要测试通过 提交代码一定要有commit信息 bug fix时能删除的代码就不要注释 继续阅读 »
2017-01-18 JustWe
AppCode 中添加了直接对CocoaPods的关联: 但是直接关联 Ruby SDK 和 CocoaPods 的时候会发现提示错误: ruby Usage of the constant `Pod::SourcesManager` is deprecated, use `Pod::Config.instance.sources_manager` instead (called from /Applications/AppCode.app/Contents/bin/cocoapods_common.rb:4:in `init_master_repo') Usage of the co 继续阅读 »
2016-11-13 ruki
在分析了各大开源协程库实现后,最终选择参考boost.context的汇编实现,来写tbox的切换内核。 在这过程中,我对boost各个架构平台下的context切换,都进行了分析和测试。 在macosx i386和mips平台上实现协程切换时,发现boost那套汇编实现是有问题的,如果放到tbox切换demo上运行,会直接挂掉。 在分析这两个架构上,boost.context切换实现问题,这边先贴下tbox上的context切换demo,方便之后的讲解: 继续阅读 »
2015-05-20 刘太华
一次悲惨的PY注入式漏洞 在前一篇里讲过的使用cpp和python互相调用方法的结构。 这两天就有一个相关漏洞被人利用了, 异常悲惨。 我们的场景服务对每一个GameWorld都有一个PyTermWorld, 是用来接受数据服务发送过来的连接信息的, 比如可以通过协议连接socket到PyTermWorld, 发送LevelUp, 发送 AddExp等, 也有其他命令是通知PyTermWorld调用相关Python函数的, 比如send_cmd(cmd='import notify;notify.test(xxx,yyyy)') 这样的命令, 这里面的cmd会带上具体的脚本模块以及具体的python方法名称, 继续阅读 »
2016-03-16 Piasy
今天代码写着写着就莫名闪退了,手机也没有“程序停止运行”的提示,logcat也没有看到蓝色的调用栈log,这样的闪退最是蛋疼了,还好必现。复现几次之后,终于从logcat中看到了一行可疑的log:A/Looper: Could not create epoll instance. errno=24,看起来又是在native层闪退了。本文就把这个问题的分析解决过程记录了下来。 继续阅读 »
2015-09-16 Piasy
建议:函数调用的时候,调用方传给被调用方的参数,如果在调用之后还会被修改,那么调用方应该给被调用方传一个当时的拷贝,深拷贝,否则将会导致潜在的bug: 可能被调用方是异步执行的,如果调用函数之后,参数发生了修改,那么被调用方执行的时候,看到的就是被修改之后的数据,这将导致严重、隐蔽、非必现的BUG,而这种BUG是最让人头疼的 可能被调用方会修改传入的参数,这就导致函数执行完毕之后,调用方看到的数据发生了非预期的变化,这同样会导致严重、隐蔽的BUG 继续阅读 »