使用不当专题

【转载】记一次因 Redis 使用不当导致应用卡死 bug 的排查及解决!

说明:此篇文章 作者分析问题的思路很好,值得学习记录,原文转载自公众号。   首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象 刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应用,应用恢复正常,于是没做处理。 但是后来问题出现频率越来越频繁,越来越多的同事开始抱怨,于是感觉代码可能有问题,开始排查。 首先发现开发的本地ide没有发现问题,应用卡死时候数据

Android中Handler使用不当引起的内存泄露

通常我们在Android编程中,常常会用到它自己提供的一种异步回调机制Handler,通过它,我们可以在进行异步操作后处理返回结果,通常我们的代码是这么实现的:在主线程中,new一个Handler对象实现其handleMessage方法,在handleMessage中提供收到消息后的相应处理的方法即可,示例代码如下: package com.tb.demo.utils.hangview;

Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析

前段时间,公司同事开发了一个小工具,在工具执行过程中,UI界面一直处于卡死状态。 通过阅读代码发现,主要是由于Dispatcher.BeginInvoke()方法使用不当导致的。 本文将通过一个WPF模拟程序来演示一下界面卡死的现象,并通过修改代码来解决界面卡死的问题。 希望通过对本文的学习,大家能对Dispatcher.BeginInvoke()方法有一个新的认识。 文章开篇直接给出

【线上问题】记一次公司日志基础组件SPI使用不当导致业务中断

Informal Essay By English It is always a pleasure to learn 背景 叮叮叮、叮叮叮…,某年某月某日晚上,上海某出租屋内,刚被放在桌上的手机的铃声在安静的屋内显得很piercing。来电显示是一个广东电话号码,电话号码非常的熟悉,是系统的告警专用电话。我平静的打开电脑,打开钉钉,看了一下alert群内的异常信息。然后开始熟练的打开公司的日

Angular 由一个bug说起之四:jsonEditor使用不当造成的bug

一:问题 项目中使用了一个JSON第三方库: GitHub - josdejong/jsoneditor: A web-based tool to view, edit, format, and validate JSON 当用户编辑JSON格式的数据,查找替换时: 用户的期望结果是:$$ 被替换为$$_text,但是实际结果是被替换为$_text: 二:原因 第三方库源码中,替换

一次因线程池使用不当造成生产事故OOM

美好的一天从bug结束 某日当我点开熟悉的界面,一个又一个请求失败的提示赫然出现在屏幕上,不会是昨晚上线的代码有问题吧? 吓得我急忙按F12查看了响应——"exception":"java.lang.OutOfMemoryError","message":"unable to create new native thread" 出现了内存溢出的情况,无法创建更多的本地线程。 监控中显端倪

一次奇葩的spin_lock_irq / spin_unlock_irq使用不当导致的系统卡死分析

这是在调试内核block层时遇到的一例奇葩的soft lock锁死问题(内核版本centos 8.3,4.18.0-240),现场如下: [  760.247152] watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [kworker/0:1:2635]……………..[  760.247184] CPU: 0 PID: 2635 Comm: kw

Redis 分布式锁使用不当,酿成一个重大事故,超卖了100瓶飞天茅台!!!

点击上方 好好学java ,选择 星标 公众号 重磅资讯、干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 基于Redis使用分布式锁在当今已经不是什么新鲜事了。 本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案。我们项目中的抢购订单采用的是分布式锁来解决的,有一次,运营做了一个

Android融云使用不当产生的内存泄露和BUG(匿名类回调导致Activity内存泄露)

先看看代码,然后讨论代码中出现的问题 /** * IMKit SDK调用第二步,建立与服务器的连接 */ RongIM.connect(token, new RongIMClient.ConnectCallback() {/** * Token 错误,在线上环境下主要是因为 Tok

8 个线程池最佳实践和坑!使用不当直接生产事故!!

大家好,我是不才陈某~ 这篇文章我会简单总结一下我了解的使用线程池的时候应该注意的坑以及一些优秀的实践。拿来即用,美滋滋! 内容概览: Java指南:https://java-family.cn 1、正确声明线程池 线程池必须手动通过 ThreadPoolExecutor 的构造函数来声明,避免使用Executors 类创建线程池,会有 OOM 风险。 Executors 返回线程池对象的弊端

Integer 使用不当导致生产的事故

问题回顾:         某系统是做理财这块业务的,每天会收到一个基金公司的收益文件, 然后需要把这个文件解析并且保存每个用户的收益数据到数据库。 在解析文件的时候,需要对数据的条数做校验,于是用到了 Integer 这个对象并且使用==来判断。 测试环境都没问题,但是到了生产环境上出现用户收益没有到账的问题,造成了大规模的投诉。 最后定位才发现是收益文件验证失败导致没有被解析入库。 所以这里

PHP 反序列化对象出错,PHP反序列化中过滤函数使用不当导致的对象注入

1.漏洞产生的原因 ####  正常的反序列化语句是这样的 $a='a:2:{s:8:"username";s:7:"dimpl3s";s:8:"password";s:6:"abcdef";}'; 但是如果写成这样 $b='a:2:{s:8:"username";s:7:"dimpl3s";s:8:"password";s:6:"123456";}s:8:"password";s:6:"abc

php反序列化注入,浅析PHP反序列化中过滤函数使用不当导致的对象注入问题

1.漏洞产生的原因 #### 正常的反序列化语句是这样的 $a='a:2:{s:8:"username";s:7:"dimpl3s";s:8:"password";s:6:"abcdef";}'; 但是如果写成这样 $b='a:2:{s:8:"username";s:7:"dimpl3s";s:8:"password";s:6:"123456";}s:8:"password";s:6:"abcd