mvn test -Dtest=TestLongLong

在跑测试的时候,出现了如下问题

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (common-test-bats-driver) on project hadoop-common: An Ant BuildException has occured: exec returned: 1

[ERROR] around Ant part …… @ 4:69 in /home/chuhuilong/hadoop/hadoop-common-project/hadoop-common/target/antrun/build-main.xml

根据错误提示,是hadoop-common这个模块中的antrun插件有问题,去该模块的pom中查看,

Untitled

是执行这个execution的时候出错了。

拿着common test bats driver关键词去hadoop官方的社区里搜索

https://issues.apache.org/jira/browse/HADOOP-14618 这个问题和我的出错一样,hadoop版本是3.0.0也很接近,只有一条评论说是running the build as a non-root user,以非root用户权限执行之前在网上看别人调试hadoop2.0版本的时候强调过,但是我是用的官方docker直接调试的,这些用户权限应该都是调好了的吧。并且这个issue中有执行的脚本出错的具体信息,我这边是没有的。

不过和我这个信息一样的就只有这个issue了,那我看看我执行mvn命令的用户权限是什么

还是没看出什么

再沉思分析一下,这个插件是在做脚本执行的测试,说明是有脚本执行失败了,那我找出来是哪个脚本之心失败了应该就可以进一步分析

看到插件里面,是执行了src/test/scripts下的run-bats.sh

Untitled

可以看到这个脚本就是把scripts下的脚本都跑一遍

再看看我的日志,说明这个脚本跑起来了了,有脚本没跑起来,那就按照顺序看看是到哪个没跑起来

Untitled

官方issue里是hadoop_mkdir.bats这个脚本没跑通,我这里这个脚本跑通了

我最后一个start-build-env.bats的脚本已经执行了也没报错,为什么还是没通过呢?

Untitled

是不是全部跑完然后中间有不ok的就算报错,于是我回头再看了一遍日志

原来hadoop_java_setup.bats这个脚本中有not ok的

Untitled

看看这个脚本

Untitled

原来这个脚本里有四个测试,这时我也才搞懂日志中1..4是代表测试的数目

第三个测试出了问题

这一下问题更精确了,带着hadoop_java_setup这个关键字再去hadoop社区看一下

但是这个关键字太宽泛了,一大堆有关的问题

这个测试猜测是要没有执行权限的时候不执行,但是不知道为什么这里的chmod a-x好像没有起作用,我把-eq 1 改成-eq 0,也就是和第四个对比测试一样就能暂时通过了,不过这应该是个问题。

想要执行单元测试

遇到了这个问题

Unable to load Atom ’execute_script’ from file ‘:/ghostdriver/./third_party/webdriver-atoms/execute_script.js’

看样子是浏览器的问题,官方的docker应该只是用来编译的最小依赖

Selenium

装了个selenium,并没有用

可能是phantomjs有问题

看一下版本

phantomjs is already the newest version (2.1.1+dfsg-2ubuntu1).

我的usr/bin目录下有phantomjs这个二进制文件,可能是版本不对?

Unable to load Atom ‘‘find_element"

根据这个问题,用apt下载的phantomjs好像有问题,需要手动下载

curl -L -s -S https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 -o phantomjs-2.1.1-linux-x86_64.tar.bz2

tar -xf phantomjs-2.1.1-linux-x86_64.tar.bz2

sudo cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/

The jasmine-maven-plugin encountered an exception:

[ERROR] org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

这个错误应该就是网络问题

Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.

不过好在是容器,销毁了重新创建一个就好了

现在了解了,selenium是做浏览器测试的工具,也就是hadoop用这个工具来测试它的yarnUI界面,

Untitled

仔细看看错误日志,有很多有趣的信息,一个是报错,还有就是生成了log文件

看这个样子和我之前猜测的网络问题应该无关,应该就是启动问题

Feb 13, 2023 1:54:43 PM org.openqa.selenium.phantomjs.PhantomJSDriverService INFO: environment: {} qemu-x86_64: Could not open ‘/lib64/ld-linux-x86-64.so.2’: No such file or directory Feb 13, 2023 1:55:03 PM org.openqa.selenium.os.UnixProcess checkForError SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 255 (Exit value: 255)

那去搜搜这个问题

qemu-x86_64: Could not open ‘/lib64/ld-linux-x86-64.so.2’: No such file or directory

根据这个问题开来,这好像是mac m1芯片的问题