vxWorks socket的buf不释放 ENOBUFS 错误

1,网络出现问题,如rpccore后端客户RPC超时,未知网络接口,muxDevLoad失败,wdbConfig配置WDB通讯接口出错等,可以用网络调试函数来解决。
2,若目标机开始运行时可以ping通,而运行自己的socket应用(或使用网络的库如ftp服务)后,应用会停顿一会。这时需考虑配置对网络性能的影响。
3,如果再也ping不通了,就需要在目标机tShell用调试函数来解决问题(tShell可以定向到串口)。先用i查看tNetTask是否仍在优先级 50运行,如果被挂起(suspendded),就再用tt tNetTask查看任务栈轨迹。这时可能有代码使用了空指针,或出现未初始化中断。如果应用运行正常,但随着sockets数或包数的增加,应用出现停止。
可以从tShell中调用下列的show函数(当然得添加相应组件)。 
->i 显示运行任务,显示优先级 
->netStackSysPoolShow 显示网络栈系统内存池[pool]状态 
->netStackDataPoolShow 显示网络栈数据内存池状态 
->inetstatShow 显示socket和其接收队列 
->ipstatShow 显示ip协议统计数据 
->tcpstatShow 显示tcp协议统计数据 
->udpstatShow 显示udp协议统计数据 
->icmpstatShow 显示icmp协议统计数据 
->mRouteShow 显示路由表,包括屏蔽码 
->RouteShow 显示路由表,不包括屏蔽码 
->iosFdShow 显示文件描述符 
->arpShow 显示arp表 
->hostShow 显示主机表 
->ifShow 显示IP的接口,END和BSD4.4驱动 
->muxShow 显示成功载入MUX的END驱动
下面对各种症状进行描述: 
A. ENOBUFS (socket应用出错)若网络栈或驱动的内存池太小,应用可能出现停顿,随资源释放,一会又恢复过来。可能发生类似EBOBUFS或 S_netBufLib_NO_POOL_MEMORY样的错误。调用netStackSysPoolShow 和netStackDataPoolShow来检查,若没有可用的空缓冲区,应该增加缺省分配和修改IP配置参数。 
B. 目标机ping不通,RPC后端超时若socket的缓冲没有被读,会耗尽驱动缓冲区。驱动没有可用缓冲区,就不能接受和发送包。Ping就失败,主机也不能连接目标机。muxShow只显示END驱动,若启动设备在muxShow中列出,所使用的驱动就是END。ifShow能显示END和BSD4.4驱动。用inetstatShow可以确定哪个socket的接受队列有数据。该信息可以用来确定哪个任务没有读socket。若ifShow和ipstatShow显示接受队列没有数据,驱动可能有错。可以交换使用END或BSD驱动来试试。若BSP支持多个网卡类型,可以换卡试试。若muxShow没显示任何驱动,表明配置的是BSD驱动。可在config.h或工程中配置BSD,不定义INCLUDE_END,或去掉 network components->network devices->end attach interface、END接口支持组件。如果你没有替换驱动版本可用,可使用loopback驱动。在目标机同时运行客户端和服务器,向 127.0.0.1发送。 
C. 目标机能ping,但不能传送数据可以用inetstatShow,或在主机用netstat。若发送方有数据返回,而接受方没有,client/server应用代码可能出现死锁将信息长度降到1460以下(TCP),查看是否有死锁发生。 
D. 协议问题查看错误发生前后show函数的统计数据,对照查找错误发生的线索。 
E. 优先级问题保证tNetTask任务比依赖网络的应用任务的优先级要高。 
F. 硬件或驱动配置问题更换网卡,或使用不同的网卡。观察HUB的灯,灯能表明驱动的运行。配置BSD驱动,调用ifShow查看是否冲突(END驱动不报告这类信息)。若驱动报告大量冲突,则检查该网络中的其他节点是否在全双工模式工作。

(0)

相关推荐

  • core dump分析

    CORE DUMP原因                               2020-11-24 链接:https://blog.csdn.net/lixiaogang_theanswer/a ...

  • 服务器需要访问22.12.145.28:80端口ERP升级补丁连接失败

    但是就是不能更新,服务器访问的是联通网络,我们也是走着的联通的外网出口线路. 如果选择错误,会导致不能访问,服务器业务不能更新补丁,问题 找到了, 联通公网ip地址,居然需要走移动外网出口网关才能pi ...

  • 身体排湿排毒,释放“心毒”的好方法

    一.养生重于救命 很多人把健康的标准建立在医院检查报告上,认为体检正常,就可以高枕无忧. 残酷的事实是~ 肝脏坏到50%,医院检查指标都是正常的. 肝脏坏掉90%以上,才叫肝硬化.肝腹水,肝癌. 血管 ...

  • 初中数学中常见错误,看看你有犯过吗?

    学习方法方面的问题 1.做几何题时候不会做辅助线 原因:对于几何模型认识不充分 解决方案:每一种基本的几何模型都有定义.性质和判定三方面,要将这三方面知识熟记于心.一般来说应用的过程是:判定是哪种模型 ...

  • 挽回男友的方法:挽回被伤透了心的前男友,关键是别犯这个错误

    怎样挽回被伤透心的前男友?面对爱情时,女人总是会不自信,会有所自卑,但其实这往往更容易失去男友,会令男友伤透了心,所以你想挽回前男友,来看看小编分享的挽回被伤透了心的前男友吧. 一.挽回前男友女生会犯 ...

  • 2岁男童在卫生间活活淹死,只因奶奶一个动作:这种错误,很多家长还在犯!

    学做优秀家长 学做优秀家长 1篇原创内容 公众号 文 / 妈妈调查局 出处 / 妈妈网育儿(ID:mmwyuer ) 4月14日,深圳一名4岁女童将皮筋缠在手指上玩耍时睡着了,导致左手中指前端濒临缺血 ...

  • pdf文件需要修改错误内容,pdf怎么转换成word?

    不知道大家有没有遇到这种情况,就是当我们整理好一个pdf格式的文件准备发送给领导或者是同事之类的操作时,临时检查的时候发现文件中有错误的地方,天呐!这对于小编来说虽说是习以为常,但是每每遇到此情况的时 ...

  • 越减肥越丑?怪你犯了这3个错误

    减肥前后,差别多大?看过太多人减肥前后的对比照后,减妞不得不再次发出那句感叹:减肥是把整容刀,胖子都是潜力股. 说起来,变瘦变美是每个减肥者的梦想,可当你使尽各种招数后,体重虽然下降了,但看上去怎么没 ...

  • 避免重复错误的7条提示?

    我们大多数人的生活充满了同样的错误,一次又一次地重生.这是非常普遍的现象,但生活不一定非要如此.我们有能力向过去学习,我们可以做出更明智的决策,并在将来有所不同,能够成功做到这一点的人发现生活比不能做 ...

  • HR常犯的3个错误

    HR常犯的3个错误

  • 昨天公众号中105080申报表中固定资产原值计算有错误,大家知道哪儿错了吗?

    在昨天发的公众号里,有一个计算错误,在这儿更正以下: 原计算结果见下面: 根据政策规定,计算结果如下:"资产账载金额"=500-00+100=400万元.当年度虽然处置资产80万元 ...