问题说明 近期一台主机报以下 kernel 信息: Jul 8 10:47:42 cztest kernel: ------------[ cut here ]------------ Jul 8 10:47:42 cztest kernel: WARNING: at net/ipv4/tcp_input.c:2269 tcp_mark_head_lost+0x113/0x290() Jul 8 10:47:42 cztest kernel: Modules linked in: iptable_filter ip_tables binfmt_misc cdc_ether usbnet mii xt_multiport dm_mirror dm_region_hash dm_log dm_mod intel_powerclamp coretemp intel_rapl iosf_mbi kvm_intel kvm irqbypass crc32_p clmul ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd ipmi_ssif ipmi_devintf ipmi_si mei_me pcspkr iTCO_wdt mxm_wmi iTCO_vendor_support dcdbas mei sg sb_edac edac_core ipmi_msghandler shpchp lpc_ich wmi acpi_p ower_meter xfs libcrc32c sd_mod crc_t10dif crct10dif_generic mgag200 drm_kms_helper crct10dif_pclmul crct10dif_common syscopyarea crc32c_intel sysfillrect sysimgblt fb_sys_fops igb ttm ptp drm ahci pps_core libahci dca i2c_algo_bit libat a megaraid_sas i2c_core fjes [last unloaded: ip_tables] Jul 8 10:47:42 cztest kernel: CPU: 10 PID: 0 Comm: swapper/10 Tainted: G W ------------ 3.10.0-514.16.1.el7.x86_64 #1 Jul 8 10:47:42 cztest kernel: Hardware name: Dell Inc. PowerEdge R630/02C2CP, BIOS 2.3.4 11/08/2016 Jul 8 10:47:42 cztest kernel: 0000000000000000 dd79fe633eacd853 ffff88103e743880 ffffffff81686ac3 Jul 8 10:47:42 cztest kernel: ffff88103e7438b8 ffffffff81085cb0 ffff8806d5c57800 ffff88010a4e6c80 Jul 8 10:47:42 cztest kernel: 0000000000000001 00000000f90e778c 0000000000000001 ffff88103e7438c8 Jul 8 10:47:42 cztest kernel: Call Trace: Jul 8 10:47:42 cztest kernel: <IRQ> [<ffffffff81686ac3>] dump_stack+0x19/0x1b Jul 8 10:47:42 cztest kernel: [<ffffffff81085cb0>] warn_slowpath_common+0x70/0xb0 Jul 8 10:47:42 cztest kernel: [<ffffffff81085dfa>] warn_slowpath_null+0x1a/0x20 Jul 8 10:47:42 cztest kernel: [<ffffffff815c3663>] tcp_mark_head_lost+0x113/0x290 Jul 8 10:47:42 cztest kernel: [<ffffffff815c3f47>] tcp_update_scoreboard+0x67/0x80 Jul 8 10:47:42 cztest kernel: [<ffffffff815c964d>] tcp_fastretrans_alert+0x6dd/0xb50 Jul 8 10:47:42 cztest kernel: [<ffffffff815ca49d>] tcp_ack+0x8dd/0x12e0 Jul 8 10:47:42 cztest kernel: [<ffffffff815cb3a8>] tcp_rcv_established+0x118/0x760 Jul 8 10:47:42 cztest kernel: [<ffffffff815d5f8a>] tcp_v4_do_rcv+0x10a/0x340 Jul 8 10:47:42 cztest kernel: [<ffffffff812a84c6>] ? security_sock_rcv_skb+0x16/0x20 Jul 8 10:47:42 cztest kernel: [<ffffffff815d76d9>] tcp_v4_rcv+0x799/0x9a0 Jul 8 10:47:42 cztest kernel: [<ffffffffa0140036>] ? iptable_filter_hook+0x36/0x80 [iptable_filter] Jul 8 10:47:42 cztest kernel: [<ffffffff815b1094>] ip_local_deliver_finish+0xb4/0x1f0 Jul 8 10:47:42 cztest kernel: [<ffffffff815b1379>] ip_local_deliver+0x59/0xd0 Jul 8 10:47:42 cztest kernel: [<ffffffff815b0fe0>] ? ip_rcv_finish+0x350/0x350 Jul 8 10:47:42 cztest kernel: [<ffffffff815b0d1a>] ip_rcv_finish+0x8a/0x350 Jul 8 10:47:42 cztest kernel: [<ffffffff815b16a6>] ip_rcv+0x2b6/0x410 Jul 8 10:47:42 cztest kernel: [<ffffffff815700d2>] __netif_receive_skb_core+0x582/0x800 Jul 8 10:47:42 cztest kernel: [<ffffffff815dc694>] ? tcp4_gro_receive+0x134/0x1b0 Jul 8 10:47:42 cztest kernel: [<ffffffff811dc861>] ? __slab_free+0x81/0x2f0 Jul 8 10:47:42 cztest kernel: [<ffffffff81570368>] __netif_receive_skb+0x18/0x60 Jul 8 10:47:42 cztest kernel: [<ffffffff815703f0>] netif_receive_skb_internal+0x40/0xc0 Jul 8 10:47:42 cztest kernel: [<ffffffff81571578>] napi_gro_receive+0xd8/0x130 Jul 8 10:47:42 cztest kernel: [<ffffffffa018b237>] igb_clean_rx_irq+0x387/0x700 [igb] Jul 8 10:47:42 cztest kernel: [<ffffffff8155e862>] ? skb_release_data+0xf2/0x140 Jul 8 10:47:42 cztest kernel: [<ffffffffa018b933>] igb_poll+0x383/0x770 [igb] Jul 8 10:47:42 cztest kernel: [<ffffffff815d3120>] ? tcp_write_timer_handler+0x200/0x200 Jul 8 10:47:42 cztest kernel: [<ffffffff81570c00>] net_rx_action+0x170/0x380 Jul 8 10:47:42 cztest kernel: [<ffffffff8108f63f>] __do_softirq+0xef/0x280 Jul 8 10:47:42 cztest kernel: [<ffffffff81698c1c>] call_softirq+0x1c/0x30 Jul 8 10:47:42 cztest kernel: [<ffffffff8102d365>] do_softirq+0x65/0xa0 Jul 8 10:47:42 cztest kernel: [<ffffffff8108f9d5>] irq_exit+0x115/0x120 Jul 8 10:47:42 cztest kernel: [<ffffffff816997b8>] do_IRQ+0x58/0xf0 Jul 8 10:47:42 cztest kernel: [<ffffffff8168e86d>] common_interrupt+0x6d/0x6d Jul 8 10:47:42 cztest kernel: <EOI> [<ffffffff81514a22>] ? cpuidle_enter_state+0x52/0xc0 Jul 8 10:47:42 cztest kernel: [<ffffffff81514b69>] cpuidle_idle_call+0xd9/0x210 Jul 8 10:47:42 cztest kernel: [<ffffffff810350ee>] arch_cpu_idle+0xe/0x30 Jul 8 10:47:42 cztest kernel: [<ffffffff810e82a5>] cpu_startup_entry+0x245/0x290 Jul 8 10:47:42 cztest kernel: [<ffffffff8104f07a>] start_secondary+0x1ba/0x230 Jul 8 10:47:42 cztest kernel: ---[ end trace 6bc65b0c591c1794 ]--- 主机环境如下: System | Dell Inc.; PowerEdge R620; Platform | Linux Kernel | Centos 3.10.0-514.16.1.el7.x86_64 Total Memory | 64G 处理说明 堆栈的打印过程类似于xfs 告警处理 , 大致的过程为内核开启 sack, fack 功能后, 网络传输过程中需要的快速重传和选择性重传会通过 tcp_input.c 文件的 tcp_mark_head_lost 函数进行处理, 其主要标记传输过程中丢失的报文的数量, 如下所示, 系统报的 kernel 堆栈信息由 tcp_mark_head_lost 函数中的 tcp_verify_left_out 函数调用触发: // source/include/net/tcp.h #define tcp_verify_left_out(tp) WARN_ON(tcp_left_out(tp) > tp->packets_out) static inline unsigned int tcp_left_out(const struct tcp_sock *tp) { return tp->sacked_out + tp->lost_out; } // source/include/asm-generic/bug.h #define __WARN() warn_slowpath_null(__FILE__, __LINE__) #ifndef WARN_ON #define WARN_ON(condition) ({ \ __WARN(); \ }) #endif // source/net/ipv4/tcp_input.c /* Detect loss in event "A" above by marking head of queue up as lost. * For FACK or non-SACK(Reno) senders, the first "packets" number of segments * are considered lost. For RFC3517 SACK, a segment is considered lost if it * has at least tp->reordering SACKed seqments above it; "packets" refers to * the maximum SACKed segments to pass before reaching this limit. */ static void tcp_mark_head_lost(struct sock *sk, int packets, int mark_head) { struct tcp_sock *tp = tcp_sk(sk); .... tcp_verify_left_out(tp); // trigger dump_stack } ... static void tcp_update_scoreboard(struct sock *sk, int fast_rexmit) { struct tcp_sock *tp = tcp_sk(sk); if (tcp_is_reno(tp)) { tcp_mark_head_lost(sk, 1, 1); } else if (tcp_is_fack(tp)) { int lost = tp->fackets_out - tp->reordering; if (lost <= 0) lost = 1; tcp_mark_head_lost(sk, lost, 0); } else { int sacked_upto = tp->sacked_out - tp->reordering; if (sacked_upto >= 0) tcp_mark_head_lost(sk, sacked_upto, 0); else if (fast_rexmit) tcp_mark_head_lost(sk, 1, 1); } } 从 redhat-536483 中描述的来看, 这种错误信息一般是 tcp bug 引起的, 在内核使用已经释放的 tcp socket buffer 链表的时候就可能触发: Root Cause A use after free issue related to the TCP kernel socket buffer linked list. Thus it is a bug in the TCP kernel code. Although the bug is in TCP kernel code, but it could get triggered in multiple ways. It could get triggered due to NFS, or due to even an application(say java process). 处理方式 升级 kernel 如下所示, redhat 在 3.10.0-520 版本可能修复了 tcp_* 相关函数的 use after free 相关的 bug, 可以尝试升级处理该问题: * Thu Nov 03 2016 Rafael Aquini <aquini@redhat.com> [3.10.0-520.el7] - [net] tcp: fix use after free in tcp_xmit_retransmit_queue() (Mateusz Guzik) [1379531] {CVE-2016-6828} 关闭 fack/sack 功能 从红帽知识库的文档来看, tcp_mark_head_lost 函数主要用来标记快速重传和选择确认的过程中丢失的报文数量, 所以或许可以临时关闭 fack/sack 参数避免该问题的出现: sysctl -w net.ipv4.tcp_fack=0 sysctl -w net.ipv4.tcp_sack=0 可以优先尝试第二种方式, 如果还有问题再考虑升级 kernel 版本. 总结 以上所述是小编给大家介绍的linux系统报tcp_mark_head_lost错误的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对17站长网的支持! |
免责声明:本站部分文章和图片均来自用户投稿和网络收集,旨在传播知识,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系我们及时修正或删除。谢谢!
始终以前瞻性的眼光聚焦站长、创业、互联网等领域,为您提供最新最全的互联网资讯,帮助站长转型升级,为互联网创业者提供更加优质的创业信息和品牌营销服务,与站长一起进步!让互联网创业者不再孤独!
扫一扫,关注站长网微信
当我们在共享网络访问的时候,可能会遇到提示指定的网络名不再可用的问题,这可能是由于我们的共享网络出现了错误,也可能是被共享的对象所拒绝了。指定的网络名 ......
文/曹杨 原标题:谁还看电视? 爸爸戴一副老花镜,妈妈戴一副近视镜,一人坐在沙发,一人躺在床上,各自刷着自己关注的博主更新的短视频。电视也许开着,但只是背景。 这样的画面,几乎成了洛奇家的常 ...
图片来源于简书 文/郭开森 杨帆 陆玖财经准备开新栏目了,每周一创始人郭开森和杨帆合体郭德帆,对行业进行一些观察和评论,第一篇我们仍是打算写社区团购,这是当下最火的话题。 来过陆玖财经做客的朋友们...
一、软件冲突1、首先确认是否是应用程序冲突导致的。2、查看是否只有特定几个游戏或应用会导致该问题。3、如果是应用冲突,那么只要卸载这些app就可以解决了。二 ......
1、首先进入到“百度”软件中, 2、然后在其中输入“百度识图”, 3、之后点击图中的“开始使用”按钮, 4、紧接着点击右下角的“相册”功能, 5、在相册下 ......
电脑端:1、大家可以点击右边链接进入网页版的百度网盘,进入之后点击“去登录”。https://pan.baidu.com/2、之后正确的输入账号密码进行登录就好啦。手机端:1 ......
在填写一些项目申请书中,总是免不了要选择一些数字,但是在方框中如何插入数字,该怎么办呢?那么下面就由学习啦小编给大家分享下word在方框里输入数字的技巧, ......
8月15日消息 上周,有媒体报道前身为百度图片的“榴莲”APP含有大量不雅视频内容被用户举报。对此,百度图片官方进行了回应,百度图片表示已经对报道中所涉及的“生吃旋风哥”等争议内容进行了下线处理。 此外,百度...
一、N100对比intel i3 1、N100的跑分达到了147210分,这个数据可以达到i3的七代级别。 2、在跑分上也是超越了大部分的I3七代CPU,不过比I3八代要弱势一些。 3 ......
WPS Office手机版怎么加横线?很多用户还不知道WPS Office手机版怎么加横线,WPS Office手机版怎么加横线,WPS Office手机版怎么打横线,WPS Office手机版怎么弄 ......
迅雷前缀是什么 答:迅雷前缀是(magnet:?xt=urn:btih:)括号里的就是了。 我们只要在这段文字之后输入后续的内容,就可以创建下载链接了。 1、磁力链接不基于文 ......
一、内容特权。 1、半价点播。 许多站内视频都需要付费观看,而大会员用户可以直接半价享受; 购买成功后的48h内无限次观看。有部分的内容是只限在中国大陆内观 ......
1、首先打开小米运动的“实验室功能”。 2、接着点击“门卡模拟”。 3、然后点击“我知道了”。 4、最后贴近就可以刷卡成功了。...
答:华为P系列: 华为p40,华为p40plus,华为p50,华为p50e,华为p60 华为mate系列: 华为mate40,华为mate50,华为mate50e,华为mate60 华为nova系列: 华为n ......
近期有用户反映,电脑在更新Windows 11 Insider Preview 25252.1000后,出现了应用和已压缩的文件点击毫无反应,拖拽都不行,只能从开始菜单打开的情况,这是怎 ......
文/黎明 一场针对中国互联网巨头的反垄断风暴正在酝酿,而且这次动真格了。 11月10日,国家市场监管总局发布《关于平台经济领域的反垄断指南(征求意见稿)》,要加大对互联网巨头涉嫌垄断的调查和监管。 ...
答:骁龙8+更好。 骁龙7+gen2实际上就是骁龙8+的低配版本。 在一些其他的核心架构方面都是保持一致的,比如说CPU的架构、GPU的架构等等。 骁龙7+和骁龙8+具体 ......
可见单元格就是不包括隐藏或者筛选筛选后隐藏起来的单元格区域。方法:筛选或隐藏数据,复制需要粘贴的值,在目标单元格区域左上角的第一个单元格处右击,选择【 ......
win11系统如何释放掉系统默认保留的存储空间?一般情况下,Windows会保留一些存储空间,以便设备获得良好性能和成功更新。但是当出现系统盘储存空间不足时,我们会将几个G的保留空间释放出来,以解燃眉之急。本期教...
文件被win10系统误报病毒自动删除了如何进行恢复?有用户下载了某些破解软件却被Win10系统误认为是病毒文件而自动删除,当然系统自带杀毒软件其实挺不错的,就是有时候会误报,大家遇到这种情况的时候就希望把误删的...
win11系统快速跳过联网创建本地管理账户3种方法?现在市面上销售的品牌笔记本和台式机基本上都预装Windows11家庭中文版正版操作系统,联网后系统会自动激活。当用户拿到新机器后还需要按照cortana(小娜)的提示一步...
罗技g304dpi灯颜色代表什么:1、蓝色:这种情况是正常工作的显示,如果说是常亮或者闪烁,那都没有问题这是在正常工作呢。2、红色:如果说是红灯闪烁的话那就是 ......
答:在3DMark压力测试当中,显卡需要超高97%才能够算合格,证明显卡的稳定性是过关的。 1、一般的默认情况下在2500~3000分就算很正常的了。 2、分数越高说明显卡 ......
相信有非常多使用过笔记本的用户都听说过独显直连这个词,但很多用户并不了解独显直连是什么,又有什么用处,那么下面就和小编一起来看看什么是独显直连和开启这 ......
win11系统开机总是自动登录OneDrive如何关闭?win11系统开机的时候,会自动启动OneDrive,不想要启动,该怎么操作呢?下面我们就来看看详细的教程。 在OneDrive界面点小齿轮按钮,下拉菜单中点【设置】。 单击【...
背景 有时候我们需要获取文件的创建时间。 例如: 我在研究 《xtrabackup 原理图》的时候,想通过观察确认 xtrabackup_log 是最早创建 并且是 最晚保存的 ......
假设有 A、 B 两台 Linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器。 两台服务器的信息如下:  ......
答:性能上差不多是和天玑9000以及骁龙8+处于差不多的水平。 也可以看成是骁龙8+的降配版本 骁龙7+处理器介绍 1、高通称这款芯片为“骁龙史上最强 7 系平台” ......
1、先打开机顶盒进入主界面,并且使用遥控器打开设置。 2、然后选择“账号与安全”,并且进入。 3、最后往下面翻就可以看到“ADB调试”的选项,直接开启就行了 ......