canonical / dbus.dart

Native Dart client library to use DBus.
https://pub.dev/packages/dbus
Mozilla Public License 2.0
93 stars 33 forks source link

RawSocket changes cause fwupd.dart tests hang in the CI #323

Closed jpnurmi closed 2 years ago

jpnurmi commented 2 years ago

Not sure if the issue is here or in fwupd.dart but the latest main makes fwupd.dart tests hang in the CI. The first "bad" commit is https://github.com/canonical/dbus.dart/commit/fb25b89e72670150d5b6203ac2beaf67173b3ff6.

Steps:

Result: it hangs forever at the end of the tests.

jpnurmi@xps-13-9310:~/Projects/canonical/fwupd.dart (main)$ act
[Dart/build] 🚀  Start image=dart:stable
[Dart/build]   🐳  docker pull image=dart:stable platform= username= forcePull=false
[Dart/build]   🐳  docker create image=dart:stable platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[Dart/build]   🐳  docker run image=dart:stable platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[Dart/build]   🐳  docker exec cmd=[mkdir -m 0777 -p /var/run/act] user=root workdir=
[Dart/build]   🐳  docker cp src=/home/jpnurmi/Projects/canonical/fwupd.dart/. dst=/home/jpnurmi/Projects/canonical/fwupd.dart
[Dart/build]   🐳  docker exec cmd=[mkdir -p /home/jpnurmi/Projects/canonical/fwupd.dart] user= workdir=
[Dart/build] ⭐  Run actions/checkout@v2
[Dart/build]   ✅  Success - actions/checkout@v2
[Dart/build] ⭐  Run Print Dart SDK version
[Dart/build]   🐳  docker exec cmd=[sh -e -c /home/jpnurmi/Projects/canonical/fwupd.dart/workflow/1] user= workdir=
| Dart SDK version: 2.15.1 (stable) (Tue Dec 14 13:32:21 2021 +0100) on "linux_x64"
[Dart/build]   ✅  Success - Print Dart SDK version
[Dart/build] ⭐  Run Install dependencies
[Dart/build]   🐳  docker exec cmd=[sh -e -c /home/jpnurmi/Projects/canonical/fwupd.dart/workflow/2] user= workdir=
| Resolving dependencies... (1.3s)
| + _fe_analyzer_shared 34.0.0
| + analyzer 3.2.0
| + args 2.3.0
| + async 2.8.2
| + boolean_selector 2.1.0
| + charcode 1.3.1
| + cli_util 0.3.5
| + collection 1.15.0
| + convert 3.0.1
| + coverage 1.1.0
| + crypto 3.0.1
| + ffi 1.1.2
| + file 6.1.2
| + frontend_server_client 2.1.2
| + glob 2.0.2
| + http_multi_server 3.0.1
| + http_parser 4.0.0
| + io 1.0.3
| + js 0.6.3 (0.6.4 available)
| + logging 1.0.2
| + matcher 0.12.11
| + meta 1.7.0
| + mime 1.0.1
| + node_preamble 2.0.1
| + package_config 2.0.2
| + path 1.8.1
| + pedantic 1.11.1 (discontinued replaced by lints)
| + petitparser 4.4.0
| + pool 1.5.0
| + pub_semver 2.1.0
| + shelf 1.2.0
| + shelf_packages_handler 3.0.0
| + shelf_static 1.1.0
| + shelf_web_socket 1.0.1
| + source_map_stack_trace 2.1.0
| + source_maps 0.10.10
| + source_span 1.8.2
| + stack_trace 1.10.0
| + stream_channel 2.1.0
| + string_scanner 1.1.0
| + term_glyph 1.2.0
| + test 1.20.1
| + test_api 0.4.9
| + test_core 0.4.11
| + test_cov 1.0.1
| + typed_data 1.3.0
| + vm_service 8.1.0
| + watcher 1.0.1
| + web_socket_channel 2.1.0
| + webkit_inspection_protocol 1.0.0
| + xml 5.3.1
| + yaml 3.1.0
| Warning: You are using these overridden dependencies:
| ! dbus 0.6.8 from git https://github.com/canonical/dbus.dart.git at fb25b8
| Downloading test_cov 1.0.1...
| Downloading meta 1.7.0...
| Downloading collection 1.15.0...
| Downloading ffi 1.1.2...
| Downloading path 1.8.1...
| Downloading args 2.3.0...
| Downloading coverage 1.1.0...
| Downloading vm_service 8.1.0...
| Downloading stack_trace 1.10.0...
| Downloading source_maps 0.10.10...
| Downloading package_config 2.0.2...
| Downloading logging 1.0.2...
| Downloading source_span 1.8.2...
| Downloading term_glyph 1.2.0...
| Downloading xml 5.3.1...
| Downloading petitparser 4.4.0...
| Downloading pedantic 1.11.1...
| Downloading test 1.20.1...
| Downloading webkit_inspection_protocol 1.0.0...
| Downloading typed_data 1.3.0...
| Downloading test_core 0.4.11...
| Downloading test_api 0.4.9...
| Downloading stream_channel 2.1.0...
| Downloading shelf_packages_handler 3.0.0...
| Downloading pool 1.5.0...
| Downloading boolean_selector 2.1.0...
| Downloading source_map_stack_trace 2.1.0...
| Downloading matcher 0.12.11...
| Downloading string_scanner 1.1.0...
| Downloading yaml 3.1.0...
| Downloading web_socket_channel 2.1.0...
| Downloading shelf_web_socket 1.0.1...
| Downloading shelf_static 1.1.0...
| Downloading http_parser 4.0.0...
| Downloading node_preamble 2.0.1...
| Downloading js 0.6.3...
| Downloading http_multi_server 3.0.1...
| Downloading crypto 3.0.1...
| Downloading mime 1.0.1...
| Downloading convert 3.0.1...
| Downloading io 1.0.3...
| Downloading glob 2.0.2...
| Downloading frontend_server_client 2.1.2...
| Downloading charcode 1.3.1...
| Downloading shelf 1.2.0...
| Downloading file 6.1.2...
| Downloading async 2.8.2...
| Downloading analyzer 3.2.0...
| Downloading _fe_analyzer_shared 34.0.0...
| Downloading watcher 1.0.1...
| Downloading pub_semver 2.1.0...
| Downloading cli_util 0.3.5...
| Changed 53 dependencies!
[Dart/build]   ✅  Success - Install dependencies
[Dart/build] ⭐  Run Verify formatting
[Dart/build]   🐳  docker exec cmd=[sh -e -c /home/jpnurmi/Projects/canonical/fwupd.dart/workflow/3] user= workdir=
| Formatted 5 files (0 changed) in 0.38 seconds.
[Dart/build]   ✅  Success - Verify formatting
[Dart/build] ⭐  Run Analyze project source
[Dart/build]   🐳  docker exec cmd=[sh -e -c /home/jpnurmi/Projects/canonical/fwupd.dart/workflow/4] user= workdir=
| Analyzing ....                         4.7s
| No issues found!
[Dart/build]   ✅  Success - Analyze project source
[Dart/build] ⭐  Run Run regression tests
[Dart/build]   🐳  docker exec cmd=[sh -e -c /home/jpnurmi/Projects/canonical/fwupd.dart/workflow/5] user= workdir=
| Found 1 test files.
| Generated test-all script in test/.test_cov.dart.
| Observatory listening on http://127.0.0.1:8181/fJsZUAqHnAc=/
| The Dart DevTools debugger and profiler is available at: http://127.0.0.1:8181/fJsZUAqHnAc=/devtools/#/?uri=ws%3A%2F%2F127.0.0.1%3A8181%2FfJsZUAqHnAc%3D%2Fws
| 00:00 +0: daemon version
| 
| 00:00 +1: daemon host details
| 
| 00:00 +2: daemon interactive
| 
| 00:00 +3: daemon tainted
| 
| 00:00 +4: daemon status
| 
| 00:00 +5: device signals
| 
| 00:00 +6: get devices
| 
| 00:00 +7: get plugins
| 
| 00:00 +8: get releases
| 
| 00:00 +9: activate device
| 
| 00:00 +10: clear device results
| 
| 00:00 +11: unlock device
| 
| 00:00 +12: verify device
| 
| 00:00 +13: verify device update
| 
| 00:00 +14: get remotes
| 
| 00:00 +15: data classes
| 
| 00:00 +16: All tests passed!
| 
### hangs here forever ###

With the parent commit https://github.com/canonical/dbus.dart/commit/ccc33ee8e6f92d068fcf7c3fec3b3fd962bd9f31 (v0.6.8) it doesn't hang:

...
| 00:00 +16: All tests passed!
| 
| Coverage report saved to "coverage/lcov.info".
[Dart/build]   ✅  Success - Run regression tests
...
robert-ancell commented 2 years ago

This is due to the fwupd tests not closing the DBusClient. I've fixed dbus.dart to match the existing behaviour though.