首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

美团一面:为什么线程崩溃崩溃不会导致 JVM 崩溃

大家好,是坤哥 网上看到一个很有意思的美团面试题:为什么线程崩溃崩溃不会导致 JVM 崩溃,这个问题看了不少回答,但发现都没答到根上,所以决定答一答,相信大家看完肯定会有收获,本文分以下几节来探讨...,那么操作系统会执行默认的信号处理程序(一般最后会让进程退出),但如果注册了,则会执行自己的信号处理函数,这样的话就给了进程一个垂死挣扎的机会,收到 kill 信号后,可以调用 exit() 来退出,...这种场景显然不能用 kill -9,不然一下把进程干掉了资源就来不及清除了 为什么线程崩溃不会导致 JVM 进程崩溃 现在我们再来看看开头这个问题,相信你多少会心中有数,想想看在 Java 中有哪些是常见的由于非法访问内存产生的...),然后退出 至此相信大家明白了为什么发生了 StackoverflowError 和 NPE 这两个非法访问内存的错误,JVM 却没有崩溃。...和 NullPointerException 做额外处理让线程恢复呢,针对 stackoverflow 其实采用了一种栈回溯的方法保证线程可以一直执行下去,捕获空指针错误主要是这个错误实在太普遍了

2K20

502问题怎么排查?

刚工作那会,有一次,上游调用服务的老哥,你的服务报"502错误了,快去看看是为什么吧"。 当时那个服务里正好有个调用日志,平时会记录各种200,4xx状态码的信息。...但如果服务端发现客户端发的东西异常,就响应个4xx状态码,意思是这是个客户端的错误,4xx里头的xx可以根据错误的类型,再细分成各种码,比如401是客户端没权限,404是客户端请求了一个根本不存在的网页...来解释下,其实是,502其实是由网关代理(nginx)发出的,是因为网关代理把客户端的请求转发给了服务端,但服务端却发出了无效响应,而这里的无效响应,一般是指TCP的RST报文或四次挥手的FIN报文...服务端崩了,也就是当前没有一个进程在监听服务器端口,此时你却尝试向一个不存在的端口发数据,服务器的linux内核协议栈就会响应一个RST数据包。同样,这时候nginx也会给客户端一个502。...网关将请求打到了一个不存在的IP上 nginx是通过配置的形式来代理多个服务器。这个配置一般是放在 /etc/nginx/nginx.conf 中。 打开,你可能会看到类似下面这样的信息。

1.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

pika missed heartbeats from client timeout 60s 的问题

只要不打算在半打开连接上传输数据,仍处于连接状态的一方就不会检测另一方已经出现异常。 半打开连接的一个常见原因是,当客户主机突然掉电,不是正常的结束客户应用程序后再关机。...consumer 时,需要判定是否接收到数据(无论是常规数据还是 heartbeat 信令),若在一定时间内没有接收到数据,则认为当前链路可能存在问题。...悲剧 结果,明明在预发布环境测试没问题的,却在正式环境完全不起作用,一直在报 EPIPE 的错误,并且在之后 ack 时报 channel closed 的错误。...一般来说,TCP 正常的关闭,会有四次握手: 『要关了哈』 『好的』,『也要关了』 『恩,拜拜』 不正常的错误,会有 ECONNRESET 或者 Connection reset by...也就是,一旦一个事件里面的 CPU 被占满,其它 io 操作都会在事件队列中等待,导致事件循环过长。

4.5K20

连接一个 IP 不存在的主机时,握手过程是怎样的?

正常三次握手抓包 连一个 IP 不存在的主机时,握手过程是怎样的 那不存在的IP,分两种,局域网内和局域网外的。 ? 家用路由器局域网互联 以我家里的情况举例。 家里有一台家用路由器。...感兴趣的朋友们可以以这个为关键词搜索相关知识点哈 此时 因为 TCP 协议是可靠的协议,对于 TCP 层来说,第一次握手的消息,已经发出去了,但是一直没有收到 ACK。...连回环地址,端口不存在抓包 现象也比较简单,已经IP地址是存在的,也就是在互联网中这个机器是存在的。...连外网地址时端口不存在 目的IP在局域网外 找一个存在的外网ip,这里拿了最近刚白嫖的阿里云服务器地址 47.102.221.141 。...已知ARP请求是没有重传机制的,的重试就是TCP重试触发的,但两者规律不一致,是为什么? 最后 欢迎大家加我微信(公众号里右下角“联系”),互相围观朋友圈砍一刀啥的哈哈。

