Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix jsk_pr2eus noetic travis #467

Closed
wants to merge 8 commits into from

Conversation

shmpwk
Copy link
Contributor

@shmpwk shmpwk commented Nov 17, 2021

Currently jsk_pr2eus noetic build fail like here.

One of this reason is that the noetic version of euscollada has not been released.
So euscollada should be installed from source.
Reference is .travis.rosinstall.noetic
.travis.rosinstall.noetic is checked by travis.sh.

2021-11-17T08:29:34.8409353Z Errors << pr2eus:cmake /github/home/ros/ws_jsk_pr2eus/logs/pr2eus/build.cmake.000.log
2021-11-17T08:29:34.8412346Z CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
2021-11-17T08:29:34.8417063Z   Could not find a package configuration file provided by "euscollada" with
2021-11-17T08:29:34.8417803Z   any of the following names:
2021-11-17T08:29:34.8418107Z 
2021-11-17T08:29:34.8418577Z     euscolladaConfig.cmake
2021-11-17T08:29:34.8419506Z     euscollada-config.cmake
2021-11-17T08:29:34.8419908Z 
2021-11-17T08:29:34.8420489Z   Add the installation prefix of "euscollada" to CMAKE_PREFIX_PATH or set
2021-11-17T08:29:34.8421312Z   "euscollada_DIR" to a directory containing one of the above files.  If
2021-11-17T08:29:34.8422181Z   "euscollada" provides a separate development package or SDK, be sure it has
2021-11-17T08:29:34.8422856Z   been installed.
2021-11-17T08:29:34.8423335Z Call Stack (most recent call first):
2021-11-17T08:29:34.8424748Z   CMakeLists.txt:24 (find_package)
2021-11-17T08:29:34.8425119Z 
2021-11-17T08:29:34.8425324Z 
2021-11-17T08:29:34.8427619Z cd /github/home/ros/ws_jsk_pr2eus/build/pr2eus; catkin build --get-env pr2eus | catkin env -si  /usr/bin/cmake /github/home/ros/ws_jsk_pr2eus/src/jsk_pr2eus/pr2eus --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/github/home/ros/ws_jsk_pr2eus/devel/.private/pr2eus -DCMAKE_INSTALL_PREFIX=/github/home/ros/ws_jsk_pr2eus/install; cd -
2021-11-17T08:29:34.8429242Z 
2021-11-17T08:29:34.8429626Z ...............................................................................
2021-11-17T08:29:34.8430152Z Failed << pr2eus:cmake                          [ Exited with code 1 ]

[Edited]
The other reasons to fail test are there are several unreleased packages in noetic version.
In addition, since noetic python version is python3, some python2 test codes fail.

Thank you @708yamaguchi @tkmtnt7000

@708yamaguchi
Copy link
Member

708yamaguchi commented Nov 17, 2021

euscollada and openrave build failed.

2021-11-17T14:40:50.4583567Z [build] Failed packages:
2021-11-17T14:40:50.4583830Z 
2021-11-17T14:40:50.4584152Z  [    Failed] euscollada         
2021-11-17T14:40:50.4584550Z  [    Failed] openrave        

https://github.com/jsk-ros-pkg/jsk_pr2eus/runs/4239126671?check_suite_focus=true

For euscollada build failure

We should add collada_urdf

Please see
https://github.com/jsk-ros-pkg/jsk_robot/blob/e4262cbf8932a107220dc4b7c2562a192186fd0d/.travis.rosinstall.noetic#L13-L23

2021-11-17T14:40:50.4293376Z Errors << euscollada:cmake /github/home/ros/ws_jsk_pr2eus/logs/euscollada/build.cmake.000.log
2021-11-17T14:40:50.4294253Z CMake Error at /opt/ros/noetic/share/collada_urdf/cmake/collada_urdfConfig.cmake:113 (message):
2021-11-17T14:40:50.4295199Z   Project 'collada_urdf' specifies '/usr/../include/include' as an include
2021-11-17T14:40:50.4295885Z   dir, which is not found.  It does neither exist as an absolute directory
2021-11-17T14:40:50.4296681Z   nor in '${{prefix}}//usr/../include/include'.  Check the issue tracker
2021-11-17T14:40:50.4297663Z   'https://github.com/ros/collada_urdf/issues' and consider creating a ticket
2021-11-17T14:40:50.4298311Z   if the problem has not been reported yet.
2021-11-17T14:40:50.4298785Z Call Stack (most recent call first):
2021-11-17T14:40:50.4299396Z   /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
2021-11-17T14:40:50.4300016Z   CMakeLists.txt:11 (find_package)
2021-11-17T14:40:50.4300320Z 
2021-11-17T14:40:50.4300503Z 
2021-11-17T14:40:50.4302684Z cd /github/home/ros/ws_jsk_pr2eus/build/euscollada; catkin build --get-env euscollada | catkin env -si  /usr/bin/cmake /github/home/ros/ws_jsk_pr2eus/src/euscollada/jsk_model_tools-release-rpm-ros-melodic-euscollada-0.4.3-0_28 --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/github/home/ros/ws_jsk_pr2eus/devel/.private/euscollada -DCMAKE_INSTALL_PREFIX=/github/home/ros/ws_jsk_pr2eus/install; cd -
2021-11-17T14:40:50.4304368Z 
2021-11-17T14:40:50.4304676Z ...............................................................................
2021-11-17T14:40:50.4305159Z Failed << euscollada:cmake                      [ Exited with code 1 ]

