Skip to content

An assert in a flutter app can hang the engine #7431

Closed

Description

@apwilson
16:23:15.442: I/flutter (25825): Another exception was thrown: The intrinsic dimension methods of the RenderFlex class returned values that violate the intrinsic protocol contract.
16:23:15.445: I/flutter (25825): Another exception was thrown: The intrinsic dimension methods of the RenderClipRRect class returned values that violate the intrinsic protocol contract.
16:23:15.447: I/flutter (25825): Another exception was thrown: The intrinsic dimension methods of the RenderFlex class returned values that violate the intrinsic protocol contract.
16:23:15.450: I/flutter (25825): Another exception was thrown: The intrinsic dimension methods of the RenderClipRRect class returned values that violate the intrinsic protocol contract.
16:23:15.452: I/flutter (25825): box RenderMetaData relayoutBoundary=up2 NEEDS-LAYOUT
16:23:15.461: I/flutter (25825): box RenderMetaData relayoutBoundary=up2
16:23:15.546: I/flutter (25825): Another exception was thrown: 'package:flutter/src/widgets/scroll_behavior.dart': Failed assertion: line 166: 'minScrollOffset <= maxScrollOffset' is not true.
16:23:15.548: I/flutter (25825): box RenderMetaData relayoutBoundary=up2 NEEDS-LAYOUT
RRequest to Dart VM Service timed out: _flutter.runInView({viewId: _flutterView/0xe0ff03b0, mainScript: /data/user/0/com.google.fuchsia.armadillo/cache/armadillonxiodu/lib/main.dart, packagesFile: /data/user/0/com.google.fuchsia.armadillo/cache/armadillonxiodu/.packages, assetDirectory: /data/user/0/com.google.fuchsia.armadillo/cache/armadillonxiodu/build/flx})
16:23:38.266: Performing full restart...                              /
Exception from flutter run: TimeoutException after 0:00:10.000000: Future not completed
dart:async                                          _Completer.completeError
package:flutter_tools/src/vmservice.dart 589        VM.invokeRpcRaw.<async>
===== asynchronous gap ===========================
dart:async                                          _asyncErrorWrapperHelper
package:flutter_tools/src/vmservice.dart            VM.invokeRpcRaw
package:flutter_tools/src/vmservice.dart 591        VM.invokeRpc.<async>
===== asynchronous gap ===========================
dart:async                                          Future.Future.microtask
package:flutter_tools/src/vmservice.dart            VM.invokeRpc
package:flutter_tools/src/vmservice.dart 659        VM.runInView
package:flutter_tools/src/vmservice.dart 943        FlutterView.runFromSource.<async>
===== asynchronous gap ===========================
dart:async                                          Future.Future.microtask
package:flutter_tools/src/vmservice.dart            FlutterView.runFromSource
package:flutter_tools/src/hot.dart 327              HotRunner._launchInView.<async>
===== asynchronous gap ===========================
dart:async                                          Future.Future.microtask
package:flutter_tools/src/hot.dart                  HotRunner._launchInView
package:flutter_tools/src/hot.dart 339              HotRunner._launchFromDevFS.<async>
===== asynchronous gap ===========================
dart:async                                          Future.Future.microtask
package:flutter_tools/src/hot.dart                  HotRunner._launchFromDevFS
package:flutter_tools/src/hot.dart 350              HotRunner._restartFromSources.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/hot.dart 298              HotRunner._updateDevFS.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/devfs.dart 457            DevFS.update.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/devfs.dart 196            ServiceProtocolDevFSOperations.writeSource.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/vmservice.dart 581        VM.invokeRpcRaw.<async>
dart:async                                          _SyncCompleter.complete
package:json_rpc_2/src/client.dart 174              Client._handleSingleResponse
package:json_rpc_2/src/client.dart 164              Client._handleResponse
dart:async                                          _StreamController.add
package:json_rpc_2/src/peer.dart 91                 Peer.listen.<fn>
===== asynchronous gap ===========================
dart:async                                          _asyncThenWrapperHelper
package:flutter_tools/src/hot.dart                  HotRunner._restartFromSources
package:flutter_tools/src/hot.dart 388              HotRunner.restart.<async>
===== asynchronous gap ===========================
dart:async                                          Future.Future.microtask
package:flutter_tools/src/hot.dart                  HotRunner.restart
package:flutter_tools/src/hot.dart 255              HotRunner.handleTerminalCommand.<async>
===== asynchronous gap ===========================
dart:async                                          Future.Future.microtask
package:flutter_tools/src/hot.dart                  HotRunner.handleTerminalCommand
package:flutter_tools/src/resident_runner.dart 198  ResidentRunner.processTerminalInput.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/resident_runner.dart 184  ResidentRunner._commonTerminalInputHandler.<async>
===== asynchronous gap ===========================
dart:async                                          _asyncThenWrapperHelper
package:flutter_tools/src/resident_runner.dart      ResidentRunner.processTerminalInput
package:flutter_tools/src/resident_runner.dart 225  ResidentRunner.setupTerminal.<fn>
===== asynchronous gap ===========================
dart:async                                          _BoundSinkStream.listen
package:flutter_tools/src/resident_runner.dart 224  ResidentRunner.setupTerminal
package:flutter_tools/src/hot.dart 223              HotRunner._run.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/vmservice.dart 687        VM.refreshViews.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/vmservice.dart 597        VM.invokeRpc.<async>
dart:async                                          _SyncCompleter.complete
package:flutter_tools/src/vmservice.dart 581        VM.invokeRpcRaw.<async>
dart:async                                          _SyncCompleter.complete
package:json_rpc_2/src/client.dart 174              Client._handleSingleResponse
package:json_rpc_2/src/client.dart 164              Client._handleResponse
dart:async                                          _StreamController.add
package:json_rpc_2/src/peer.dart 91                 Peer.listen.<fn>
===== asynchronous gap ===========================
dart:async                                          _asyncThenWrapperHelper
package:flutter_tools/src/hot.dart                  HotRunner._run
package:flutter_tools/src/hot.dart 88               HotRunner.run.<fn>
package:stack_trace                                 Chain.capture
package:flutter_tools/src/hot.dart 87               HotRunner.run
package:flutter_tools/src/commands/run.dart 246     RunCommand.runCommand.<async>

