今天看了个因字符串拼接导致的 CPU 高的问题,首先是监控 Agent 持续对一个实例进行告警,并抓取到了 CPU 高的相关 Java 线程:
1 | lwpId: 17, CPU usage: 52.9 |
今天看了个因字符串拼接导致的 CPU 高的问题,首先是监控 Agent 持续对一个实例进行告警,并抓取到了 CPU 高的相关 Java 线程:
1 | lwpId: 17, CPU usage: 52.9 |
今天帮同事查了个参数丢失的问题,确认是由参数大小超过 Tomcat 默认限制引起,源码位于 tomcat/Request.java:
1 | if ((maxPostSize >= 0) && (len > maxPostSize)) { |
OpenSSH 8.8 存在不兼容的改动,导致 macOS 升级至 Ventura 后因 macOS 上的 OpenSSH 版本升级至了 9.0 后当连接的服务端 OpenSSH 版本为低版本(如:6.6.1)时 SSH 连接时无可互用的签名算法导致提示输入密码(服务端允许密码登录时)或者直接提示 Permission denied, please try again.(服务端不允许密码登录时)。如果使用 verbose 模式查看 ssh 时的 debug 信息,可以发现如下输出:
1 | debug1: send_pubkey_test: no mutual signature algorithm |
建议的解决方案为升级服务端的 OpenSSH 版本,如果实在无法升级,则推荐修改客户端 ssh 配置临时启用使用 SHA-1 哈希算法的 RSA 签名。OpenSSH 8.8 Release 文档中关于此部分的描述如下:
1 | Potentially-incompatible changes |
最近查了个 HTTP 劫持的问题,本文简要记录。背景是近期不少用户反馈扫码出来的为黄色网站,由于历史原因,存在部分二维码的入口为 HTTP 协议,这部分请求通过 301 跳转至 HTTPS 页面实现。虽然已经启用了 HSTS,但是对于首次访问,始终存在被劫持的风险(域名未在 preload 名单中)。
最近查了个关于 System.nanoTime()
的问题,起因是业务里面将 System.nanoTime()
返回的数值作为了业务中的唯一值,最后发现了值相同的数据,询问编写这块代码的同事,同事反馈说当时编写的时候以为 System.nanoTime()
的精度很高,不会出现重复的数据。但是从现象来看,出现了重复的数据。
我们可以用一段简单的代码复现该问题:
1 | public class Test { |