首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
thinkphp
smtp
c语言
frontend
openssl
lua
memcache
nodejs
注入
分布式
node.js
spring
yii
tengine
jvm
gzip
nlp
timezone
gcc
rabbitmq
mq
lvs
dns
php
token
cPlusPlus
uuid
cron
cache
static
asp.net
interface
java
server
python
api
golang
http
webserver
queue
okhttp
crontab
sftp
iis
crash
vb
php水印
curl
php5
phpunit
upload
h2
hashmap
port
pipeline
struct
压力测试
stdout
webhooks
django
base64
http2
session
rust
ssl
redis
mvc
php框架
并发
pipe
缓存
ruby
varnish
nginx
caching
go
router
多线程
storage
当前位置:
开发笔记
>
后端
> 正文
一行代码引发的“血案”
作者:WINNIE双双围脖_370 | 来源:互联网 | 2023-07-04 19:19
今天想起来一件好玩的事,给大家分享下。事情发生在几年前,那时候大家忙活完一个新需求,终于上线了,都想松一口气。可是很快就发生了一件令人抓狂的事情,刚上线的系统总是莫名其妙的崩溃,每次都
今天想起来一件好玩的事, 给大家分享下。
事情发生在几年前, 那时候大家忙活完一个新需求, 终于上线了, 都想松一口气。
可是很快就发生了一件令人抓狂的事情, 刚上线的系统总是莫名其妙的崩溃, 每次都得重启才能解决。
更要命的是完全摸不到规律, 系统运行着运行着就down了, 毫不留情面。
赶紧组织人员检查, 开发人员拍着胸脯, 信心满满: 肯定不是我们的问题! 先查查是不是环境的问题!
内存使用, 正常 。
硬盘空间,正常。
检查日志, 正常, 更找不到什么OutofMemory。
难道是黑客入侵,工程师仔细检查系统日志,也没有什么蛛丝马迹。 我们的系统也不涉及到钱, 根本不值得入侵。
可是系统总是那么静悄悄的,冷酷的down机, 快把大家都逼疯了。
如果是你该怎么办?
怀疑了一圈别人的问题以后,最好也怀疑一下自己。
我们就开始严格的审查这个新需求新加的,和改动的代码,10几双眼睛不知道看了多少遍, 还是一无所获。
后来不知道是谁,偶然看到了程序中有这么一行可怕的代码: System.exit(1) , 然后赶紧检查它和这个改动的关系。
果然, 在改动之前,这行代码永远都不会被执行到, 相当于死代码, 它就像个定时炸弹躺着那里, 一动不动至少有5年了!
现在终于等来了被触发的一刻:虽然我们的这次改动离这个炸弹极其遥远, 但的确会导致程序会在某种情况下进入这一分支, 于是System.exit(1); 被执行,炸弹爆炸。 JVM悄无声息的退出了 !
重启系统, 还会进入这一分支,System.exit, 系统再次退出 :-)
就这么周而复始, 把我们这帮码农戏耍了好几天 :-(
所以各位同学,以后不要轻易使用System.exit了, 建议你也马上搜索一下你的项目, 看看有没有这个炸弹吧。
扫描二维码, 关注 coderising
加入码农翻身群135769418:和更多热爱编程的朋友交流
日志
jvm
搜索
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
dns
Nginx使用AWStats日志分析的步骤及注意事项
本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ...
[详细]
蜡笔小新 2023-12-14 19:42:01
php
SQL日志收缩及截断方法详解
本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ...
[详细]
蜡笔小新 2023-12-14 18:23:25
cache
Java工具类库Hutool介绍及功能概述
本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ...
[详细]
蜡笔小新 2023-12-14 14:29:36
jvm
JVM 学习总结(三)——对象存活判定算法的两种实现
本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ...
[详细]
蜡笔小新 2023-12-13 18:59:46
分布式
【牛客网论坛】第6章:Elasticsearch,分布式搜索引擎(Elasticsearch入门)
Elasticsearch1Elasticsearch入门1.1Elasticsearch术语1.1.16.0以前的Elasticsearch术语1.1.26.0以后的Elasti ...
[详细]
蜡笔小新 2023-12-12 16:53:17
分布式
解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ...
[详细]
蜡笔小新 2023-12-12 13:19:04
static
纠正网上的错误:自定义一个类叫java.lang.System/String的方法
本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ...
[详细]
蜡笔小新 2023-12-11 16:54:20
static
使用集算器将日志文件结构化,轻松使用SQL查询
本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ...
[详细]
蜡笔小新 2023-12-11 13:27:46
php
解决php错误信息不显示在浏览器上的方法
本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ...
[详细]
蜡笔小新 2023-12-11 11:36:32
php
大数据就业前景及人才需求
近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ...
[详细]
蜡笔小新 2023-12-14 16:25:20
php
同事工资打听话题,如何提高自己的薪水
本文讨论了同事工资打听的话题,包括同工不同酬现象、打探工资的途径、为什么打听别人的工资、职业的本质、商业价值与工资的关系,以及如何面对同事工资比自己高的情况和凸显自己的商业价值。故事中的阿巧发现同事的工资比自己高后感到不满,通过与老公、闺蜜交流和搜索相关关键词来寻求解决办法。 ...
[详细]
蜡笔小新 2023-12-14 16:22:57
static
C#学习教程:在Console中工作但在Windows窗体中不工作的异步代码分享
本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ...
[详细]
蜡笔小新 2023-12-14 15:56:00
static
如何配置小米wifi放大器来增强家庭无线路由器信号?
本文介绍了如何通过配置小米wifi放大器来增强家庭无线路由器信号的方法。通过打开米家APP,选择设备添加,搜索并选择需要添加的wifi放大器,根据系统提示进行下一步操作即可完成配置。配置完成后,家庭无线路由器信号将得到增强。 ...
[详细]
蜡笔小新 2023-12-14 15:15:25
static
Win10下游戏不能全屏的解决方法及兼容游戏列表
本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ...
[详细]
蜡笔小新 2023-12-14 13:40:42
static
如何在不使用SearchBar display controller的情况下单独使用SearchBar并捕获其textChange事件?
本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ...
[详细]
蜡笔小新 2023-12-14 13:24:28
WINNIE双双围脖_370
这个家伙很懒,什么也没留下!
Tags | 热门标签
thinkphp
smtp
c语言
frontend
openssl
lua
memcache
nodejs
注入
分布式
node.js
spring
yii
tengine
jvm
gzip
nlp
timezone
gcc
rabbitmq
mq
lvs
dns
php
token
cPlusPlus
uuid
cron
cache
static
RankList | 热门文章
1
如何用css创建这个边框
2
Swift根据数据更改tableviewcell边框颜色
3
vue3中ref和reactive的区别
4
如何在BottomSheetDialogFragment中显示SnackBar?
5
mac批量修改文件名、后缀名
6
为什么用了h3标签后文字会自动换行
7
Firefox 92 再次尝试默认支持 AVIF 图像
8
静态页面在ie下调试:CSS 因 Mime 类型不匹配而被忽略 解决办法
9
Vue生命周期内的钩子方法
10
将活动类添加到子元素
11
零零无限产品经理:Hover
12
如何添加颜色到字体真棒图标的透明区域
13
aria-hidden在fontAwesome中的效果
14
两个类:not()选择器
15
滤波电容旁边0.1电容什么用
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有