I also care about https://github.com/jsk-ros-pkg/jsk_robot/blob/e4262cbf8932a107220dc4b7c2562a192186fd0d/.travis.rosinstall.noetic#L2-L5
If test failed because of lack of euslisp, please add these lines.

For openrave build failure

I think we can remove .travis.rosinstall and add all rosinstall packages (roseus, jskeus, euscollada ...) to .travis.rosinstall.noetic
This is because all distro do not use .travis.rosinstall (USE_DEB: true)
https://github.com/jsk-ros-pkg/jsk_pr2eus/tree/f26979e38677ff7c517c2588cf11416c2693c134/.github/workflows

@708yamaguchi
Copy link
Member

Sorry, but my explanation was not enough.
Please remove openrave from rosinstall.

(noetic test is not finished, but I think the noetic test will fail.)

@708yamaguchi
Copy link
Member

Build passed but some tests failed

2021-11-18T04:21:36.6098801Z pr2eus/test_results/pr2eus/rostest-speak-test-eus__test_action_true.xml: 1 tests
2021-11-18T04:21:36.6099874Z pr2eus/test_results/pr2eus/rostest-speak-test__test_action_true.xml: 3 tests
2021-11-18T04:21:36.6100868Z pr2eus/test_results/pr2eus/rostest-test_default-ri-test.xml: 1 tests
2021-11-18T04:21:36.6102047Z pr2eus/test_results/pr2eus/rostest-test_make-pr2-model-file-test.xml: 1 tests
2021-11-18T04:21:36.6103189Z pr2eus/test_results/pr2eus/rostest-test_pr2-ri-test-simple.xml: 1 tests
2021-11-18T04:21:36.6104334Z pr2eus/test_results/pr2eus/rostest-test_pr2eus-test.xml: 2 tests, 1 errors, 0 failures, 0 skipped
2021-11-18T04:21:36.6105417Z pr2eus/test_results/pr2eus/rostest-test_robot-init-test.xml: 1 tests
2021-11-18T04:21:36.6106390Z pr2eus/test_results/pr2eus/rostest-test_robot-no-clock.xml: 1 tests
2021-11-18T04:21:36.6107420Z pr2eus/test_results/pr2eus/rostest-test_speak-test-eus.xml: 1 tests
2021-11-18T04:21:36.6108384Z pr2eus/test_results/pr2eus/rostest-test_speak-test.xml: 3 tests
2021-11-18T04:21:36.6109273Z pr2eus/test_results/pr2eus/rosunit-default_ri_test.xml: 10 tests
2021-11-18T04:21:36.6110184Z pr2eus/test_results/pr2eus/rosunit-hz_test_sound_play_false.xml: 1 tests
2021-11-18T04:21:36.6111098Z pr2eus/test_results/pr2eus/rosunit-hz_test_sound_play_jp_false.xml: 1 tests
2021-11-18T04:21:36.6112169Z pr2eus/test_results/pr2eus/rosunit-hz_test_sound_play_jp_true.xml: 1 tests, 0 errors, 1 failures, 0 skipped
2021-11-18T04:21:36.6113332Z pr2eus/test_results/pr2eus/rosunit-hz_test_sound_play_true.xml: 1 tests, 0 errors, 1 failures, 0 skipped
2021-11-18T04:21:36.6114347Z pr2eus/test_results/pr2eus/rosunit-make_pr2_model_file_test.xml: 6 tests
2021-11-18T04:21:36.6115229Z pr2eus/test_results/pr2eus/rosunit-pr2_ik_test.xml: 5 tests
2021-11-18T04:21:36.6116059Z pr2eus/test_results/pr2eus/rosunit-pr2_no_clock_test.xml: 1 tests
2021-11-18T04:21:36.6117084Z pr2eus/test_results/pr2eus/rosunit-pr2_read_state_test.xml: 2 tests, 0 errors, 1 failures, 0 skipped
2021-11-18T04:21:36.6118278Z pr2eus/test_results/pr2eus/rosunit-pr2_ri_test_simple_no_gazebo.xml: 9 tests
2021-11-18T04:21:36.6119210Z pr2eus/test_results/pr2eus/rosunit-robot_init_test_node.xml: 0 tests
2021-11-18T04:21:36.6120141Z pr2eus/test_results/pr2eus/rosunit-speak_test_node_action_true.xml: 1 tests
2021-11-18T04:21:36.6121075Z pr2eus/test_results/pr2eus/rosunit-speak_test_node_false.xml: 1 tests
2021-11-18T04:21:36.6122059Z pr2eus/test_results/pr2eus/rosunit-stest_peak_publish_euslisp_false.xml: 8 tests
2021-11-18T04:21:36.6123074Z pr2eus/test_results/pr2eus/rosunit-stest_peak_publish_euslisp_true.xml: 8 tests
2021-11-18T04:21:36.6123784Z Summary: 70 tests, 1 errors, 3 failures, 0 skipped

