tfs启动nameserver失败排查

 

这两天在aws上搭建了一套tfs测试环境,结果在启动nameserver的时候失败了。

具体排查过程如下:

1. 首先怀疑是配置的问题,把配置反复检查了几遍,甚至把线上配置拷贝过来都无法启动。配置文件开启debug后,发现没有日志文件生成。

2. 其次怀疑是数据库的权限和配置问题。校验了一遍发现权限和表数据都是没问题的。

3. 无奈之下听同事的建议,试了下strace。

strace /home/work/app/tfs_server/bin/nameserver -f /home/work/app/tfs_server/conf/ns.conf -d > /tmp/a.log 2>&1
查看日志,结尾内容如下:
rename(“/home/work/app/tfs_server/logs/nameserver.log”, “/home/work/app/tfs_server/logs/nameserver.log.20150310164544”) = 0

open(“/home/work/app/tfs_server/logs/nameserver.log”, O_RDWR|O_CREAT|O_APPEND, 0640) = 3

dup2(3, 2) = 2

dup2(3, 1) = 1

close(3) = 0

rt_sigaction(SIGPIPE, {0x1, [PIPE], SA_RESTORER|SA_RESTART, 0x34776302d0}, {SIG_DFL, [], 0}, 8) = 0

getppid() = 19328

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2b8616906c60) = -1 ENOMEM (Cannot allocate memory)

exit_group(1)
 

看报错是因为无法获取内存导致的。由于我的测试机器是t1.micro,内存只有600M,换成m3.medium后问题解决。

自己把自己坑了一把,多么痛的领悟啊。多谢同事老何,哈哈。