95430

同vlan不同网段能否ping通?网络中各种互通与不通的总结分析

一、同VLAN不同网段能否Ping通 前面我们已经熟悉了同vlan与同网段间如何互访,不同vlan间如何互访,独独对于同vlan不同网段互通没有细说,今天我们来看下。...unreachable 显然,A机器发现对方与自己不是同一网段,试图寻找网关,但网关不存在,所以报主机不可达,B上的Sniffer未抓到任何包,观察网卡也是只发不收,显然数据没有出去。...显然这个ARP广播是可以被B收到的(因为他们同处一个vlan),11.1.1.1正好就是B的IP地址,理所当然B要回应这个ARP请求。...二、ping三个不存在的Ip地址,深入了解网络通信原理 网关设成自己,PING 3个不存在的IP: 一个是和自己在同一网段的; 一个是和网关在同一网段的; 一个是和谁都不在同一网段的; 1、PING和自己同一网段的...三 、A计算机网关设置中B的IP,B的网关设置中不存在的IP地址 A计算机网关设成B的IP地址,但B的网关设置成一个不存在的IP(且与A/B都不在同一网络),PING三种情况。

3K21

连接一个 IP 不存在的主机时,握手过程是怎样的?

连接一个 IP 不存在的主机时,握手过程是怎样的? 连接一个 IP 地址存在但端口号不存在的主机时,握手过程又是怎样的呢?...正常三次握手抓包 连一个 IP 不存在的主机时,握手过程是怎样的 那不存在的IP,分两种,局域网内和局域网外的。 家用路由器局域网互联 以我家里的情况举例。 家里有一台家用路由器。...感兴趣的朋友们可以以这个为关键词搜索相关知识点哈 此时 因为 TCP 协议是可靠的协议,对于 TCP 层来说,第一次握手的消息,已经发出去了,但是一直没有收到 ACK。...目的IP是回环地址 连回环地址,端口不存在抓包 现象也比较简单,已经IP地址是存在的,也就是在互联网中这个机器是存在的。...连外网地址时端口不存在 目的IP在局域网外 找一个存在的外网ip,这里拿了最近刚白嫖的阿里云服务器地址 47.102.221.141 。

96510

Linux 线程浅析

当”进程”收到一个致命信号(比如由于段错误收到SIGSEGV信号), 对应的这一组task_struct将全部退出; 6.等等(以上可能不够全); linux threads 在linux 2.6以前,...或许这也是为什么linuxthreads虽然与POSIX的要求差距甚远, 却能够存在, 并且还被使用了好几年的原因吧~ 但是, linuxthreads为了实现这个”第5点”, 还是付出了很多代价, 并且创造了...当程序开始运行时, 并没有管理线程存在(因为尽管程序已经链接了pthread库, 但是未必会使用多线程)....程序第一次调用pthread_create时, linuxthreads发现管理线程不存在, 于是创建这个管理线程. 这个管理线程是进程中的第一个线程(主线程)的儿子....然后在pthread_create中, 会通过pipe向管理线程发送一个命令, 告诉创建线程.即是, 除主线程外, 所有的线程都是由管理线程来创建的, 管理线程是它们的父亲.于是, 当任何一个子线程退出时

4.2K70

想进大厂》之Redis夺命连环11问

https://tva 缓存穿透 缓存穿透是指查询不存在缓存中的数据,每次请求都会打到DB,就像缓存不存在一样。 ? 针对这个问题,加一层布隆过滤器。...显然,他有一个缺点就是如果这些过期的key没有被访问,那么他就一直无法被删除,而且一直占用内存。 ? 定期删除 定期删除指的是redis每隔一段时间对数据库做一次检查,删除里面的过期key。...这里写的这个命令是sync,但是在redis2.8版本之后已经使用psync来替代sync了,原因是sync命令非常消耗系统资源,psync的效率更高。...哨兵(sentinel)的功能比单纯的主从架构全面的多了,具备自动故障转移、集群监控、消息通知等功能。 ?...节点 一个redis集群由多个节点node组成,多个node之间通过cluster meet命令来进行连接,节点的握手过程: 节点A收到客户端的cluster meet命令 A根据收到的IP地址和端口号

