异常记录
文章平均质量分 70
用来记录工作碰到异常问题
奔跑吧,小子
这个作者很懒,什么都没留下…
展开
-
【java系】记录一次ClassLoader.getResourceAsStream获取不到文件流
看到这里,我猜想是否和window底层文件操作系统不区分大小写有关呢?而服务器linux是严格区分大小写这个应该属性linux系统的都知道。问题描述反馈,开发同事在本地获取对应文件流是可以正常业务操作,发布到linux服务器对应环境就会出现异常。后来根据代码排查定位,发现确实是因为开发本身代码中有个地方,本该是大写开头的文件名称,他写成了小写。首先我在window操作系统中创建一个logs文件夹,然后在创建一个大写LOGS文件夹。看到上面的截图提示,我们应该知道了吧,想到就要验证,对吧?原创 2024-09-18 18:04:54 · 212 阅读 · 0 评论 -
【canal系】canal集群异常Could not find first log file name in binary log index file
canal-adapter:相当于canal的客户端,会从canal-server中获取数据,然后对数据进行同步,可以同步到MySQL、Elasticsearch和HBase等存储中去。canal-server(canal-deploy):直接监听MySQL的binlog,把自己伪装成MySQL的从库,只负责接收数据,并不做处理。canal-admin:为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作。canal环境的几个组件。原创 2023-09-08 12:03:33 · 1448 阅读 · 0 评论 -
【arthas系】springboot项目如何修改jar包静态文件、配置文件
登录服务器、或者docker容器里面执行,因为我这里知道项目的jar目录在data文件夹下,所以使用了data的目录。执行完成后,我们重新回到外面(项目的jar)的目录,重新压缩项目jar文件。因为我这里是模块化项目,修改的是嵌套打包lib目录下的jar包里面的内容。再次解压需要真正修改的jar包内容,找到修改的文件添加修改的内容。当然,这里强调的是 也是我目前还没有找到好的办法,需要重启jar。将新解压后的文件夹, 重新压缩原来jar的名字。将新解压后的文件夹, 重新压缩原来项目jar的名字。原创 2023-04-25 14:46:38 · 1072 阅读 · 0 评论 -
【arthas系】java语言项目如何不停机替换生产某一个class类
先简单介绍下文章中使用是springboot项目,采用的工具是arthas关于arthas的命令、以及官网地址这里贴以下出来这里先说明下,arthas有在线反编译class文件()->修改源文件->重新编译() 这样的流程来修改文件。这里在网上找到一篇对应这个流程的但是基本上重新编译这个操作很少成功。所以我这边直接选择使用完成的。原创 2023-04-25 14:13:15 · 1532 阅读 · 0 评论 -
【故障处理】VisualVM工具排查内存OOM问题
根据上面我们对应项目的代码很快就可以定位到问题 点击进去一直跟下去找到那个对象。那么来正题,我们将对应的文件下载到本地来通过图形化界面VisualVM分析。项目中使用的docker容器启动,里面添加了java程序启动的配置参数。就这样跟着调用的方法就可以跟到最后的那个对象,这里就不再跟了。往下看一直看到有我们自己项目中的包,提取到自己看到的关键信息。在打开的概要选项卡这里我们看到这个关键信息,我们点击进去看下。点击类选项卡,可以看到对应实例占用堆内存的大小。点击在类视图中显示,可以看到对应的类图信息。原创 2023-06-05 22:30:31 · 2653 阅读 · 0 评论 -
Connect to telnet server error: 127.0.0.1 3658 java.net.ConnectException: Connection refused
果真让我看到了pom文件有对应arthas字样的依赖,而且版本是3.4.3低于我上述命令安装的最新版本3.6.9.因为其他项目之前在docker容器中我这里是可以安装arthas成功的,但是这个项目就是不可以。看到日志其实心里是有些疑惑的,因为之前在其他项目docker容器是可以成功安装并启动成功的。是其他原因的话,可以查看这里github有人给出的几点方面的排查原因,是不是和你一样的原因。如果你也是和我一样的原因,也解决这样的问题,那么恭喜你。回到这里先看下官网这个端口是干嘛的。这里就直接先上排查思路。原创 2023-05-30 17:08:59 · 1915 阅读 · 0 评论 -
MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
那么我们看到事务表中INNODB_TRX,里面是否有正在锁定的事务线程,看看ID是否在show processlist里面线程中,如果有,那么就证明了这个休眠的线程事务一直没有commit(提交)或者roolback(回滚)而是卡住了,所以,我们需要人为介入,kill掉。这种错误就是平常说的两个业务相关事务的操作对相同的行锁冲突了,你不提交,我也不提交,导致这样的问题。实际操作的时候,我这里kill掉之后,有个客户端还是在等待,我又去查询了了下,未提交的事务。这个时候等待事务提交的客户端出现。原创 2023-05-26 15:43:52 · 1434 阅读 · 0 评论 -
【故障处理】java程序cpu飙高如何排查
我们可以使用命令 cat jstack_result.log | grep "java.lang.Thread.State" | sort -nr | uniq -c 来对 jstack 的状态有一个整体的把握,如果 WAITING 之类的特别多,那么多半是有问题啦。当然更常见的是我们对整个 jstack 文件进行分析,通常我们会比较关注 WAITING 和 TIMED_WAITING 的部分,BLOCKED 就不用说了。这里介绍如何使用原生top命令来做定位具体代码的位置处理。原创 2023-05-25 19:05:04 · 5031 阅读 · 2 评论 -
【js系】一次前端id超过16位整数的bug问题
如果超过这个值,那么js会出现不精确的问题。果真有个id的值,后端数据库查询返回给前端的是13557206188654767 结果启用传给后端的接口id值变成了13557206188654768。先前言讲述下,项目中碰到的一个奇葩问题,项目中有个列表启用按钮,界面操作流程是先选择某一行记录选中点击启用,可是选中后某一行竟然没有操作上。看到这个问题,于是就搜索引擎关于js 超过16位失真的问题 ,找了篇文章大概理解了下。于是就前端debug查看下前端传递后端参数值是否有问题。如何防止这个事情发生呢?原创 2023-05-06 17:41:29 · 857 阅读 · 0 评论 -
【跨域系】为何配置了corsFilter还是出现跨域问题
java代码解决这个问题,尤其是springboot项目,可以有很多种方式,我这里由于项目原因以及处于从web访问执行的流程上来说filter肯定是先执行的,直接就选择用filter来处理的。为了本地容易测试这个跨域问题,简单写了一个简单的html文件贴到这里来,当然关于页面需要的脚本jquery包 就大家需要自己来获取了。贴上上面的代码,理论上面springboot启动 之后,跨域问题应该就可以解决了,但是当我访问的时候还是会出现跨域的问题。虽然添加了跨域的配置,这里我的控制台竟然是跨域的问题。原创 2023-04-20 22:40:22 · 2354 阅读 · 0 评论 -
【docker系】iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 18086 -j DNAT --to-destination
docker在防火墙关闭情况下,重启容器后发生的异常原创 2023-03-16 21:07:33 · 294 阅读 · 0 评论