• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mavlink / MAVSDK
37%
main: 48%

Build:
Build:
LAST BUILD BRANCH: v3.11.0
DEFAULT BRANCH: main
Repo Added 08 Oct 2017 10:24PM UTC
Files 246
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH refs/tags/v2.12.8
branch: refs/tags/v2.12.8
CHANGE BRANCH
x
Reset
  • refs/tags/v2.12.8
  • 133-race-in-grpc
  • 137-fix-camera-photo-interval
  • 212-cross-compile-android
  • 238-refactor-dronecore-server
  • 238-update-action-proto
  • 267-update-telemetry-proto
  • 268-update-mission-proto
  • 269-update-core-proto
  • 294-ios-backend-framework
  • 326-add-support-for-COMMAND_INT
  • 333-telemetry-health
  • 334-finish-camera-backend
  • 350-mission-backend
  • 758-fix-shared-libs-build
  • 814-MSVC-mavsdk_server_bin
  • 816-version-generated-files
  • 836-protobuf-fails-rpi
  • HEAD
  • MavlinkPath
  • add-action-features
  • add-backend-packaging-scripts
  • add-calibration
  • add-camera
  • add-camera-description
  • add-camera-euler-angles
  • add-camera-proto
  • add-configuration
  • add-euler-angle-in-captureinfo
  • add-example-multiple-vehicles
  • add-fake-connection
  • add-flight-id
  • add-geofence
  • add-gimbal
  • add-gimbal-calibration
  • add-gitlab-ci
  • add-ignore
  • add-jenkins-again
  • add-lock
  • add-log-file-download
  • add-mavlink-backdoor
  • add-mavlink-statustexts
  • add-mission-delay
  • add-mission-raw
  • add-mock-time
  • add-orbit
  • add-plugin-warnings
  • add-px4-tests
  • add-raw-server-mission-types
  • add-recording-time
  • add-recording-time-and-flight-id
  • add-release-script
  • add-rpath
  • add-rtl-after-mission
  • add-rtl-return-alt
  • add-set-rtl-after-mission
  • add-set-rtl-altitude
  • add-setting-option-description
  • add-sitl-ci
  • add-telemetry-features
  • add-thread-pool
  • add-vendor-product
  • add-version
  • add-waypoint-delay
  • add-ycm-conf
  • add_camera
  • alpine_dcsdk_docker
  • android-use-boringssl
  • appveyor-add-rest-of-the-examples
  • appveyor-move
  • appveyor-multiple-cores
  • arduplane-flight-modes
  • astyle-3-1
  • autopilot-name
  • backend-with-any-connection
  • blahtest
  • bring-pybind-back
  • build-backend-in-ci
  • build-json11-static
  • build-tinyxml-statically
  • build_system_minor_cleanup
  • bump-backend-0.2.0
  • bump-backend-0.2.2
  • bump-backend-0.2.4
  • bump-backend-framework-0.0.3
  • bump-backend-framework-0.1.0
  • camera-improvements
  • camera-notify-after-subscribe
  • camera-params-workaround
  • camera-subscriptions
  • change-discovery
  • change-style
  • clean-deps
  • clean-pimpl
  • cleanup
  • clear-old-mission-items
  • cmake-remove-manylinux
  • connection_docs
  • core_improvements
  • debug-hack
  • develop
  • doc-fixes
  • doc_globals
  • doc_updates
  • download-mission
  • drop-armeabi
  • dynamic-plugins
  • embed-camera-defs
  • enable-and-fix-geofence-server
  • extract-cpp-rsc
  • fake-time-test
  • feature-configure-mav-type-on-server-component
  • feature/public-set-armed
  • feature/windows_timeout_reconnect
  • finish-telemetry-features
  • fix-action-goto-doc
  • fix-additional-includes
  • fix-addtional-includes
  • fix-addtional-includes-test
  • fix-android-build
  • fix-android-json11
  • fix-android-tinyxml2-install
  • fix-apple-build
  • fix-armed-flickering
  • fix-arming
  • fix-astyle-version
  • fix-autopilot-type
  • fix-backend
  • fix-backend-build
  • fix-bad-param-cast
  • fix-bashism
  • fix-build
  • fix-camera-absolute-attitude
  • fix-camera-api
  • fix-camera-locks
  • fix-camera-option-description
  • fix-camera-params
  • fix-camera-setting-info
  • fix-camera-settings
  • fix-camera-settings-descriptions-test
  • fix-camera-status-crash
  • fix-camera-threadsafety
  • fix-clang-format
  • fix-clang-format-align
  • fix-clean
  • fix-cmake
  • fix-cmake-config
  • fix-command-lockup
  • fix-comments
  • fix-connection-comments
  • fix-cpp_rsc-install
  • fix-cross-compiling
  • fix-deb
  • fix-deployment
  • fix-discovery
  • fix-dockcross-builds
  • fix-docker-after-rename
  • fix-docker-build
  • fix-docs-generation
  • fix-doxygen-code-snippets
  • fix-doxygen-warnings
  • fix-dronecore-pimpl
  • fix-embedding
  • fix-examples-device-tester
  • fix-exe-name
  • fix-exernal-example
  • fix-external
  • fix-findtinyxml2
  • fix-follow-me-boost-dep
  • fix-framework-release-scripts
  • fix-gcc9-deprecated-copy
  • fix-generate-doc
  • fix-gimbal-comment
  • fix-health-position
  • fix-hil-set-mode
  • fix-hil-state
  • fix-hitl-calibration
  • fix-hover-test
  • fix-ignore-qgc
  • fix-info-plist
  • fix-install-path
  • fix-integration-test
  • fix-ios
  • fix-ios-build
  • fix-jenkins-badge
  • fix-jenkins-ci
  • fix-jenkins-clang-format
  • fix-json-null
  • fix-kill
  • fix-landed-state
  • fix-libevents-build
  • fix-locked-queue
  • fix-lockup-again
  • fix-loiter-before-arm
  • fix-long-param-names
  • fix-lossy-transfer
  • fix-mac-ci
  • fix-mac-install
  • fix-mac-linking
  • fix-mac-warning
  • fix-make-clean
  • fix-mavlink-warning
  • fix-mavsdk-server-framework
  • fix-message-handler-clear
  • fix-minor-naming-issues
  • fix-mission-callbacks
  • fix-mission-camera-action
  • fix-mission-double-call
  • fix-mission-download
  • fix-mission-example
  • fix-mission-grpc-crash
  • fix-mission-item-comparison
  • fix-mission-lockup
  • fix-mission-origin
  • fix-mission-plan-path
  • fix-mission-progress-crash
  • fix-mission-progress-tests
  • fix-mission-progress-total
  • fix-mission-protocol
  • fix-mission-reset
  • fix-mission-updates-again
  • fix-mission-upload-cancel-crash
  • fix-mission-upload-int-mode
  • fix-msg-rate
  • fix-msvc-dependent-name
  • fix-notify-current-settings
  • fix-offboard-ned-spelling
  • fix-online-unit-tests
  • fix-openssl-headers
  • fix-openssl-headers2
  • fix-passthrough-integration-est
  • fix-passthrough-reset
  • fix-passthrough-unsub
  • fix-plugin-headers
  • fix-plugin-init
  • fix-plugin-names
  • fix-pointer-not-aligned-ios
  • fix-protobuf-git-tag
  • fix-race-in-camera
  • fix-rc-status
  • fix-readme
  • fix-readme-urls
  • fix-reconnect-again
  • fix-remove-backend-doesnot-unittests
  • fix-reset-mission-from-deinit
  • fix-result-str
  • fix-run-docker
  • fix-serial-cpu
  • fix-serial-disconnect
  • fix-settings-notification-again
  • fix-sitl-run-args
  • fix-slowest-test
  • fix-style
  • fix-sync-commands
  • fix-takeoff-example
  • fix-tcp-busyloop
  • fix-telemetry-param
  • fix-test-names
  • fix-test-sleep
  • fix-third-parties
  • fix-timeout-handler
  • fix-tinyxml2
  • fix-travis
  • fix-unregistering
  • fix-unused-variable
  • fix-various-camera-tests
  • fix-version-str
  • fix-vtol-example
  • fix-warning
  • fix-warning-telemetry
  • fix-werror
  • fix-win-example-linking
  • fix-win-exe-name
  • fix-ycm-conf
  • fix-zlib-patch
  • fix_gps
  • fix_grpc_build
  • fix_tcp_client_reconnect
  • fixing-tag-extraction
  • fixnotesinsource
  • follow_me
  • follow_me_example
  • generate-changelog
  • grpc
  • grpc-fixes
  • grpc-multiple-device
  • grpc2
  • hamishwillee-info_iscomplete
  • hamishwillee-readme
  • header-cleanup
  • hotfix-android-build
  • implement-camera-backend
  • implement-mission-backend
  • import-qgc-plan-mission
  • import-qgc-plan-mission-rebase
  • improve-debug-printfs
  • improve-fly-mission
  • improve-follow-me
  • improve-gendocs-sh
  • improve-integration-tests
  • improve-long-param-methods
  • improve-offboard
  • improve-offboard-rate-control
  • improve-telemetry
  • improve-travis-deployment
  • install-backend-bin
  • integration-tests-exe
  • ios-travis-faster
  • jonas/fix-dockcross-build
  • lazy-init
  • mac-static
  • macos-rpath-issue
  • macos-serial
  • main
  • master
  • mavlink-printfs
  • message-debugging
  • message-debugging-on
  • mission-finished
  • mission-pause
  • mission-paused
  • mission-progress
  • move-action-result
  • move-to-cpp17
  • msvc-curl-linking
  • multi-component-handling
  • no-color-for-ios
  • no-werror
  • nostdc++fs
  • notify-backend-started
  • parameterize-tests
  • patch-1
  • patch-2
  • patch-grpc
  • pr
  • pr-557-follow-up
  • pr-add-Mavlink-Wind
  • pr-add-events-example
  • pr-add-fuzzing
  • pr-add-info-back-in
  • pr-add-libmavlike
  • pr-add-logo
  • pr-add-reconnection-systemtests
  • pr-add-rpm-deb
  • pr-android-temp-dir
  • pr-bump-ci
  • pr-c-api
  • pr-camera-deadlocks
  • pr-camera-range-params
  • pr-camera-server-deadlock
  • pr-camera-server-improvements
  • pr-ci-add-debian-x64
  • pr-ci-docker-overhaul
  • pr-cleanup-docker
  • pr-cmake_bump
  • pr-connection-error-cleanup
  • pr-curl-http-only
  • pr-docker-dont-always-rebuild
  • pr-docker_updates
  • pr-docs-pass
  • pr-docs-pass-2
  • pr-dont-remove-udpout
  • pr-doxygen
  • pr-events-fix
  • pr-fix-20.04
  • pr-fix-build-without-curl
  • pr-fix-ci-cc-vars
  • pr-fix-cmake-openssl
  • pr-fix-double-unlock
  • pr-fix-filtering
  • pr-fix-format-warning
  • pr-fix-grpc-windows
  • pr-fix-http-loader-regression
  • pr-fix-import
  • pr-fix-invalid-argument
  • pr-fix-lib-generation
  • pr-fix-list-it
  • pr-fix-mission-raw-current
  • pr-fix-mutex-abort
  • pr-fix-packages
  • pr-fix-release
  • pr-fix-request-message-compid
  • pr-fix-sigbus
  • pr-fix-windows
  • pr-fixup-badge
  • pr-fixup-mission-finished
  • pr-fixup-start-stop-example
  • pr-flush
  • pr-flush-2
  • pr-forward-unknown-messages
  • pr-ftp-safety-fixes
  • pr-get-all-param-fixes
  • pr-gimbal-no-device-information-fallback
  • pr-gripper-with-autopilot
  • pr-imu-units
  • pr-int64-json
  • pr-invalid-it
  • pr-jenkins
  • pr-logfiles-fixup
  • pr-macos-systemtest-fixes
  • pr-mavlink-direct-docs
  • pr-mavlinkdirect-tsan
  • pr-mavsdk-server-usage
  • pr-mission-planner-import
  • pr-more-windows-fixes
  • pr-multiple-cameras
  • pr-mutex-lock-2
  • pr-noisy-commands
  • pr-null-not-nan
  • pr-param-error
  • pr-param-example
  • pr-param-fixes
  • pr-proto-comment
  • pr-raw-bytes
  • pr-raw-connection
  • pr-reboot
  • pr-remove-hunter
  • pr-remove-safequeue
  • pr-remove_home_position_request
  • pr-request-message-noise
  • pr-revert-yaw
  • pr-segfault-fixes
  • pr-server-example
  • pr-shared-fixup
  • pr-sonar-cpp-version
  • pr-style-script
  • pr-switch-to-rapidxml
  • pr-threading
  • pr-tsan
  • pr-udp-drop-remotes
  • pr-unit-tests-fixup
  • pr-update-Battery-TimeRemain&Function
  • pr-update-proto
  • pr-update-proto-1.2.2
  • pr-use-mission-current-extended
  • pr-user-callbacks
  • pr-v2-get-all-param-fixes
  • pr-v2-get-param-regression
  • pr-v2-https-workaround
  • pr-wait-camera-list
  • pr-win-mavsdk-server
  • pr-windows-fixes
  • pr-windows-nproc
  • pr-workaround-accel-calib
  • prefer-reference-over-ptr
  • print-version
  • propagate-cmake-args
  • publish-windows
  • refactor-connection-result
  • refactor-params
  • refs/heads/main
  • refs/tags/v-test-10
  • refs/tags/v-test-upload-2
  • refs/tags/v-test-upload-3
  • refs/tags/v0.25.0
  • refs/tags/v0.26.0
  • refs/tags/v0.27.0
  • refs/tags/v0.28.0
  • refs/tags/v0.29.0
  • refs/tags/v0.30.0
  • refs/tags/v0.30.1
  • refs/tags/v0.31.0
  • refs/tags/v0.32.0
  • refs/tags/v0.32.1
  • refs/tags/v0.33.0
  • refs/tags/v0.33.1
  • refs/tags/v0.34.0
  • refs/tags/v0.35.0
  • refs/tags/v0.35.1
  • refs/tags/v0.36.0
  • refs/tags/v0.37.0
  • refs/tags/v0.38.0
  • refs/tags/v0.38.1
  • refs/tags/v0.38.2
  • refs/tags/v0.39.0
  • refs/tags/v0.39.1
  • refs/tags/v0.40.0
  • refs/tags/v0.41.0
  • refs/tags/v0.42.0
  • refs/tags/v0.43.0
  • refs/tags/v0.44.0
  • refs/tags/v0.45.0
  • refs/tags/v0.46.0
  • refs/tags/v0.46.1
  • refs/tags/v0.47.0
  • refs/tags/v0.47.1
  • refs/tags/v0.47.2
  • refs/tags/v0.47.3
  • refs/tags/v0.47.4
  • refs/tags/v0.47.5
  • refs/tags/v0.48.0
  • refs/tags/v0.49.0
  • refs/tags/v0.50.0
  • refs/tags/v0.50.1
  • refs/tags/v1.0.0
  • refs/tags/v1.0.1
  • refs/tags/v1.0.2
  • refs/tags/v1.0.3
  • refs/tags/v1.0.4
  • refs/tags/v1.0.5
  • refs/tags/v1.0.6
  • refs/tags/v1.0.7
  • refs/tags/v1.0.8
  • refs/tags/v1.1.0
  • refs/tags/v1.2.0
  • refs/tags/v1.2.1
  • refs/tags/v1.3.0
  • refs/tags/v1.3.1
  • refs/tags/v1.4.0
  • refs/tags/v1.4.1
  • refs/tags/v1.4.10
  • refs/tags/v1.4.11
  • refs/tags/v1.4.12
  • refs/tags/v1.4.13
  • refs/tags/v1.4.14
  • refs/tags/v1.4.15
  • refs/tags/v1.4.16
  • refs/tags/v1.4.17
  • refs/tags/v1.4.18
  • refs/tags/v1.4.2
  • refs/tags/v1.4.3
  • refs/tags/v1.4.4
  • refs/tags/v1.4.5
  • refs/tags/v1.4.6
  • refs/tags/v1.4.7
  • refs/tags/v1.4.8
  • refs/tags/v1.4.9
  • refs/tags/v2.0.0
  • refs/tags/v2.0.1
  • refs/tags/v2.1.0
  • refs/tags/v2.10.0
  • refs/tags/v2.10.1
  • refs/tags/v2.10.2
  • refs/tags/v2.11.0
  • refs/tags/v2.12.0
  • refs/tags/v2.12.1
  • refs/tags/v2.12.10
  • refs/tags/v2.12.11
  • refs/tags/v2.12.12
  • refs/tags/v2.12.2
  • refs/tags/v2.12.3
  • refs/tags/v2.12.4
  • refs/tags/v2.12.5
  • refs/tags/v2.12.6
  • refs/tags/v2.12.7
  • refs/tags/v2.12.9
  • refs/tags/v2.13.0
  • refs/tags/v2.14.0
  • refs/tags/v2.14.1
  • refs/tags/v2.2.0
  • refs/tags/v2.3.0
  • refs/tags/v2.4.0
  • refs/tags/v2.4.1
  • refs/tags/v2.5.0
  • refs/tags/v2.5.1
  • refs/tags/v2.6.0
  • refs/tags/v2.7.0
  • refs/tags/v2.8.0
  • refs/tags/v2.8.1
  • refs/tags/v2.9.0
  • refs/tags/v2.9.1
  • register-on-discover-lists-connected-systems
  • release-deb
  • release-test-1
  • release-test-2
  • release-test-3
  • release-test-4
  • release-test-5
  • release-test-6
  • release-test-7
  • release-test-8
  • release-test-9
  • remove-boost-dependency
  • remove-debug-appveyor
  • remove-jenkins
  • remove-jenkins-badge
  • remove-lock
  • remove-obsolete-test-flags
  • remove-superfluous-params
  • remove-termios2
  • remove-tinyxml-cmake-patch
  • remove-udp-bridge-filter
  • rename
  • rename-backend
  • rename-backend-dir
  • rename-mavsdk
  • reorganize-deps
  • reorganize-grpc-server
  • reorganize-telemetry-structs
  • rpi-in-travis
  • run-tests-ci
  • set-gimbal-yaw-absolute
  • support-multiple-vehicle-on-udp-port
  • swap-json-dep
  • switch-to-clang-format
  • system-refactor
  • test-16
  • test-17
  • test-18
  • test-19
  • test-release-1
  • test-upload-4
  • test-upload-5
  • test-upload-6
  • tinyxml2BuildTestingFix
  • tlm-health
  • travis-ccache
  • try-clean-gtest-cmake
  • tune-plugin
  • update-camera-interface
  • update-cares
  • update-core
  • update-curl
  • update-dependencies
  • update-dockcross
  • update-fedora-docker
  • update-grpc-1.24
  • update-grpc-to-1-22-0
  • update-ios-tools
  • update-json11-commit
  • update-libressl-3.0.1
  • update-mavlink
  • update-name-in-readme
  • update-openssl
  • update-proto
  • update-proto-submodule
  • update-protos
  • update-qgc-plan-path
  • update-script-version
  • update-to-0.2.7
  • upstream3
  • use-prebuilt
  • v0.12.0
  • v0.13.0
  • v0.14.1
  • v0.15.0
  • v0.16.0
  • v0.17.0
  • v0.17.1
  • v0.18.0
  • v0.18.1
  • v0.18.2
  • v0.18.3
  • v0.19.0
  • v0.2.0
  • v0.20.0
  • v0.21.0
  • v0.21.1
  • v0.21.2
  • v0.21.3
  • v0.21.4
  • v0.22.0
  • v0.22.1
  • v0.23.0
  • v0.24.0
  • v0.3.0
  • v0.4.0
  • v0.5.0
  • v1.2.3-test-20
  • v1.2.3-test-21
  • v1.2.3-test-23
  • v1.2.3-test-24
  • v1.2.3-test-25
  • v1.2.3-test-26
  • v1.2.3-test-27
  • v1.2.3-test10
  • v1.2.3-test11
  • v1.2.3-test12
  • v1.2.3-test13
  • v1.2.3-test14
  • v1.2.3-test15
  • v2-curl-https-android-try-boringssl
  • v3.0.0
  • v3.1.0
  • v3.10.0
  • v3.10.1
  • v3.10.2
  • v3.11.0
  • v3.2.0
  • v3.3.0
  • v3.3.1
  • v3.3.2
  • v3.3.3
  • v3.3.4
  • v3.3.5
  • v3.4.0
  • v3.5.0
  • v3.6.0
  • v3.7.0
  • v3.7.1
  • v3.7.2
  • v3.8.0
  • v3.8.1
  • v3.9.0
  • vehicle-type
  • verify-multi-mission
  • version-backend-framework-on-s3
  • vio
  • vitepress_build
  • vtol-fixes
  • warn-mission-changes
  • windows-serial
  • workaround-compid
  • zachlowell/geofence_impl_bug_fix

