- 论坛徽章:
- 4
|
回复 #1 congsh777 的帖子
配置文件tracker.conf中的网络超时默认值是60秒,你采用的是默认配置吧。形如:
network_timeout=60
心跳是storage server主动向tracker server发送的,默认时间间隔是30秒。形如:
heart_beat_interval=30
kill掉storage服务进程时,网络连接会断开,此时tracker server在recv时会立即返回0。
拔掉网线时,服务器端应该无法自动感知到的,只能靠recv超时来判断。
tracker server相应的处理代码参见:
文件:tracker_service.c
函数:void* tracker_thread_entrance(void* arg)
代码行:result = tcprecvdata_ex(client_info.sock, &header, \
sizeof(header), g_network_timeout, &recv_bytes);
if (result == ETIMEDOUT && count > 0)
{
continue;
}
...
目前tracker server的处理机制是允许超时的,recv超时仍然会保持连接(继续recv)。 |
|