tobato / FastDFS_Client

Java Client for FastDFS
GNU Lesser General Public License v3.0
1.48k stars 516 forks source link

recv cmd: 96 is not correct, expect cmd: 100 #248

Open suzuyong opened 3 years ago

suzuyong commented 3 years ago

下面是dubug信息: c.g.t.fastdfs.domain.conn.FdfsConnectionManager - 获取到Tracker连接地址/192.168.7.118:22122 c.g.tobato.fastdfs.domain.conn.DefaultConnection - check connection status of com.github.tobato.fastdfs.domain.conn.DefaultConnection@1baa6570 c.g.t.fastdfs.domain.conn.FdfsConnectionManager - 对地址/192.168.7.118:22122发出交易请求TrackerGetStoreStorageCommand c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 发出交易请求..报文头为ProtoHead [contentLength=0, cmd=101, status=0] c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 交易参数为[] c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 服务端返回报文头ProtoHead [contentLength=40, cmd=100, status=0] c.g.t.fastdfs.domain.proto.mapper.ObjectMetaData - dump class=com.github.tobato.fastdfs.domain.fdfs.StorageNode c.g.t.fastdfs.domain.proto.mapper.ObjectMetaData - ---------------------------------------- c.g.t.fastdfs.domain.proto.mapper.ObjectMetaData - FieldMetaData [field=groupName, index=0, max=16, size=16, offsize=0] c.g.t.fastdfs.domain.proto.mapper.ObjectMetaData - FieldMetaData [field=ip, index=1, max=15, size=15, offsize=16] c.g.t.fastdfs.domain.proto.mapper.ObjectMetaData - FieldMetaData [field=port, index=2, max=0, size=8, offsize=31] c.g.t.fastdfs.domain.proto.mapper.ObjectMetaData - FieldMetaData [field=storeIndex, index=3, max=0, size=1, offsize=39] c.g.t.fastdfs.domain.proto.mapper.FdfsParamMapper - 设置值是 FieldMetaData [field=groupName, index=0, max=16, size=16, offsize=0]group1 c.g.t.fastdfs.domain.proto.mapper.FdfsParamMapper - 设置值是 FieldMetaData [field=ip, index=1, max=15, size=15, offsize=16]192.168.7.118 c.g.t.fastdfs.domain.proto.mapper.FdfsParamMapper - 设置值是 FieldMetaData [field=port, index=2, max=0, size=8, offsize=31]23000 c.g.t.fastdfs.domain.proto.mapper.FdfsParamMapper - 设置值是 FieldMetaData [field=storeIndex, index=3, max=0, size=1, offsize=39]0 c.g.t.fastdfs.domain.conn.FdfsConnectionManager - return connect com.github.tobato.fastdfs.domain.conn.DefaultConnection@1baa6570 c.g.tobato.fastdfs.domain.conn.DefaultConnection - check connection status of com.github.tobato.fastdfs.domain.conn.DefaultConnection@1fbb3168 c.g.t.fastdfs.domain.conn.FdfsConnectionManager - 对地址/192.168.7.118:23000发出交易请求StorageUploadFileCommand c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 发出交易请求..报文头为ProtoHead [contentLength=192367, cmd=11, status=0] c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 交易参数为[0, 0, 0, 0, 0, 0, 2, -17, 96, 100, 111, 99, 120, 0, 0] c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 开始上传文件流大小为192352 c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 剩余数据量0 c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - 服务端返回报文头ProtoHead [contentLength=80562014694978, cmd=96, status=-126] c.g.t.fastdfs.domain.conn.FdfsConnectionManager - remove connect com.github.tobato.fastdfs.domain.conn.DefaultConnection@1fbb3168 c.g.tobato.fastdfs.domain.conn.DefaultConnection - disconnect from Socket[addr=/192.168.7.118,port=23000,localport=36162]