03 Oct 2024 03:17AM UTC coverage: 37.37% (+0.002%) from 37.368%
11155262327

push

github

web-flow
core: prevent lockup on connection destruction (#2412)

When we destroy Mavsdk and clear the list of connections, we likely
end up in a deadlock.

What happens is that:
1. A connection wants to forward a message and is trying to acquire the
   connection mutex.
2. At the same time, the connection is being destroyed, so we are
   waiting for the connection receive thread to be joinable. While the
   connections are being destroyed, we have the connection mutex which
   is blocking 1.

The proposed solution is to:
1. Make it less likely by acquiring the connection mutex properly before
   checking _connections.size() and not for the individual connections.
2. Check the _should_exit flag before trying to acquire the mutex. I
   believe by the time the connections are being cleared, this flag is
   set, and hence the deadlock should not happen, fingers crossed.

5 of 13 new or added lines in 1 file covered. (38.46%)

3 existing lines in 1 file now uncovered.

11107 of 29722 relevant lines covered (37.37%)

255.2 hits per line

Relevant lines Covered
Build:
Build:
29722 RELEVANT LINES 11107 COVERED LINES
255.2 HITS PER LINE
Source Files on refs/tags/v2.12.8
  • Tree
  • List 248
  • Changed 62
  • Source Changed 0
  • Coverage Changed 37
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
11155262327 refs/tags/v2.12.8 core: prevent lockup on connection destruction (#2412) When we destroy Mavsdk and clear the list of connections, we likely end up in a deadlock. What happens is that: 1. A connection wants to forward a message and is trying to acquire the ... push 03 Oct 2024 03:37AM UTC web-flow github
37.37
See All Builds (7646)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc