JVM死锁导致线程不可用,然后会瞬间起N个线程,当然也是不可用的,因为需要的对象死锁,然后耗尽文件句柄导致外部TCP无法建议拒绝服务,jstack之后就会恢复。

解决办法:替换中间件类库 ,比如httpclient的。

原因大致是:

某个switch分支缺少memory barrier的正确处理,导致外部应用如JVM的lock被错误锁住;一般jstack连后就恢复。

https://github.com/torvalds/linux/commit/76835b0ebf8a7fe85beb03c75121419a7dec52f0

https://www.zhihu.com/search?type=content&q=jvm%E5%81%87%E6%AD%BB

https://ma.ttias.be/linux-futex_wait-bug/

JVM内存模型-重排序&内存屏障

内核源码:https://mirrors.edge.kernel.org/pub/linux/kernel/

http://mirrors.163.com/kernel/linux/kernel/

Linux kernel futex.c的bug导致JVM不可用相关推荐

  1. Java线上问题排障:Linux内核bug引发JVM死锁导致线程假死

    Java本质上还是离不开操作系统,一来Java源码是用C/C++实现的,二来java进程还是需要依附于操作系统和硬件资源,有时候一些问题是操作系统级别导致的,下面的整个事件是源自一则真实的线上案例. ...

  2. Linux kernel内核编译配置选项详解

    转载于:http://lamp.linux.gov.cn/Linux/kernel_options.html 作者:金步国 Code maturity level options 代码成熟度选项 Pr ...

  3. linux kernel 配置(部分) 部分内容翻译自内核帮助文档

    linux kernel 2.6.13 在配置内核前,你应当对详细的了解运行内核的系统,根据自己的需要配置内核. 下面,我将解释内核的各个选项,并根据本人的机器作相应的配置. 在此之前,我把机器硬件参 ...

  4. CTF-PWN-babydriver (linux kernel pwn+UAF)

    第一次接触linux kernel pwn,和传统的pwn题区别较大,需要比较多的前置知识,以及这种题的环境搭建.运行和调试相关的知识. 文章目录 Linux内核及内核模块 Linux内核(Kerne ...

  5. linux命令注入,Linux kernel本地命令注入漏洞

    Linux kernel本地命令注入漏洞 2005-10-19 eNet&Ciweek Linux kernel 2.2.6 Linux kernel 2.2.5 Linux kernel 2 ...

  6. [转]HOWTO do Linux kernel development - take 3 (中文版)

    打好linux基础,不断的跟随这篇文章中的建议,适应linux kernel开发的流程.虽然需要很久甚至几年的时间,但我相信坚持就会前进!加油! HOWTO do Linux kernel devel ...

  7. Exploiting “BadIRET” vulnerability (CVE-2014-9322, Linux kernel privilege escalation)

    insight-labs · 2015/02/06 14:24 from:http://labs.bromium.com/2015/02/02/exploiting-badiret-vulnerabi ...

  8. Linux kernel的中断子系统之(九):tasklet

    返回目录:<ARM-Linux中断系统>. 总结: 二介绍了tasklet存在的意义. 三介绍了通过tasklet_struct来抽想一个tasklet,每个CPU维护一个tasklet链 ...

  9. Linux kernel中常见的宏整理

    0x00 宏的基本知识 // object-like #define 宏名 替换列表 换行符 //function-like #define 宏名 ([标识符列表]) 替换列表 换行符 替换列表和标识 ...

最新文章

  1. 2017蓝桥杯 对局匹配(贪心)
  2. 3P5 Industrial Engineering Lecture 1-2: Method of Study
  3. mysql视图使用方法
  4. 用Vim编程——配置与技巧
  5. MySQL数据库开发 (视频)
  6. 人生规划:20岁到60岁我该干什么
  7. python内存池机制,python基础—12python内存管理机制
  8. 盘点实际项目应用中的最佳机器学习模型
  9. <读书笔记> Thinking in python (Python 设计模式) 3. Proxy and State模式
  10. 怎么看linux的命令说明,在linux下,怎么用命令来查看版本?
  11. 洛谷—— P1268 树的重量
  12. quartz 时间设置(定时任务scheduler)
  13. 打开pdf文件提示文件过大_如何把pdf文件进行分割?拆分pdf文件的方法分享
  14. java poi 设置时间空间_POI对Excel自定义日期格式的读取(实例代码)
  15. opencv接受树莓派usb摄像头rtsp视频流
  16. 颜值测试API,微软小冰颜值,颜值API
  17. 谷歌/FOFA搜索引擎使用
  18. springSecurity之http Basic认证
  19. Sencha学习笔记2:打包您的第一个Sencha安卓应用apk安装包
  20. NCCL下载及安装教程

热门文章

  1. OpenCV中的特征匹配(Feature Matching)
  2. 机器学习中的数学基础:(1)实际应用中矩阵特征值与特征向量的几何意义
  3. GitHub开源的10个超棒后台管理面板
  4. php 空格zhuanyi,php写的将逗号、空格、回车分...-php字符转义的相关注意事项-IIS环境中防止本地用户用fsockopen进行DDOS攻击的方法_169IT.COM...
  5. sdk没有登录什么意思_不需要接入SDK的第三方登录及分享
  6. CG游戏道具全流程制作视频教程 Artstation – Stylized Game Asset
  7. C语言网络编程:TCP客户端实现
  8. 探讨UnsupportedOperationException的原因及解决方案
  9. Setting the Reply-To Header in an Email using CDONTS.NewMail Object and CDO Message
  10. 从零打造在线网盘系统之Hibernate框架起步