免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 26490 | 回复: 7
打印 上一主题 下一主题

[FastDFS] 关于fastdfs连接池recv package size -1 != 10异常,求解答 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-03 14:16 |只看该作者 |倒序浏览
fastdfs--java -连接池-V1.0.zip (5.74 KB, 下载次数: 87)

敬爱的鱼大:
    解救我吧,,,这个异常总是出现的很诡异,我现在怀颖不是我客户端的问题。现在看异常,。

描述:
LoopUploadTest是我连接池上传测试类。我的文件上传操作类为:ImageServer(接口),ImageServerImpl负责实现。ConnectionPool是具体的保持 连接类。

里面有两个容器,busyConnectionPool用于存放正在使用的连接,idleConnectionPool用于存放空闲的连接,checkin和checkout负责将空闲和正在使用的连接转换。


里面有个drop方法。上传文件发生异常的时候,我会将连接关闭,并删除,用新的代替。里面还有一点特殊功能,就是当管理平台和trackerserver之间的关系 ,如果trackserver意外终止,但一会又好了,管理 平台不用重新启动,连接池可以重新建立。

整体思路就如上边,但现在老是报异常。当我在LoopUploadTest的间隔        Thread.sleep(1000*60);会时不时的报错,,,,间隔少了就不会,


求解答。。
求解救。。。。


源代码已经上边,望有空查看。项目在急。。。。

group1/M00/01/B2/wKgEdVC8MjXIvxqEAAAmlrYh34k3622898

java.io.IOException: recv package size -1 != 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:242)
        at org.csource.fastdfs.TrackerClient.getStoreStorage(TrackerClient.java:143)
        at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1912)
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:702)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:207)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:225)
        at org.csource.fastdfs.StorageClient1.upload_file1(StorageClient1.java:112)
        at com.imageserver.ImageServerImpl.send(ImageServerImpl.java:79)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:62)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:55)
        at test.LoopUploadTest$1.run(LoopUploadTest.java:53)
2012-12-3 14:00:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool drop a connnection
2012-12-3 14:00:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool size:4
2012-12-3 14:00:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool add a connnection
2012-12-3 14:00:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool size:5
java.io.IOException: recv package size -1 != 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:242)
        at org.csource.fastdfs.TrackerClient.getStoreStorage(TrackerClient.java:143)
        at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1912)
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:702)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:207)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:225)
        at org.csource.fastdfs.StorageClient1.upload_file1(StorageClient1.java:112)
        at com.imageserver.ImageServerImpl.send(ImageServerImpl.java:79)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:62)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:55)
        at test.LoopUploadTest$1.run(LoopUploadTest.java:53)

java.io.IOException: recv package size -1 != 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:242)
        at org.csource.fastdfs.TrackerClient.getStoreStorage(TrackerClient.java:143)
        at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1912)
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:702)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:207)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:225)
        at org.csource.fastdfs.StorageClient1.upload_file1(StorageClient1.java:112)
        at com.imageserver.ImageServerImpl.send(ImageServerImpl.java:79)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:62)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:55)
        at test.LoopUploadTest$1.run(LoopUploadTest.java:53)
2012-12-3 14:01:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool drop a connnection
2012-12-3 14:01:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool size:4
2012-12-3 14:01:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool add a connnection
2012-12-3 14:01:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool size:5
java.io.IOException: recv package size -1 != 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:242)
        at org.csource.fastdfs.TrackerClient.getStoreStorage(TrackerClient.java:143)
        at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1912)
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:702)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:207)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:225)
        at org.csource.fastdfs.StorageClient1.upload_file1(StorageClient1.java:112)
        at com.imageserver.ImageServerImpl.send(ImageServerImpl.java:79)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:62)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:55)
        at test.LoopUploadTest$1.run(LoopUploadTest.java:53)

