Closed kevmoo closed 7 years ago
cc @johnmccutchan @turnidge
I'm going to look into this further, but at first glance it seems like a regression in the VM service protocol—it shouldn't have any backwards-incompatible changes without bumping the major version, and I don't think the client relies on any behavior that's described as subject to change.
The error_test
issues seem to be caused by the getIsolate
RPC returning an isolate without an error set when the isolate was started with "pause on exit" set and it closed because of an error. Here's an inspector view of the isolate JSON; note that the pauseEvent
is PauseExit
, but there's no error
field.
The client_test
failure seems to be caused by an isolate being started in an unpaused state despite --pause-isolates-on-start
being passed. See the Isolate JSON in which the pause event is "None".
The isolate_test
failure is a bug in 71ca7155e237166c99b1540de98c866a0af37b54, and the instance_test
failure is caused by a change in the core libraries rather than the protocol. Neither of those are VM service client issues, and they can all be fixed locally.
I've filed dart-lang/sdk#26203 and dart-lang/sdk#26204 to track the VM service issues; I'm going to use this issue to track the issues in this package.
Still seeing three failures w/ bleeding edge SDK at https://github.com/dart-lang/sdk/commit/4ab1219bf93a33a2a3d4803e053ccd70ce190371
00:01 +3 -1: test/client_test.dart: returns the VM service version
Expected: <0>
Actual: <4>
package:test expect
test/client_test.dart 23:5 main.<fn>.<async>
dart:async _SyncCompleter.complete
package:vm_service_client/vm_service_client.dart 215:7 VMServiceClient.getVersion.<async>
dart:async _SyncCompleter.complete
package:json_rpc_2/src/client.dart 178:25 Client._handleSingleResponse
package:json_rpc_2/src/client.dart 168:7 Client._handleResponse
dart:async _StreamController.add
package:json_rpc_2/src/peer.dart 117:36 Peer.listen.<fn>
===== asynchronous gap ===========================
dart:async _Completer.completeError
test/client_test.dart 24:4 main.<fn>.<async>
dart:async _SyncCompleter.complete
package:vm_service_client/vm_service_client.dart 215:7 VMServiceClient.getVersion.<async>
dart:async _SyncCompleter.complete
package:json_rpc_2/src/client.dart 178:25 Client._handleSingleResponse
package:json_rpc_2/src/client.dart 168:7 Client._handleResponse
dart:async _StreamController.add
package:json_rpc_2/src/peer.dart 117:36 Peer.listen.<fn>
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
test/client_test.dart main.<fn>
00:02 +20 -2: test/error_test.dart: for a sync error includes error metadata
The null object does not have a getter 'kind'.
NoSuchMethodError: method not found: 'kind'
Receiver: null
Arguments: []
dart:core Object.noSuchMethod
test/error_test.dart 56:20 main.<fn>.<fn>.<async>
===== asynchronous gap ===========================
dart:async _Completer.completeError
test/error_test.dart 62:6 main.<fn>.<fn>.<async>
===== asynchronous gap ===========================
dart:async Future.Future.microtask
test/error_test.dart main.<fn>.<fn>
00:02 +22 -3: test/error_test.dart: for a sync error parses the stack trace
The null object does not have a method 'getTrace'.
NoSuchMethodError: method not found: 'getTrace'
Receiver: null
Arguments: []
dart:core Object.noSuchMethod
test/error_test.dart 65:31 main.<fn>.<fn>.<async>
===== asynchronous gap ===========================
dart:async _Completer.completeError
test/error_test.dart 67:6 main.<fn>.<fn>.<async>
===== asynchronous gap ===========================
dart:async Future.Future.microtask
test/error_test.dart main.<fn>.<fn>
It looks like dart-lang/sdk#26203 isn't really fixed yet, but the intended fix did increase the VM service version.
I believe this is fixed now.