Jenkins失败变红,查看控制台输出信息,发现错误如下:
[xUnit] [INFO] - Starting to record.[xUnit] [INFO] - Processing JUnit[xUnit] [INFO] - [JUnit] - 1 test report file(s) were found with the pattern 'report/ut_results.xml' relative to '/var/jenkins-FS-root/workspace/P_ENMC' for the testing framework 'JUnit'.[xUnit] [ERROR] - Clock on this slave is out of sync with the master, and therefore I can't figure out what test results are new and what are old.Please keep the slave clock in sync with the master.[xUnit] [INFO] - Setting the build status to FAILURE[xUnit] [INFO] - Stopping recording.Build step 'Publish xUnit test result report' changed build result to FAILURESkipping Cobertura coverage report as build was not UNSTABLE or better ...FTP: Current build result is [FAILURE], not going to run.Triggering a new build of M_JeninsMetrix #7113Finished: FAILURE
于是解决方案就出来了:修改slave node的时间,使之与master节点保持相同。
验证:再次构建运行工程,发现问题得以解决。
对的,也确实就是这么简单。
其实我不是CM,但我在解决jenkins的问题;我也不是运维,我却在解决Openstack运维的问题;我更不是PM,大家知道,我们的PM一般都是管管人开开会就完事,不做技术的;我也不是支持或其他,我和你一样,也只是一个普通的技术人员。
我觉得在一个团队中,当自己遇到问题时候,我们可以很轻松的解决掉,别人遇到问题的时候,我们可以帮助其解决问题,并能分享出来一些解决方案,这才是技术人的价值;遇到问题不可怕,可怕的是遇到问题就喊开发,打断其正在写代码的思路,往往会造成更多潜在的问题。
很多问题看起来一大堆报错信息,而实际上,只要我们抓住要害,根本原因有时候并不是很麻烦。
像之前我在其他问题解决办法中反复提到的一些思想:类似医生的“望闻问切”,首先简单看一下问题,猜测可能的原因,然后根据自己的猜测,稍做验证,如果猜对了,那问题就解决了,如果没猜对,那就需要在摸索思考才能解决。往往可以这么做:
1.检查问题:
遇到问题不要紧,首先要看错误日志,根据错误信息进行分析,抓住关键点,针对要害一步一步的追踪,不断的刨根问底之后,基本就拨云见雾,真相就在眼前了。
2.判断问题:
有时候遇到一些问题,看似很棘手,不知从何下手,不过不要紧,可以问下制造出这个问题的“罪魁祸首”操作者,他做了什么操作之后产生这样的结果?目前,相对人而言,计算机还是比较笨的,它是比较客观的,你给他输入什么,他就会根据预设的程序给你return什么。而往往输入输出这个I/O是有一定关系的,所以,当我们知道操作者的输入,会对解决问题有很大的帮助,因为我们可以预估输出,这个输出和我们期望的有什么不同。而如果是长时间运行出来的结果,另外操作者自己忘记了做什么导致的问题,那最简单的办法是在其中搜索“error”或者“exception”,找到这些关键字后面的日志信息,这才算是挖到阻挡我们的石头。
3.思考问题:
根据Error的信息,往往可以看出端倪,接着往下走,做一些深究,往往可以解决问题;
4.查找借鉴:
另外,有人会说有时候会遇到一些错误信息,从未见过,也分析不明白,怎么办?确实存在这种问题。这时候别忘了,我们天然最好的老师Google还在呢(当然可能被河蟹,但也有办法,可以FQ啊,如果你说不会FQ,那么你可以稍等一下就可以继续访问,或者试试bing、youdao、soso等,当然我不推荐使用baidu,除非实在没办法的情况下)
5.请教高人:
当然最后,还有一句话“三人行,必有我师”,如果单凭个人解决不了,拖的时间过长的话,那为了不耽误进度,可以向经验更丰富的人请教;很多在你遇到的并认为是很难的问题,在资深一些的技术人员眼中那根本就不是问题,或许三下五除二,一个简单的命令就可以搞定。
本来是一个很小的问题,但不料最后写了这么多废话,不过我觉得一些常见问题的解决办法也是有用的,所以保留着,如果有小的用处,幸甚至哉。