报错信息:

terminate called after throwing an instance of 'apache::thrift::transport::TTransportException'
  what():  Frame size has negative value

错误定位:

clinet调用sever端接口时卡死。

eg:

Ia10kThriftClient<common::api::thrift::TestClient> client;
void ClientInit()
{client.create(IP, POST, NAME);client.setTimeout(10000, 10000, 10000);client.open();
}void callback(const int id, const Data::data)
{boost::call_once(once_TOOLClientInit, &TOOLClientInit);try{cout<<"###add by zcq###start"<<endl;client->ResultData(id, data);cout<<"###add by zcq###end"<<endl;//usleep(1000); //1毫秒}catch (boost::bad_get&){ISFLOG_ERROR << "callback reslut error";return;}
}

多线程调用,或者callback调用频繁,会导致以上报错,现象为,执行到ResultData函数此语句时,会出现两个start却没有end,猜想可能是由于thrift内部资源死锁导致,有那位高人若知望指出哈。

解决方法:

在callback中加锁。(当时不知道,苦苦撑了好几天,撸了好多代码,走了好多弯路,说多了都是泪呀)

boost::unique_lock<boost::mutex> lock(mutex);

报错信息:

clinet端报错:

terminate called after throwing an instance of 'apache::thrift::TApplicationException'
  what():  Unknown function Media:mediaResultPictureData
解决方法:

server用python

client用C++,但是python中的server有多种方法:

    # server = TServer.TSimpleServer(tMultiplexedProcessor, transport, tfactory, pfactory)# server = TServer.TThreadPoolServer(tMultiplexedProcessor, transport, tfactory, pfactory)server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)# server = TServer.TForkingServer(processor, transport, tfactory, pfactory)# server = TServer.TNonblockingServer(processor, transport, tfactory, pfactory)

至于和C++之中有什么关系有待进一步研究。。。

使用

TServer.TSimpleServer【python】搞定

thrift运行过程报错,多线程环境,docker环境相关推荐

  1. 解决 vue 项目运行过程报错 JavaScript heap out of memory(内存溢出) “‘node --max-old-space-size=10240“‘ 不是内部或外部命令

    你是不是也遇到过 vue 项目 当你 ctrl+s,编译代码,项目就挂掉的情况?那么恭喜你,内存溢出了.兄dei,你膨胀了哟~ 不过不要慌,以下有完整的解决方案!         1.我们全局安装 i ...

  2. Linux上安装Apache环境及安装过程报错解决方案toastr弹框

    一.Linux上安装Apache环境及安装 下载apache源代码 1.下载地址:http://httpd.apache.org/download.cgi  找稳定的最新的版本(Stable Rele ...

  3. 应用在vs的ide调试环境下运行顺利,但是在bin目录直接运行exe报错的问题

    在项目中需要获取摄像头的实时视频,因为不想安装第三方的安装文件来实现,经过筛选找到了easydarwin中的libEasyPlayer. 我们的项目语言是C#,libEasyPlayer的语言是C++ ...

  4. 编译正确,运行ORB_SLAM3报错Segmentation fault

      环境编译什么的都没问题,但一运行ORB_SLAM3(基于ROS)的时候就报Segmentation fault   无论是单目还是RGBD,详细的报错信息如下: max@max-virtual-m ...

  5. 苹果cms安装mysql检测失败_maccms(苹果cms)采集过程报错--MySQL server has gone away错误的解决办法...

    maccms(苹果cms)采集过程报错--MySQL server has gone away,造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... value ...

  6. php 运行命令行,命令行运行php报错

    在cmd中输入php -v,后报错,如:php Startup:Unable to load dynamic library '\xampp\php\php_bz2.dll' - 找不到指定的模块.如 ...

  7. Docker服务启动报错:Job for docker.service failed because the control process exited with error

    错误 Docker服务启动报错:Job for docker.service failed because the control prcess exited with error 原文地址: htt ...

  8. vscode虚拟环境运行文件报错ImportError: DLL load failed: 找不到指定的模块的问题

    题主使用anaconda创建了虚拟环境,通过cmd命令行安装了一些必要的库,但当我在vscode使用该虚拟环境时却发现vscode一直报错说我有一些库没安装上,比如numpy. Traceback ( ...

  9. vue脚手架运行项目报错“serve with message ‘spawn vue-cli-service ENO’解决办法

    由于我的电脑用户名是中文的,某天下午改成英文后,即使重新配置了环境变量,还是经常报错.后来重新安装了nodejs,有些依赖可能没安 以上为前提 今天想启动下以前的项目,发现vue脚手架用不了了,重新安 ...

最新文章

  1. dataframe groupby_PySpark SQL——SQL和pd.DataFrame的结合体
  2. python - IO模型
  3. 线上BUG定位神器(阿尔萨斯)-Arthas2019-0801
  4. Java并发包中Semaphore的工作原理、源码分析及使用示例
  5. HTML5 API详解(17):Web SQL DataBase本地数据库
  6. 网络存储(三)之ISCSI搭建的入门
  7. Google Map API v2 (三)----- 地图上添加标记(Marker),标记info窗口,即指定经纬度获取地址字符串...
  8. 随笔小杂记(六)——tqdm进度条显示出现多余行
  9. linux内核计算list的长度,linux内核list.h头文件分析(四)
  10. oracle表的incremental,ODI IKM Oracle Incremental Update的四种探测处理策略
  11. OA系统四级模块编写测试用例(用户模块)
  12. EPLAN导入EDZ文件
  13. flink cdc 2.2.1 mysql connector
  14. OL3矢量图层样式自定义
  15. XP系统的倔强——python3.4+PyCharm+numpy、networkx等的安装
  16. Webdings字体和Wingdings字体对照表
  17. 北京博奥智源,浅谈术语管理服务器软件开发所需功能设计
  18. 计算机学院 运动会稿,学院运动会加油稿
  19. MySQL 09 DQL → select 初识查询数据和别名的使用
  20. 【问】登陆提示用户SA登陆失败

热门文章

  1. 2020ITES深圳工业展完美收官,百超迪能重磅亮相引关注
  2. MySQL修改字段类型之modify
  3. cad单位_CAD制图初学入门常用技巧汇总,CAD零基础也不怕!
  4. 【深度学习基础】:线性代数(三)_逆矩阵与伪逆矩阵
  5. 【控制】粒子群算法(PSO)优化滑模控制器参数
  6. 基于numpy的股票分析
  7. 实验七 人工智能安全
  8. 免堆期由谁申请_免箱期和免堆期
  9. MSP430定时器、中断
  10. MSP430定时器输出比较不稳定的解决方法