有时连接不上tracker导致上传文件失败

发布于 2022-09-18 03:19:50 字数 2065 浏览 12 评论 0

最新版v1.20,两个tracker部署在3.26和3.167两台机器,问题一致。
启动一段时间后提示连接、send和recv失败,导致上传文件有时失败。

条件是tracker的group分发策略配置为2:
# the method of selecting group to upload files
# 0: round robin
# 1: specify group
# 2: load balance, select the max free space group to upload file
store_lookup=2
配置为0或1时不出现。

tracker启动信息如下,时间间隔普遍设置比默认的短些:
[2009-09-15 16:24:53] INFO - FastDFS v1.20, base_path=/home/gluster/fastdfs, network_timeout=10s, port=22122, bind_addr=192.168.3.167, max_connections=256, store_lookup=2, store_group=, store_server=0, store_path=0, reserved_storage_space=4096MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=30s

日志或提示如下:
tracker errlog:
[2009-09-15 15:28:48] ERROR - file: tracker_service.c, line: 100, client ip: 192.168.3.26, send data fail, errno: 32, error info: Broken pipe
[2009-09-15 15:28:53] WARNING - file: tracker_service.c, line: 1964, client ip: 192.168.3.167, recv data fail, errno: 107, error info: Transport endpoint is not connected

storage errlog:
[2009-09-15 15:31:07] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.3.26:22122
[2009-09-15 15:31:17] ERROR - file: tracker_client_thread.c, line: 717, tracker server 192.168.3.26:22122, recv data fail, errno: 110, error info: Connection timed out.
[2009-09-15 15:31:18] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.3.26:22122

fdfs_test上传文件有时失败,提示:
[2009-09-15 15:23:41] ERROR - connect to 192.168.3.167:22122 fail, errno: 111, error info: Connection refused
tracker_query_storage fail, error no: 2, error info: No such file or directory

另外值得高兴的是v1.20的文件同步功能OK,文件状态更新准确,即使手工破坏掉一个storage的数据,清理该storage data/下的:
.data_init_flag
storage_stat.dat
data/sync/*
然后重启文件又能从本group的其他storage再次同步过来,yuqing太帅了!

[ 本帖最后由 happy_fastdfs 于 2009-9-15 16:33 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

送舟行 2022-09-25 03:19:50

看你的日志信息,tracker server 192.168.3.167的服务进程貌似没有启动,或者出现异常?

离旧人 2022-09-25 03:19:50

原帖由 happy_fish100 于 2009-9-15 18:31 发表
看你的日志信息,tracker server 192.168.3.167的服务进程貌似没有启动,或者出现异常?

确认两个tracker和2group*4个storage都在运行,很容易重现的,主要配置tracker:
# the method of selecting group to upload files
# 0: round robin
# 1: specify group
# 2: load balance, select the max free space group to upload file
store_lookup=2

有时tracker的log不提示出错,但storage都会不停写出:
[2009-09-16 12:25:50] ERROR - file: tracker_client_thread.c, line: 717, tracker server 192.168.3.26:22122, recv data fail, errno: 110, error info: Connection timed out.
[2009-09-16 12:25:51] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.3.26:22122
[2009-09-16 12:25:56] ERROR - file: tracker_client_thread.c, line: 717, tracker server 192.168.3.167:22122, recv data fail, errno: 110, error info: Connection timed out.
[2009-09-16 12:25:57] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.3.167:22122
而这两个tracker都在运行中。

昨迟人 2022-09-25 03:19:50

是在压力测试情况下才出现这个现象么?

姐不稀罕 2022-09-25 03:19:50

不需要压力,我只是这样启动tracker后,客户端随便传些文件和用monitor发几次请求,过会就能看到tracker和storage的日志里面不停的慢慢打出上述日志,从代码看是storage跟tracker交互时(如join请求)触发的,errlog的频度根据心跳或上报间隔。

不过这个问题,可以通过不设置tracker的group分发策略为load balance而规避。

乖乖公主 2022-09-25 03:19:50

这个问题我定位一下。

扛起拖把扫天下 2022-09-25 03:19:50

V1.20 tracker server增加了alive检测,tracker server在指定时间内没有收到数据包,会主动断开连接。tracker server上配置的alive检测时间一定要比storag server的心跳间隔时间要长,通常是storage心跳间隔时间的2~3倍。
请LZ检查一下配置文件。

冷…雨湿花 2022-09-25 03:19:50

是否跟我使用的是64位机器有关?我调整了时间间隔还是一样的,tracker server上配置的alive检测时间(20秒)一定要比storag server的心跳间隔时间(10秒)要长,通常是storage心跳间隔时间的2~3倍。

编译时有几个warning,你看看有没隐患,我测试得跑得还算正常,看这几个警告指的都是sock int与指针转换的,反正sock值很小,转换不会乱:
tracker_service.c:1870: warning: cast from pointer to integer of different size       
fdfs_trackerd.c:195: warning: cast to pointer from integer of different size
storage_service.c:2998: warning: cast from pointer to integer of different size
fdfs_storaged.c:222: warning: cast to pointer from integer of different size

费了半天没找出原因算了不查了,配置时回避一下好了。

[ 本帖最后由 happy_fastdfs 于 2009-9-17 11:42 编辑 ]

夏了南城 2022-09-25 03:19:50

这个类型转换是没有任何问题的。
如果有问题,测试程序根本就跑不通的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文