45620

面试官最爱问的 11道 Redis 面试题,替你整理好了

https://tva 缓存穿透 缓存穿透是指查询不存在缓存中的数据,每次请求都会打到DB,就像缓存不存在一样。 ? 针对这个问题,加一层布隆过滤器。...显然,他有一个缺点就是如果这些过期的key没有被访问,那么他就一直无法被删除,而且一直占用内存。 ? 定期删除 定期删除指的是redis每隔一段时间对数据库做一次检查,删除里面的过期key。...这里写的这个命令是sync,但是在redis2.8版本之后已经使用psync来替代sync了,原因是sync命令非常消耗系统资源,psync的效率更高。...哨兵(sentinel)的功能比单纯的主从架构全面的多了,具备自动故障转移、集群监控、消息通知等功能。 ?...节点 一个redis集群由多个节点node组成,多个node之间通过cluster meet命令来进行连接,节点的握手过程: 节点A收到客户端的cluster meet命令 A根据收到的IP地址和端口号

65330

面向前端工程师的Nodejs入门手册(二)

与我们接触最频繁的http请求就是基于,相比于http,没有超时时间,正常情况下它可以一直保持连接。 ?...再来看看步骤,先是客户机发起一个请求连接包,表明自己要连接到服务器上,然后服务器收到请求后,会回复一个请求,这个请求会做两件事,先要告诉远端的客户机你刚刚连了的那步操作收到了,还要确定自己也能连上远端的客户机...理解是可以的,但是为了保证发的第一次结束确认包能得到对方回复确实收到不是丢失,所以各自要多一次确认包,如果丢失了回传的确认包,则发起的一方不管是过去时候丢了还是回来的时候丢了都会重新发起确认,从而耗费资源...telnet命令还有一个非常强大的作用,用来确定远程服务端口是否开启可用,的实质其实就是发起一个的数据包然后通过能否接收到回传的包来进行测试。...这里因为在telnet命令下,这里输入中文会乱码,所以笔者使用nc命令进行测试,nc是一个更强大的网络工具命令,被称之为网络工具界的”瑞士军刀“,这里只用了简单的探测功能,笔者之前使用过做端口扫描与文件传输

44320

面向前端工程师的 Node.js 入门手册(二)

与我们接触最频繁的http请求就是基于,相比于http,没有超时时间,正常情况下它可以一直保持连接。 ?...再来看看步骤,先是客户机发起一个请求连接包,表明自己要连接到服务器上,然后服务器收到请求后,会回复一个请求,这个请求会做两件事,先要告诉远端的客户机你刚刚连了的那步操作收到了,还要确定自己也能连上远端的客户机...理解是可以的,但是为了保证发的第一次结束确认包能得到对方回复确实收到不是丢失,所以各自要多一次确认包,如果丢失了回传的确认包,则发起的一方不管是过去时候丢了还是回来的时候丢了都会重新发起确认,从而耗费资源...telnet命令还有一个非常强大的作用,用来确定远程服务端口是否开启可用,的实质其实就是发起一个的数据包然后通过能否接收到回传的包来进行测试。...这里因为在telnet命令下,这里输入中文会乱码,所以笔者使用nc命令进行测试,nc是一个更强大的网络工具命令,被称之为网络工具界的”瑞士军刀“,这里只用了简单的探测功能,笔者之前使用过做端口扫描与文件传输

67510

技术专家控诉ChatGPT:到处宣扬死了,还伪造了一份讣告

