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

Robustify mission upload/download (take 2) #8794

Merged
merged 3 commits into from
Feb 1, 2018

Conversation

julianoes
Copy link
Contributor

@julianoes julianoes commented Feb 1, 2018

This is a follow up to #8750.

This fixes #8791.

For more info and to review, please check the commit messages.

Tested with QGC release, and QGC from mavlink/qgroundcontrol#6059, and DroneCore mavlink/MAVSDK#230.

The mission items need to be requested one by one by a ground station.
This is a "pull" protocol and we should not retry to "push" the mission
items down.

If we do this we can trigger the situation where the autopilot keeps
retrying and the ground station does not time out because it keeps
receiving items (even though the items are the wrong ones).
When actively re-requesting lost mission items, we can be more agressive
and therefore lose less time when a mission item is lost on the way.
@LorenzMeier
Copy link
Member

Jenkins failed.

@julianoes
Copy link
Contributor Author

julianoes commented Feb 1, 2018

@LorenzMeier not sure how that is related:

[ WARN] [1517492710.985566490]: init: message from slugs, MSG-ID 170 ignorterminate called after throwing an instance of 'std::bad_weak_ptr'
  what():  bad_weak_ptr
ed! Table has different entry.
[ WARN] [1517492710.985598087]: init: message from slugs, MSG-ID 172 ignored! Table has different entry.
[ WARN] [1517492710.985609439]: init: message from slugs, MSG-ID 173 ignored! Table has different entry.
[ WARN] [1517492710.985620335]: init: message from slugs, MSG-ID 176 ignored! Table has different entry.
[ WARN] [1517492710.985631119]: init: message from slugs, MSG-ID 177 ignored! Table has different entry.
[ WARN] [1517492710.985643974]: init: message from slugs, MSG-ID 179 ignored! Table has different entry.
[ WARN] [1517492710.985655042]: init: message from slugs, MSG-ID 180 ignored! Table has different entry.
[ WARN] [1517492710.985665942]: init: message from slugs, MSG-ID 181 ignored! Table has different entry.
[ WARN] [1517492710.985676781]: init: message from slugs, MSG-ID 184 ignored! Table has different entry.
[ WARN] [1517492710.985687580]: init: message from slugs, MSG-ID 185 ignored! Table has different entry.
[ WARN] [1517492710.985698366]: init: message from slugs, MSG-ID 186 ignored! Table has different entry.
[ WARN] [1517492710.985709070]: init: message from slugs, MSG-ID 188 ignored! Table has different entry.
[ WARN] [1517492710.985723523]: init: message from slugs, MSG-ID 191 ignored! Table has different entry.
[ WARN] [1517492710.985734438]: init: message from slugs, MSG-ID 192 ignored! Table has different entry.
[ WARN] [1517492710.985745224]: init: message from slugs, MSG-ID 193 ignored! Table has different entry.
[ WARN] [1517492710.985756104]: init: message from slugs, MSG-ID 194 ignored! Table has different entry.
[ INFO] [1517492710.986350547]: udp0: Bind address: 0.0.0.0:14540
[ INFO] [1517492710.986475207]: udp0: Remote address: 127.0.0.1:14557
[ INFO] [1517492710.987011554]: GCS bridge disabled
the rosdep view is empty: call 'sudo rosdep init' and 'rosdep update'
Traceback (most recent call last):
  File "/tmp/jenkins/workspace/ix-mission-upload-download2-I6ZUCLJUM66ZC7KUHRVVEVB3WE6UJYLZBQBPLYJLPCTGIX3TJEEA/integrationtests/python_src/px4_it/mavros/mission_test.py", line 50, in <module>
    import px4tools
  File "/usr/local/lib/python2.7/dist-packages/px4tools/__init__.py", line 4, in <module>
    from .pandas_monkeypatch import *
  File "/usr/local/lib/python2.7/dist-packages/px4tools/pandas_monkeypatch.py", line 1, in <module>
    import pandas
  File "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", line 42, in <module>
    from pandas.core.api import *
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/api.py", line 25, in <module>
    from pandas.core.panel4d import Panel4D
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/panel4d.py", line 43, in <module>
    """))
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/panelnd.py", line 126, in create_nd_panel_factory
    setattr(klass, f, func)
KeyboardInterrupt

Exiting...
pxh> Shutting down
Restoring terminal
SpawnModel script started
[INFO] [1517492711.511408, 0.000000]: Loading model XML from file
[INFO] [1517492711.511837, 0.000000]: Waiting for service /gazebo/spawn_sdf_model
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/gazebo_ros/spawn_model", line 313, in <module>
    sm.callSpawnService()
  File "/opt/ros/kinetic/lib/gazebo_ros/spawn_model", line 274, in callSpawnService
    initial_pose, self.reference_frame, self.gazebo_namespace)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/gazebo_ros/gazebo_interface.py", line 16, in spawn_sdf_model_client
    rospy.wait_for_service(gazebo_namespace+'/spawn_sdf_model')
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 159, in wait_for_service
    raise ROSInterruptException("rospy shutdown")
rospy.exceptions.ROSInterruptException: rospy shutdown
... logging to /tmp/jenkins/workspace/ix-mission-upload-download2-I6ZUCLJUM66ZC7KUHRVVEVB3WE6UJYLZBQBPLYJLPCTGIX3TJEEA/.ros/log/rostest-5224ab1a26ec-8368.log
[ROSUNIT] Outputting test results to /tmp/jenkins/workspace/ix-mission-upload-download2-I6ZUCLJUM66ZC7KUHRVVEVB3WE6UJYLZBQBPLYJLPCTGIX3TJEEA/.ros/test_results/px4/rostest-test_mavros_posix_test_mission.xml
[Testcase: testmission_test] ... FAILURE!
FAILURE: test [mission_test] did not generate test results
  File "/usr/lib/python2.7/unittest/case.py", line 329, in run
    testMethod()
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rostest/runner.py", line 164, in fn
    self.assert_(os.path.isfile(test_file), "test [%s] did not generate test results"%test_name)
  File "/usr/lib/python2.7/unittest/case.py", line 422, in assertTrue
    raise self.failureException(msg)
--------------------------------------------------------------------------------

[ROSTEST]-----------------------------------------------------------------------

[testmission_test][failed]

SUMMARY
 * RESULT: FAIL
 * TESTS: 0
 * ERRORS: 0
 * FAILURES: 1

@dagar
Copy link
Member

dagar commented Feb 1, 2018

It might be one of the remaining intermittent failure cases. Keep track of the failure link and I'll restart the job.

http://ci.px4.io:8080/blue/organizations/jenkins/Firmware/detail/fix-mission-upload-download2/1/pipeline

Update: this one is new, there's not even a ulg.

@dagar dagar merged commit 9c86cda into master Feb 1, 2018
@dagar dagar deleted the fix-mission-upload-download2 branch February 1, 2018 21:59
Stifael pushed a commit to Stifael/Firmware that referenced this pull request Apr 3, 2018
* Revert "mavlink_mission: don't retransmit automatically"

This reverts commit 4e008fe.

* mavlink_mission: don't retry to send mission item

The mission items need to be requested one by one by a ground station.
This is a "pull" protocol and we should not retry to "push" the mission
items down.

If we do this we can trigger the situation where the autopilot keeps
retrying and the ground station does not time out because it keeps
receiving items (even though the items are the wrong ones).

* mavlink_mission: reduce retry timeout

When actively re-requesting lost mission items, we can be more agressive
and therefore lose less time when a mission item is lost on the way.
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.

Reinstate mission pull re-tries in MAVLink app
3 participants