java.io.IOException: recv package size -1 != 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:242)
        at org.csource.fastdfs.TrackerClient.getStoreStorage(TrackerClient.java:143)
        at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1912)
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:702)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:207)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:225)
        at org.csource.fastdfs.StorageClient1.upload_file1(StorageClient1.java:112)
        at com.imageserver.ImageServerImpl.send(ImageServerImpl.java:79)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:62)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:55)
        at test.LoopUploadTest$1.run(LoopUploadTest.java:53)
2012-12-3 14:02:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool drop a connnection
2012-12-3 14:02:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool size:4
2012-12-3 14:02:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool add a connnection
2012-12-3 14:02:48 com.imageserver.pool.ImageServerPoolSysout warn
警告: ImageServerPool size:5
java.io.IOException: recv package size -1 != 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:242)
        at org.csource.fastdfs.TrackerClient.getStoreStorage(TrackerClient.java:143)
        at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1912)
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:702)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:207)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:225)
        at org.csource.fastdfs.StorageClient1.upload_file1(StorageClient1.java:112)
        at com.imageserver.ImageServerImpl.send(ImageServerImpl.java:79)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:62)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:55)
        at test.LoopUploadTest$1.run(LoopUploadTest.java:53)

group1/M00/01/B2/wKgEdVC8MyXHWVyUAAAmlrYh34k9827938

group1/M00/01/B2/wKgEdVC8M2GlPtJ6AAAmlrYh34k4039707

java.io.IOException: recv package size -1 != 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:242)
        at org.csource.fastdfs.TrackerClient.getStoreStorage(TrackerClient.java:143)
        at org.csource.fastdfs.StorageClient.newWritableStorageConnection(StorageClient.java:1912)
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:702)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:207)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:225)
        at org.csource.fastdfs.StorageClient1.upload_file1(StorageClient1.java:112)
        at com.imageserver.ImageServerImpl.send(ImageServerImpl.java:79)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:62)
        at com.imageserver.ImageServerImpl.uploadFile(ImageServerImpl.java:55)
        at test.LoopUploadTest$1.run(LoopUploadTest.java:53)

论坛徽章:
0
2 [报告]
发表于 2012-12-03 15:05 |只看该作者
真的很怪。我如果在申请和个trackerserver的连接,就用每个连接都上传一次图片,这样都不会报错,,,但就是用几个不用,就报错,望楼主给答复,在线等。

论坛徽章:
0
3 [报告]
发表于 2012-12-03 15:12 |只看该作者
真的很怪。我如果在申请和个trackerserver的连接,就用每个连接都上传一次图片,这样都不会报错。。。往后,可以拿出任意一个连接去上传了,也不用都拿出来去上传了。,,为什么

论坛徽章:
0
4 [报告]
发表于 2012-12-03 15:47 |只看该作者
# network timeout in seconds
network_timeout=60



我了个去。。。。。。。。。。。。。。。。。。。。。。。。。。。。

问一下,这个可以禁用吗

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
5 [报告]
发表于 2012-12-03 17:26 |只看该作者
zhanghua1199 发表于 2012-12-03 15:47
# network timeout in seconds
network_timeout=60


问题不是出在这里。
你建立连接后,需要发送一次请求,否则超过network_timeout后会被server端踢掉。
建立连接后,可以发送一个ACTIVE TEST请求。这样就能和server端保持长连接了。

论坛徽章:
0
6 [报告]
发表于 2012-12-03 17:30 |只看该作者
回复 5# happy_fish100


怎么发,active test



    trackerserver.什么方法

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
7 [报告]
发表于 2012-12-03 17:41 |只看该作者
回复 6# zhanghua1199

java API:
org.csource.fastdfs.ProtoCommon
public static boolean activeTest(java.net.Socket sock)

论坛徽章:
0
8 [报告]
发表于 2016-03-21 21:48 |只看该作者
请问,关于java.io.IOException:recv package szae -1!=10的问题是如何解决的啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP