问题

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

最新文章

  1. VS中C++ 项目重命名
  2. DOM访问元素样式和操作元素样式
  3. javascript基础语法——表达式
  4. Elasticsearch集群管理
  5. HDInsight 指定输出目录 insert overwrite
  6. Jquery 生成时钟
  7. 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件
  8. poj 2184(dp变形,进一步加深01背包)
  9. Java Object 对象拷贝
  10. redis高级实用特性(2)
  11. 面试题(一)—Java基础(上)
  12. Oracle 理论到实践之碎碎念
  13. 仿照 ButterKnife 的 Android 注解实例
  14. 【DWM1000】 code 解密6一TAG 状态机第一步
  15. 动软 生成 linq相关DAO
  16. Axure RP Pro 7.0
  17. python常用库安装网址
  18. jquery 清除style样式
  19. SQL面试题及答案
  20. spring 线程异步执行

热门文章

  1. Pycharm连接Git及使用
  2. python scrapy解码方法和时间格式转换
  3. 2019-04-01-day023-对象实例的反射实例化
  4. Ubuntu16.04 执行sudo apt-get update出现E: Sub-process returned an error code错误
  5. 2017ICPC南宁赛区网络赛 Minimum Distance in a Star Graph (bfs)
  6. lava.lang.String数据转换为java.sql.Date
  7. advanced ip scanner —— 局域网下 ip 及设备的扫描
  8. Unity 3D还原Scene场景、市面多数游戏视角高度自定义、第三人称视角分离功能:平移、拖动、看向中心等
  9. xdoj-1319 求树上任意一点的最大距离----利用树的直径
  10. Sublime Text3:插件+快捷键+环境变量设置+C/C++编译环境