有一个bug,隐藏还算比较深,Dev和Tester调查了一段时间才找到root cause。Feature是这样的:kill掉指定用户的一个Xvnc进程。在寻找用户进程时,code使用了一个Linux标准的命令ps。
#ps -C Xvnc -o "user,pid,args" --no-headers
问题是当User name超过8个字符以后,ps输出的user name不是真的username,而是uid。所以,程序按username去查找便出错了,找不到这个用户。
Solution有两个:1.不要使用username来查询,直接上uid,这样动的code比较多。2.使用header width来强制使username显示出来ps -C Xvnc -o "user:128,pid,args" --noheaders
这个case教育我们测试用户的时候,要使用长一些的用户名。哈哈