https://github.com/jsk-ros-pkg/jsk_pr2eus/runs/4246972469?check_suite_focus=true

@shmpwk
Copy link
Contributor Author

shmpwk commented Nov 18, 2021

@708yamaguchi
travisのログを見ると,
ERROR: max time [60.0s] allotted for test [pr2_read_state_test] of type [roseus/roseus]
と出ていて,pr2eus-test.launchでテストされる,pr2-read-state-test.lでテスト時間が60sを超過して,テストがfailします.
テスト時間を減らせないかと,試しに一度pr2-read-state-test.lの中のdefun pr2-read-joint-state-testを別ファイルにしましたが,その関数で再度テスト時間が制限を超過しました.(この変更はforce-pushで無かったことにしました. from #e2ae589 to #15d25a7)
なので,修正案としては,

  1. テスト制限時間を60sから増やす
  2. defun pr2-read-joint-state-testのテスト内容を減らす?

なのかなと思いました.
しかしながら,indigoやkineticやmeloricで同一のテストはpassしているのにnoeticのテストのみでfailするのは,未だ理由がわかっていません.

@shmpwk
Copy link
Contributor Author

shmpwk commented Nov 18, 2021

現在,indigo,kinetic,melodic,noetic全てのテストが通っていますが偶然です.
特にnoeticのtravisでテスト制限時間を超過することがあります.
FYI, 手元のdockerでubuntu20.04, noeticの環境を作ってpr2eus-test.launchをテストすると,passする時もfailする時もどちらもあります.

@shmpwk shmpwk changed the title install euscollada from source to build pr2eus noetic fix jsk_pr2eus noetic travis Nov 18, 2021
@708yamaguchi
Copy link
Member

調査おつかれさまでした。

なので,修正案としては,
テスト制限時間を60sから増やす
defun pr2-read-joint-state-testのテスト内容を減らす?

テストを通すためにテスト内容を減らすのは本末転倒なので良くないです。
待てば確実にテストが通るのであれば、テストの制限時間を60sから増やすのが良いと思います。
<test>タグのtime-limitを120とか240にしてみてください。
http://wiki.ros.org/roslaunch/XML/test

また、そもそも何故noeticのテストに時間がかかるかも気になりますね(まだroseusがnoeticにリリースされていないですし、今の段階でそこまで調べる必要はないかもしれませんが)
euslispのbench関数を使えば各処理にかかる時間を調べられるので、テストプログラムのどこに時間をかかっているかがわかります。

1.irteusgl$ (bench (make-coords))
;; time -> 3.100000e-05[s]
#<coordinates #X5596dc85a788  0.0 0.0 0.0 / 0.0 0.0 0.0>

のように使います。

@shmpwk
Copy link
Contributor Author

shmpwk commented Nov 19, 2021

アドバイスありがとうございます.

テスト制限時間を120.0sに増やそうと思いましたが,今日は手元のPCに負荷をかけてもテストは落ちませんでした,,,

処理制限時間を超過することがあった,pr2-read-state-test.lの各関数の処理時間を見てみました.
関数化されていない,最初のファイルloadingなどをまとめてdefun init () としました.
手元のdockerでの結果は次の通りです.全ての実行実行時間を合わせても60.0sを超えませんでした.
特に処理に時間を要するところもありませんでした.

$ (bench (init))
$ (bench (pr2-read-joint-state-test))
$ (bench (pr2-read-finger-pressure-test))
$ (bench (pr2-read-odom-test))
$ (bench (pr2-calc-worldcoords-test))
$ (bench (pr2-camera-coords-test))
;; time -> 20.3833[s]
;; time -> 0.011394[s]
;; time -> 0.000604[s]
;; time -> 0.00232[s]
;; time -> 2.700000e-05[s]
;; time -> 0.003363[s]

@708yamaguchi
Copy link
Member

テストをするとたまに60秒を超過することがあるけど、テストじゃないときは60秒どころか20秒程度しかかからない、ということでしょうか。

不思議な挙動な気がしますが、手元のPCとGitHub Actionで動くPCは違うので、とりあえずtime-limit 240などとしてGitHub Actionのテスト結果を見てみるのがいいと思います。

@shmpwk
Copy link
Contributor Author

shmpwk commented Nov 19, 2021

テストが通ったのでひとまず一旦おいておきます.またnoeticのmergeをする機会がありましたらよろしくお願いします.

@k-okada
Copy link
Member

k-okada commented Aug 27, 2022

closed due to #479

@k-okada k-okada closed this Aug 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants