复杂对象序列化失败问题一例

踩坑一则复杂对象(领域实体)序列化失败问题。 归因:测试环境Redis连接挂掉,同时对DDD领域实体序列化,JSON.toJSON() 封装了异常,导致关键异常栈丢失,后经过正向逆向分析找到了问题原因与解法。 ...

November 15, 2024 · 2 min · DragonSong

使用分布式锁解决接口互斥性、幂等性问题两例

针对近期处理的两例并发场景引发的「互斥性」「幂等性」问题进行过程分析、输出系统方案。 ...

March 20, 2024 · 4 min · DragonSong
本文案例涉及git操作

gitlab MR被revert后,功能分支无法再次merge到主干分支,怎么办?

需求分支首先通过MR合并到了master分支,部署后发现有问题,于是回滚代码,操作了MR处的revert,后面修复了问题,使用原功能分支提新的MR时,发现变更处是空的,本文来解决此类无法合并情形的问题。 ...

March 12, 2024 · 3 min · DragonSong
并发异常涉及流程

排查mybatis ognl解析参数值并发设置字段访问性报错问题一例

年后负责一个比较老的服务,报警不少,今天排查的这个问题也只有在老版本MyBatis下才有机会复现,值此宝贵的线上问题机会,记录一番。 低版本MyBatis中,在高并发情况下,有概率遇到解析private内部类集合解析抛错的情况。 我通过分析异常栈+搜索+分析源码的方式解决了此问题。 ...

March 1, 2024 · 4 min · DragonSong
并发修改异常涉及流程

排查 ConcurrentModificationException 问题一例

排查一则生产环境报 ConcurrentModificationException 的问题。 在相对复杂的工业代码中(绕来绕去,不是简单的一个函数调用),排查「简单问题」也不是一件简单的事。 ...

February 21, 2024 · 3 min · DragonSong
元空间从泄漏转为稳定

aviator动态创建类过多导致元空间内存泄漏 问题一例

协助同事排查处理了一则aviator使用不当导致元空间内存泄漏的问题,个人觉得是一则很有价值的案例,因此观摩学习一波。 使用aviator不启用表达式缓存的情况下,会分别在编译、解析阶段根据时间戳使用asm动态生成class,生成过多class就会撑爆元空间,也就是内存泄漏。 除此之外,在分析过程中还发现了aviator低版本的另一个泄漏问题,非常适合用来巩固jvm相关知识。 ...

September 15, 2023 · 6 min · DragonSong

mysql datetime 秒精度问题一例

排查了一则MySQL中datetime写入 诡异进位 的问题,通过查阅官方文档的方式找到了问题原因。顺带巩固下基础知识。 ...

August 10, 2023 · 2 min · DragonSong

troubleshooting mybatis-plus parsing whitespaces in SQL

Since 3.4.1 (less or more), mybatis-plus bring in a bug: when parsing extra whitespaces in SQL, it throws net.sf.jsqlparser.parser.ParseException. I solved the problem by finding relevant discussions and resources to gain insights into the issue. ...

August 7, 2023 · 1 min · DragonSong

使用jackson反序列化未忽略未知字段时报错 `UnrecognizedPropertyException` 问题一例

踩坑,Redis缓存使用Jackson2JsonRedisSerializer管理序列化,未设置disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES),上线中新代码写入了新的缓存字段结构,旧代码读到新结构报错UnrecognizedPropertyException。 ...

June 27, 2023 · 2 min · DragonSong

踩坑:macOS默认浏览器设置后跳转有误

记录一则macOS设置默认浏览器失效的例子。通过尝试解决了问题。 ...

March 31, 2023 · 1 min · DragonSong

踩坑更改了javaagent路径导致idea无法启动问题一例

踩坑,新机器装开发环境,因手动变更了已配置好的idea启动依赖的agent路径,导致jetbrains全系产品无法启动。 ...

March 24, 2023 · 2 min · DragonSong

spring-data-redis版本过低,导致并发获取数据为null问题一例

踩坑,spring-data-redis版本过低,导致并发获取数据为null问题一例,试用phind.comAI 搜索,快速定位到了问题原因。 ...

February 27, 2023 · 3 min · DragonSong

mysql in 查询索引失效问题一例

排查了一则MySQL中in查询传入270个入参则 索引失效 的问题,本文记录分析与解决的过程。 ...

December 1, 2022 · 2 min · DragonSong

混部redis写文件竞态严重导致实例获取不到连接问题一例

踩坑redis混部,导致AOF写磁盘过多,导致影响其他实例。通过与sre协作、分析日志,解决了问题。 ...

November 29, 2022 · 3 min · DragonSong

解决iCloud同步卡住的问题

居家办公,使用备用机搬砖,发现iCloud有文件没同步过来,排查、咨询客服后通过进入安全模式解决了问题。 ...

November 8, 2022 · 2 min · DragonSong

young gc stw pause引发接口超时问题一例

分析排查一则接口超时问题,定位为JVM Young区新生代过小引发GC频繁、触发STW停顿过多。 ...

November 2, 2022 · 7 min · DragonSong

解决MacOS突然无法上网问题

笔记本突然没法上网了,准确地说是能用微信但是浏览器无法上网,简单排查处理了下,这里记录下思路、过程。 ...

August 13, 2022 · 2 min · DragonSong

MySQL主从延迟业务数据缺失问题一例

踩坑MySQL主从延迟背景下,流程业务卡住无法流转,问题得以暴露。 ...

December 20, 2021 · 4 min · DragonSong

MySQL主从延迟消费重试问题一例

踩坑MySQL主从延迟背景下,生产消费未正确处理此类场景,数据消费第一次失败报警,问题得以暴露。 ...

December 9, 2021 · 3 min · DragonSong

事务中调用sleep问题一例

踩坑事务内循环调用sleep,通过调整线程池参数的方式问题得以暴露。 ...

December 8, 2021 · 4 min · DragonSong