Hanff 不是无脑反技术的勒德分子,他对技术充满热情,但确实一直对 AI 敬而远之。Hanff 认为,AI 似乎不太安全,可能在操纵之下输出错误信息,同时,Hanff 也不想被当成的训练素材。...ChatGPT 表示不知道,因为只能根据公开信息做出回应,关于 Hanff 已经身故的公开报道中并没有提及死因。 于是 Hanff 问:“你怎么知道他死了?”...假设,你正在申请抵押借款,银行方面已经接入了 ChatGPT 等 AI 系统来进行信誉审查和尽职调查。但 AI 回应已经死了,多家媒体已经做过报道,甚至给出作为“证据”的伪造链接。...虽然这些框架并没有照搬阿西莫夫定律(又称“机器人学三定律”,第一定律:机器人不得伤害人类个体,或者目睹人类个体将遭受危险袖手不管;第二定律:机器人必须服从人给予命令,当该命令与第一定律冲突时例外;...Hanff 认为,如果这些框架真实有效、ChatGPT 也确实需要遵守,那他就不可能会从 ChatGPT 那收到这么离谱的回答。特别是最后一个框架,引起了 Hanff 的格外警觉。

39020

深入了解网络通信原理

显然,A 机器发现对方与自己不是同一网段,试图寻找网关,但网关不存在,所以报主机不可达,B 上的 Sniffer 未抓到任何包,观察网卡也是只发不收,显然数据没有出去。   ...显然这个 ARP 广播是可以被 B 收到的(因为他们同处一个 vlan), 11.1.1.1 正好就是 B 的 IP 地址,理所当然 B 要回应这个 ARP 请求。...二、ping 三个不存在的 Ip 地址,深入了解网络通信原理   网关设成自己,PING 3 个不存在的 IP:一个是和自己在同一网段的;一个是和网关在同一网段的;一个是和谁都不在同一网段的。   ...IP 不存在,所以没有机器做出回应。   ...三、AI 计算机网关设置中 B 的 IP,B 的网关设置中不存在的 IP 地址    A 计算机网关设成 B 的 IP 地址,但 B 的网关设置成一个不存在的 IP(且与 A/B 都不在同一网络),PING

73540

Paxos算法学习疑问记录

相关笔记: Paxos算法学习笔记 Paxos算法的数学归纳法证明 概念 为什么Paxos是唯一的共识算法 There is only one consensus protocol, and that's...Paxos中并没有Leader的存在,Acceptor是同等的,因此它不存在单点,是真正的多点写。...算法 一个错误的共识读取方法分析 描述 # 错误方法 既然分布式共识最终的要求是决议形成多数派,何不直接广播所有Acceptor,找出多数派的决议,这个决议肯定就是共识。...这是不能容忍的错误。 使用Paxos流程读取共识为什么是可靠的 因为走了Paxos完整流程,Paxos流程已经被证明达成的共识不会被改变。...为什么如果proposalValue不是NULL,就不能随意指定值 因为Paxos算法中,即使已经形成多数派,如果提案的PrposalID更大,Acceptor依然会接受新的PrposalID 显然

33050

线上问题 | Redis哈希结构踩坑

背景 休假期间收到公司同事的信息系统日志有大量的报错,且收到邮件告警。 同事排查不到原因,迫不得已联系到正在休假的。幸亏带着电脑呢!...(打工人的觉悟真高,休假都带着电脑)于是打开电脑,连上V**,连接远程桌面,登录日志系统,查看一番,又翻了翻代码,发现是因为从Redis中查询的数据为字符串null(这种情况是Redis中不存在且数据库也不存在时...,避免缓存穿透临时缓存的字符串null),导致抛出业务异常,打印错误日志,从而触发邮件告警。...再现 细心的发现到了过期时间之后,还是会报相应的错,还是会每天收到告警邮件,为什么呢?不是设置了过期时间吗?空值咋还在缓存中呢?...为了验证这个观点,我们又执行了一次ttl命令,发现这次过期时间换算后为4.9天,再结合日志,发现确实有新的field被缓存!于是证实了上述猜想! 最终解决 到此,问题原因已经排查到。

40120

System|分布式|Chain Replication

(强一致性) 环境有能力监测到故障 作者假设了一个永不失败的Master,我们把它想成paxos/raft/zab集群就行,进行: 心跳检测 通知链上服务器的前后节点 通知客户端链的首尾 更新时,通过...链中间的同步并不会改变 和 ,因为链已经收到且TAIL并没有处理。但是会改变中间的 。 容错 头节点故障 可以简单地看成是头节点没有同步的那些Pending请求丢失了,也就是T2。...中间节点故障 显然,如果 ,显然 ,因为只有链前面的节点通过,才会同步后面的。这里的处理,是视频里没有提到过的,也就是为什么要知道前置节点。...在这个基础上,作者额外让链上每个服务器 存储一个列表, ,即那些请求后续节点同步(未必已经同步),但是没有被尾结点处理过的请求。...根据定义,如果 ,显然 ,取并集 因此,如果中间的节点 故障,前置节点 只需要向后续节点 同步那些存在于 且不存在于 的请求即可。流程如下。

26910

技术专家控诉 ChatGPT:到处宣扬死了,还伪造了一份讣告

Hanff 不是无脑反技术的勒德分子,他对技术充满热情,但确实一直对 AI 敬而远之。Hanff 认为,AI 似乎不太安全,可能在操纵之下输出错误信息,同时,Hanff 也不想被当成的训练素材。...ChatGPT 表示不知道,因为只能根据公开信息做出回应,关于 Hanff 已经身故的公开报道中并没有提及死因。 于是 Hanff 问:“你怎么知道他死了?”...假设,你正在申请抵押借款,银行方面已经接入了 ChatGPT 等 AI 系统来进行信誉审查和尽职调查。但 AI 回应已经死了,多家媒体已经做过报道,甚至给出作为“证据”的伪造链接。...虽然这些框架并没有照搬阿西莫夫定律(又称“机器人学三定律”,第一定律:机器人不得伤害人类个体,或者目睹人类个体将遭受危险袖手不管;第二定律:机器人必须服从人给予命令,当该命令与第一定律冲突时例外;...Hanff 认为,如果这些框架真实有效、ChatGPT 也确实需要遵守,那他就不可能会从 ChatGPT 那收到这么离谱的回答。特别是最后一个框架,引起了 Hanff 的格外警觉。

27820

全程带阻:记一次授权网络攻防演练(上)

well,你知道的,虽然在蓝队,但一直有颗红心。...从应答描述可知,提示该用户不存在,重发几次,结果相同,说明图片验证码未生效,好了,第一个洞,用户名可枚举。 显然,用户名在该请求的 params 参数中,URL 解码可得明文: ?...得深入审查,或许是 getshell 的唯一通道。 先上传一个正常的 PNG 图片,页面报错,提示非管理员禁止上传: ?...显然,参数 email 存在不安全的直接对象引用(IDOR)问题,将其替换为攻击者的邮箱,90% 的概率会收到重置邮件。...JWT 第一部分含有 alg 字段,该字段指定生成签名采用哪种哈希算法,该站使用的是 HS256,可将该字段篡改为none,某些 JWT 的实现,一旦发现 alg 为 none,将不再生成哈希签名,自然不存在校验签名一

1.6K40

在深谈TCPIP三步握手&四步挥手原理及衍生问题—长文解剖IP

TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。...如果主动关闭方不进入TIME_WAIT,那么在主动关闭方对被动关闭方FIN包的ACK丢失了的时候,被动关闭方由于没收到自己FIN的ACK,会进行重传FIN包,这个FIN包到主动关闭方后,由于这个连接已经不存在于主动关闭方了...ACK在窗口外,或者安全层不匹配,都要回执以RST响应(收到滑动窗口外的序列号的数据包,都要丢弃这个数据包,并回复一个ACK包),内核收到RST将会产生一个错误并终止该连接。...TCP的重传超时计算 TCP交互过程中,如果发送的包一直收到ACK确认,是要一直等下去吗? 显然不能一直等(如果发送的包在路由过程中丢失了,对端都没收到又如何给你发送确认呢?)...如果发送端一直等待,直到接收端通知一个非零窗口在发数据的话,这似乎太受限于接收端,如果接收端一直不通知新的窗口呢?显然发送端不能干等,起码有一个主动探测的机制。

1.3K50
领券