Web Analytics

都是病毒惹得祸

上周日下午,接到同事的一个寻求支持的电话,原来是部门以前给中国联通做的一个运行在PC服务器上的程序在每天凌晨出现’挂死’情况,导致程序运行中断,问题连续几天复现。程序是老程序,在不下十多个省运行,一直都很稳定。通过联通的人发过来的截图,很难定位问题所在,所以只能打车到了联通机房现场查看了。 ...

January 18, 2008 · 3 min · Tony Bai

QA人员一定要有实际项目经验

最近一段时间正处于项目策划阶段,这个阶段势必要和部门QA打交道,咨询问题并获取支持。按照我们公司的软件开发流程,策划阶段要输出一系列文档的。这些文档都是有公司模板或者是经部门裁剪后模板作为基础的,所以现在项目前期策划基本上就是按照自己的思路填写文档,估计很多公司也都是这么做的。 ...

January 7, 2008 · 3 min · Tony Bai

也谈’SIGBUS和SIGSEGV’

SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。内存问题一直是最令我们头疼的事情,弄清楚两个信号的发生缘由对我们很好的理解程序的运行是大有裨益的。 我们来看两段程序: //testsigsegv.c int main() { char *pc = (char*)0×00001111; *pc = 17; } ...

December 19, 2007 · 3 min · Tony Bai

一个很有意思的Bug

这个Bug源于昨天凌晨的一次版本升级失败。睡了一大觉后,下午回到公司,重现了这个问题并找到了原因,发现这的确是一个’很有意思的Bug’。 ...

December 18, 2007 · 3 min · Tony Bai

'符号连接'那些事儿

我们在编译自己开发的程序或者一些开源软件的时候,常常遇到类似如下的编译器错误信息: 未定义 文件中的 符号 在文件中 i /var/tmp//ccU4sj6I.o func /var/tmp//ccU4sj6I.o ld: 致命的: 符号参照错误. 没有输出被写入a.out collect2: ld returned 1 exit status ...

December 8, 2007 · 7 min · Tony Bai

回顾TCP协议那些事儿

我不是计算机科班出身。记得大学的时候旁听计算机系的网络课,当时计算机系使用教材是"计算机网络–自顶向下方法与Internet特色“的影印版,这本教材与众不同的一个地方就是作者JAMES F.KUROSE和KEITH W.ROSS采用了’自顶向下’的编排思路,先从应用层开始,最后讲到物理层。而且这本书在语言上形象生动,通俗易懂。只怪我当初没有一心一意听讲,到现在存在我的脑子中的基本概念居多,深刻理解甚少。以致于工作后遇到此类的问题,只能恶补。这不,在12月1日凌晨全国统一短信类服务接入代码的调整工作中,我就遇到了此类问题,不得不再次抱起W.Richard Stevens的’TCP详解卷一‘啃了啃,回顾一下TCP协议那些事儿。 ...

December 6, 2007 · 6 min · Tony Bai

也谈'万能'栈

在网上搜索"万能"二字的英文翻译,结果却无意中看到有人提到了如何设计"万能栈"。栈(stack)是比较基础(fundamental)的数据结构,实现起来一般都比较容易。但一般的栈(stack)的实现都是局限于某种特定类型的,比如一个存储32-bit整型的栈。如果对于同一份栈实现,要求可以存储多种数据类型的话,那就需要仔细想想了。而这样的栈实现也就被戏称"万能"栈。 ...

November 27, 2007 · 3 min · Tony Bai

又获Ubuntu 7.10光盘

Mark Shuttleworth,Ubuntu的创始人,给了Ubuntu爱好者一个免费获取Ubuntu光盘的机会,自从去年年初收到一次Ubuntu 5.10的光盘后,昨天我又拿到了最新的Ubuntu 7.10的光盘。 去年的光盘数目很多,估计当时的Canonical是为了扩大自己的linux distribution的影响,在"shipit“页面上鼓励你多多索取光盘。也正如Canonical所期望的,我将大部分光盘都分给了周围的同事和朋友了,也算帮Ubuntu进行了一次"推广"工作了:) 而这次我申请光盘时,其网站上提供的标准选择就是一张PC CD和一张64-bit PC CD了。当然你也可以选择索取更多,但是页面上会提醒你索取非标准选项的光盘数目,邮递周期会长达6-10 weeks。我选择了标准选项。从提交订单到拿到光盘,好像只用了3 weeks的时间。 ...

November 25, 2007 · 2 min · Tony Bai

面对'错误'的抉择

大凡写程序者,都会遇到错误; 大凡写程序者也都知道两种错误处理的机制:传统的’错误码返回机制’和’面向对象语言引入的异常处理机制’。 ...

November 13, 2007 · 4 min · Tony Bai

遭遇Heap溢出

今天凌晨配合云南移动进行局数据全量升级,本来以为是件很轻松的活计,甚至不需要我动手的事情,结果却又是一次惨痛的教训啊。 这个活计其实真的很简单,就是将数据库中的旧数据全部删除,然后导入新的数据,由于数据量较大需要重启一次我们的系统。问题就在重启系统上。摆在我面前的就是"重启失败",系统dump一个core文件。通过pstack和gdb查看如下: core ‘core’ of 7971: xxxxx -s fe647b38 t_splay (3a71b0, 229, 228, 3a7000, 3ca548, 8000000) + 14 fe6475ec realfree (3ca320, 741f4, 320974, fe6bc000, 0, 3209a5) + c8 fe647e5c cleanfree (0, 7, fe6c29bc, 1a8, 3a7008, 0) + 54 fe646f88 _malloc_unlocked (ea60, 0, ff13de50, fe6bc000, ff184ae6, 0) + f4 fe646e78 malloc (ea60, 3e8, 0, 2, f8e9dacb, 1) + 20 000fa330 我们一业务函数,暂叫A_func吧 (18, 186a0, ffbfe4b0, 30330000, 37, ff00) + 1fc ...

November 10, 2007 · 3 min · Tony Bai