好久没来这里写点啥了,总觉得没啥可以写的,今天来记个流水账说下上周遇见的一个比较低级的问题,按理来说一个老鸟不应该有这样的经验错误。
像往常一样,申请了一台测试用机,然后一系列配置,checkout 代码,开始build部署, 一切貌似都很顺利,检查服务器启动日志没有错误,正高兴着用url去访问一把,结果 呢,等10分钟,页面居然没有打开,一切都在进行中..... 让我着实郁闷了一把,咋回事呢? 日志中没有任何错误出现,习惯性的top命令查看了一下
基本上没load,cpu基本上完全空闲,内存也足够,NND,见上帝了?于是,我又重新更新了主干代码,重新build、重启服务器,再来,涛声依旧....
难道是启动代码什么地方有问题?于是加上-Xdebug 等参数准备调试一下,看代码有啥问题(说实话,一来就这么做的确还是有点傻,因为我都不能确定问题的大概范围就开始debug了,除了一步一步找代码,继续浪费时间,没有啥收获)折腾了半个小时,没有下文...,没辙了,去趟WC先,正欲起身,突然想起来,难道是主线程被阻塞了,导致不能响应请求?于是马上坐下,输入ps aux|grep java 找到进程号,再jstack 进程号|grep "main" ,我的目的是找到main这个主线程,一看果然
主线程一直在waiting,一看让其waiting的是DefaultUUCacheService中95行位置,
解释一下,我猜测了下这段代码的存在的原作者本来意图,该service初始化时,调用subCacheConfig()注册一个cache,注册完毕后,会等待中心配置服务器将一些cache配置推送到本机, 这是一个callback的异步通知过程,主线程继续向下走,它在继续向下执行之前必须确定cache配置已经准备好,于是使用了cacheReady这个 java.util.concurrent.atomic.AtomicBoolean 变量, 在callback成功后,将该变量设置成true,主线程会在这里循环get,看变量是否设置好,设置后了再继续,如果没有设置好,那么最多重试60次,也就是这里的tryTimes,杯具的是,这里没有对tryTimes 拿入判断中,导致一直要等待这个变量的设置完毕,一旦callback出问题,主线程也就挂在这里了,bug一个,最简单修改方法:while(!cacheReady.get()&&tryTimes>0){ .....}
不过问题又来了,什么东东会导致原本是好好的callback过程,而这里却一直出问题呢?于是在callback里外打上断点(这个时候才是比较有目的性的debug),结果发现 在开始配置服务器的时候将一个version给设置错了,导致拿不到数据,又没有任何异常出现,导致纠结了如此之久,还好误打误撞的错配置纠出了老代码中的bug,也算是没有白费功夫。
注: 代码出现问题,不要一开始漫无目的一开始上来就一通debug,这样目标范围太大,也基本上没有什么效果,而应该采取其他办法将问题范围缩小,找到问题发生的最可能根源再动手debug,本人之前一来就烦了.
这个大忌,导致时间白白浪费不少,教训。
分享到:
相关推荐
为了能够验证及实现我们的假目标综合系统,刚下手就处理硬件实现并不妥当,并且ISAR的使用非常昂贵,更不用说要实现这个系统所要使用的其他硬件设施了。总之,硬件实现非常困难,周期太长并且成功率不高。现在的...
排球正面下手发球教学教案@.doc
- “看谁发的准”:进行小型的发球准确度测试,评估学生的学习成果。 - 放松活动:进行气吸放松练习,帮助学生恢复体能,同时进行课程总结,指出不足,提出改进建议。 6. **教学目标**: - 运动参与:培养学生的...
北大高数一下手写版答案,非常详细,包括了从第七章开始的全部详细答案。
本单元共4次课,每次课的教学目标、重点和难点各有侧重。第一课时主要学习站姿和徒手动作路线,强调击球时的站姿和“一低二直三跟进”的动作要领;第二课时是击固定球和近距离击球过网,重点在于身体协调用力和正确...
厨房分类设计何处下手学习课程.pptx
微信要盈利,得尽快下手.docx
太阳公司的“linux下手写识别支持”项目,提供了一个小程序,旨在帮助开发者和用户在Linux环境下实现这一功能。 首先,我们要理解手写识别的基本原理。它通常涉及图像处理、模式识别和机器学习算法。手写的字符被...
互联网“杀猪盘”对中老年人也下手了!.docx
"54个开放论坛,SEO优化的速度下手了"这个主题聚焦于利用开放论坛进行有效的SEO工作,这是一份宝贵的资源列表,旨在帮助网站管理员和数字营销人员加速他们的SEO进程。论坛是一个互动的平台,用户可以讨论各种话题,...
在linux平台下手写数据库内核,通过对数据库内核的开发,了解数据库运行机制与原理;
【标题解析】:“短视频短报告:快手,值得下手吗?”这个标题表明了报告的主题,它聚焦于快手这一短视频平台,并提出了一个投资或使用的决策问题。报告可能会深入分析快手的市场地位、用户基础、业务模式、盈利能力...
天猫京东严选们的双十一,为何都瞄准“会员”下手?.pdf
为了实现这一目标,Quietyme正在扩大团队规模,加速市场渗透,并计划通过A轮融资进一步获取资金支持。 除了医疗领域,Quietyme还计划扩展到酒店和多租户住宅市场。尤其是多租户住宅市场,因为房东通常会重视保持...
047-请不要在我喜欢的人身上下手,我“刀”呢?.pdf
总之,面对新产品,产品经理应首先明确产品核心价值,然后基于MVP原则确定关键功能,再细化到页面字段设计,始终以用户需求为导向,通过合理的决策和设计,打造满足用户期望且具有竞争力的产品。在这个过程中,产品...
想开网店不知道怎么下手?这是许多电商新手的困惑。今天,我们将从四个方面来探讨电商实践的要点,以便帮助新手快速入门。 第一步:注册网店 要开始电商之旅,首先需要注册网店。这是一个简单却重要的步骤。下载...
根据提供的文档内容,我们可以总结和提炼出以下关于“排球教学计划、目标、教案”的相关知识点: ### 排球教学计划概述 #### 目标 1. **技能掌握**:增强体能,掌握并能够应用基本的体育与健康知识及技能。 2. **...
本研究文档的标题和描述均指向同一主题,即“基于深度学习的异噪声下手写汉字识别的研究”,通过这份研究文档,可以得知以下几点关键知识点: 1. 手写汉字识别技术:研究中提到,汉字识别是模式识别领域的一个重要...