异常信息: 2020-11-16 14:22:20.777 [task-504] ERROR c.g.t.fastdfs.domain.proto.AbstractFdfsCommand - receive conent error java.io.IOException: recv cmd: 96 is not correct, expect cmd: 100 at com.github.tobato.fastdfs.domain.proto.ProtoHead.validateResponseHead(ProtoHead.java:123) at com.github.tobato.fastdfs.domain.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:106) at com.github.tobato.fastdfs.domain.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:50) at com.github.tobato.fastdfs.domain.conn.FdfsConnectionManager.execute(FdfsConnectionManager.java:81) at com.github.tobato.fastdfs.domain.conn.FdfsConnectionManager.executeFdfsCmd(FdfsConnectionManager.java:65) at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFileAndMetaData(DefaultFastFileStorageClient.java:223) at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFile(DefaultFastFileStorageClient.java:112) at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFile(DefaultFastFileStorageClient.java:68) at com.ccts.vfc.utils.FastDFSClientUtil.uploadFileStream(FastDFSClientUtil.java:117) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl.saveDocxPlanOrReport(VfcProjectServiceImpl.java:5183) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl.generateColdStoragePlan(VfcProjectServiceImpl.java:881) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl.generatePlan(VfcProjectServiceImpl.java:514) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl$$FastClassBySpringCGLIB$$16b4068.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl$$EnhancerBySpringCGLIB$$7c74302f.generatePlan() at com.ccts.vfc.task.service.AsyncTaskService.generatePlan(AsyncTaskService.java:60) at com.ccts.vfc.task.service.AsyncTaskService$$FastClassBySpringCGLIB$$c770a499.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:769) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747) at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2020-11-16 14:22:20.777 [task-504] ERROR c.g.t.fastdfs.domain.conn.FdfsConnectionManager - execute fdfs command error com.github.tobato.fastdfs.exception.FdfsIOException: 客户端连接服务端出现了io异常:socket io exception occured while receive content at com.github.tobato.fastdfs.domain.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:53) at com.github.tobato.fastdfs.domain.conn.FdfsConnectionManager.execute(FdfsConnectionManager.java:81) at com.github.tobato.fastdfs.domain.conn.FdfsConnectionManager.executeFdfsCmd(FdfsConnectionManager.java:65) at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFileAndMetaData(DefaultFastFileStorageClient.java:223) at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFile(DefaultFastFileStorageClient.java:112) at com.github.tobato.fastdfs.service.DefaultFastFileStorageClient.uploadFile(DefaultFastFileStorageClient.java:68) at com.ccts.vfc.utils.FastDFSClientUtil.uploadFileStream(FastDFSClientUtil.java:117) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl.saveDocxPlanOrReport(VfcProjectServiceImpl.java:5183) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl.generateColdStoragePlan(VfcProjectServiceImpl.java:881) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl.generatePlan(VfcProjectServiceImpl.java:514) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl$$FastClassBySpringCGLIB$$16b4068.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685) at com.ccts.vfc.management.service.impl.VfcProjectServiceImpl$$EnhancerBySpringCGLIB$$7c74302f.generatePlan() at com.ccts.vfc.task.service.AsyncTaskService.generatePlan(AsyncTaskService.java:60) at com.ccts.vfc.task.service.AsyncTaskService$$FastClassBySpringCGLIB$$c770a499.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:769) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747) at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.IOException: recv cmd: 96 is not correct, expect cmd: 100 at com.github.tobato.fastdfs.domain.proto.ProtoHead.validateResponseHead(ProtoHead.java:123) at com.github.tobato.fastdfs.domain.proto.AbstractFdfsCommand.receive(AbstractFdfsCommand.java:106) at com.github.tobato.fastdfs.domain.proto.AbstractFdfsCommand.execute(AbstractFdfsCommand.java:50) ... 24 common frames omitted

meikunbing commented 3 years ago

我修改参数就可以了 不知道对你有没有效

从池中借出的对象的最大数目(配置为-1表示不限制)

fdfs.pool.max-total: 1

获取连接时的最大等待毫秒数(默认配置为5秒)

fdfs.pool.max-wait-millis: 5000

每个key最大连接数

fdfs.pool.max-total-per-key: 1

每个key对应的连接池最大空闲连接数

fdfs.pool.max-idle-per-key: 1

每个key对应的连接池最小空闲连接数

fdfs.pool.max_idle_per_key: 1

jinchunzhao commented 2 years ago

解决了?