go thrift报错问题--WriteStructEnd
问题
go thrift开发过程中,多个goroutine共用一个client时,报错:
panic: runtime error: index out of range
goroutine 24 [running]:
happy-apple/vendor/git.apache.org/thrift.git/lib/go/thrift.(TCompactProtocol).WriteStructEnd(0xc4201086e0, 0x0, 0x0)
/home/admin/workspace/src/happy-apple/vendor/git.apache.org/thrift.git/lib/go/thrift/compact_protocol.go:160 +0x66
happy-apple/protocol/falconeye.(TAppleMetric).Write(0xc420112090, 0x787020, 0xc4201086e0, 0x0, 0x0)
/home/admin/workspace/src/happy-apple/protocol/falconeye/common.go:1714 +0xb9
happy-apple/protocol/falconeye.(ReportPutMetricDataArgs).writeField1(0xc4200f85a0, 0x787020, 0xc4201086e0, 0x0, 0x0)
/home/admin/workspace/src/happy-apple/protocol/falconeye/report.go:308 +0x123
happy-apple/protocol/falconeye.(ReportPutMetricDataArgs).Write(0xc4200f85a0, 0x787020, 0xc4201086e0, 0x200000001, 0x0)
/home/admin/workspace/src/happy-apple/protocol/falconeye/report.go:292 +0x195
happy-apple/protocol/falconeye.(ReportClient).sendPutMetricData(0xc420094320, 0xc4200aa040, 0x1, 0x1, 0x1, 0xc420112090)
/home/admin/workspace/src/happy-apple/protocol/falconeye/report.go:70 +0xe9
happy-apple/protocol/falconeye.(ReportClient).PutMetricData(0xc420094320, 0xc4200aa040, 0x1, 0x1, 0x1, 0xc4200aa040, 0x0)
/home/admin/workspace/src/happy-apple/protocol/falconeye/report.go:53 +0x4d
main.TestSendData(0xc420094320, 0x0, 0x0)
/home/admin/workspace/src/happy-apple/protocol/falconeye/report-remote/qps_client.go:116 +0x2c9
main.sendTask(0xc420094320)
/home/admin/workspace/src/happy-apple/protocol/falconeye/report-remote/qps_client.go:71 +0x2b
created by main.main
/home/admin/workspace/src/happy-apple/protocol/falconeye/report-remote/qps_client.go:47 +0x17b
使用的lib是git.apache.org/thrift.git/lib/go
原因及解决办法:
一个thrift client 不支持多个协程routine同时使用.
可创建多个client,每个协程routine一个client
最新文章
- VS中C++ 项目重命名
- DOM访问元素样式和操作元素样式
- javascript基础语法——表达式
- Elasticsearch集群管理
- HDInsight 指定输出目录 insert overwrite
- Jquery 生成时钟
- 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件
- poj 2184(dp变形,进一步加深01背包)
- Java Object 对象拷贝
- redis高级实用特性(2)
- 面试题(一)—Java基础(上)
- Oracle 理论到实践之碎碎念
- 仿照 ButterKnife 的 Android 注解实例
- 【DWM1000】 code 解密6一TAG 状态机第一步
- 动软 生成 linq相关DAO
- Axure RP Pro 7.0
- python常用库安装网址
- jquery 清除style样式
- SQL面试题及答案
- spring 线程异步执行
热门文章
- Pycharm连接Git及使用
- python scrapy解码方法和时间格式转换
- 2019-04-01-day023-对象实例的反射实例化
- Ubuntu16.04 执行sudo apt-get update出现E: Sub-process returned an error code错误
- 2017ICPC南宁赛区网络赛 Minimum Distance in a Star Graph (bfs)
- lava.lang.String数据转换为java.sql.Date
- advanced ip scanner —— 局域网下 ip 及设备的扫描
- Unity 3D还原Scene场景、市面多数游戏视角高度自定义、第三人称视角分离功能:平移、拖动、看向中心等
- xdoj-1319 求树上任意一点的最大距离----利用树的直径
- Sublime Text3:插件+快捷键+环境变量设置+C/C++编译环境