Activity

  1. sethladd commented on Jan 11, 2017

    @sethladd
    Contributor
  2. johnmccutchan commented on Jan 11, 2017

    @johnmccutchan
    Contributor

    According to the log this wasn't a hot reload but a hot restart.

    Request to Dart VM Service timed out: _flutter.runInView({viewId: _flutterView/0xe0ff03b0, mainScript: /data/user/0/com.google.fuchsia.armadillo/cache/armadillonxiodu/lib/main.dart, packagesFile: /data/user/0/com.google.fuchsia.armadillo/cache/armadillonxiodu/.packages, assetDirectory: /data/user/0/com.google.fuchsia.armadillo/cache/armadillonxiodu/build/flx})
    
  3. changed the title [-]An assert in a flutter app can mess up hot reloading.[/-] [+]An assert in a flutter app can mess up hot restart[/+] on Jan 11, 2017
  4. johnmccutchan commented on Jan 11, 2017

    @johnmccutchan
    Contributor

    @jason-simmons This seems like a hang in the shell?

  5. apwilson commented on Jan 11, 2017

    @apwilson
    ContributorAuthor

    Yeah looks like everything just locks up - hot reload may just be a symptom of that.

  6. changed the title [-]An assert in a flutter app can mess up hot restart[/-] [+]An assert in a flutter app can hang the engine[/+] on Jan 11, 2017
  7. johnmccutchan commented on Jan 11, 2017

    @johnmccutchan
    Contributor

    After discussing with @apwilson - The engine thread hangs while processing a drag. So far nothing related to hot reload / restart.

  8. jason-simmons commented on Jan 13, 2017

    @jason-simmons
    Member

    Reproduced this and traced it to a call to SkRTree::CountNodes() that never exits. This happened because we created a Skia canvas with a paint bounds rectangle having NaN dimensions.

  9. github-actions commented on Sep 5, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  10. locked as resolved and limited conversation to collaborators on Sep 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions