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

Neovim crashes when setting async = true and a huge load of lines is added to the buffer #28

Open
ad-on-is opened this issue Dec 28, 2024 · 0 comments

Comments

@ad-on-is
Copy link

I'm using baleia to colorize the dap-repl output (nvim-dap) when developing in Flutter.

 vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
        pattern = "*dap-repl*",
        callback = function()
          vim.g.baleia.automatically(vim.api.nvim_get_current_buf())
        end,
      })

In Flutter, when a widget is messed up due to its size, dart throws a huge load of output into the buffer. See output below.

This causes neovim to crash. To mitigate this issue, the only thing that helps is to set async to false.

Huge output example
════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during performLayout():
An InputDecorator, which is typically created by a TextField, cannot have an unbounded width.
This happens when the parent widget does not provide a finite width constraint. For example, if the InputDecorator is contained by a Row, then its width must be constrained. An Expanded widget or a SizedBox can be used to constrain the width of the InputDecorator or the TextField that contains it.
'package:flutter/src/material/input_decorator.dart':
Failed assertion: line 964 pos 7: 'constraints.maxWidth < double.infinity'

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.yml

When the exception was thrown, this was the stack:
#2      _RenderDecoration._layout (package:flutter/src/material/input_decorator.dart:964:7)
#3      _RenderDecoration.performLayout (package:flutter/src/material/input_decorator.dart:1301:44)
#4      RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#5      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#7      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#8      RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#9      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#10     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#12     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#13     RenderTapRegion.layout (package:flutter/src/widgets/tap_region.dart:583:11)
#14     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#15     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#16     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#17     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:1055:73)
#18     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1121:32)
#19     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#20     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:239:12)
#21     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#22     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:297:14)
#23     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#25     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#27     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:572:11)
#28     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#29     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#30     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1476:11)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#32     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:297:14)
#33     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#34     RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:456:14)
#35     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#36     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:239:12)
#37     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#38     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:239:12)
#39     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#40     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:239:12)
#41     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#42     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#43     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#44     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#45     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#46     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#47     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#50     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#51     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#52     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#53     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#54     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#55     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3722:13)
#56     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#57     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:117:21)
#58     RenderObject.layout (package:flutter/src/rendering/object.dart:2627:7)
#59     _RenderTheaterMixin.layoutChild (package:flutter/src/widgets/overlay.dart:1016:13)
#60     _RenderTheater.performLayout (package:flutter/src/widgets/overlay.dart:1328:9)
#61     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2465:7)
#62     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1062:18)
#63     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1075:15)
#64     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:609:23)
#65     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1178:13)
#66     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:475:5)
#67     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397:15)
#68     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318:9)
#69     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176:5)
#70     _invoke (dart:ui/hooks.dart:312:13)
#71     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:427:5)
#72     _drawFrame (dart:ui/hooks.dart:283:31)
(elided 2 frames from class _AssertionError)

The following RenderObject was being processed when the exception was fired: _RenderDecoration#b1bf0 relayoutBoundary=up6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    parentData: <none> (can use size)
    constraints: BoxConstraints(0.0<=w<=Infinity, 0.0<=h<=76.0)
    size: MISSING
    input: RenderRepaintBoundary#7cfd0 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        needs compositing
        parentData: offset=Offset(0.0, 0.0)
        constraints: MISSING
        size: MISSING
        usefulness ratio: no metrics collected yet (never painted)
        child: _RenderCompositionCallback#667c0 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: <none>
            constraints: MISSING
            size: MISSING
            child: RenderTapRegion#e4564 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none>
                constraints: MISSING
                size: MISSING
                behavior: deferToChild
                debugLabel: EditableText
                groupId: EditableText
                child: RenderMouseRegion#1f795 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    behavior: opaque
                    listeners: <none>
    helperError: RenderConstrainedBox#d38fc NEEDS-LAYOUT NEEDS-PAINT
        parentData: offset=Offset(0.0, 0.0)
        constraints: MISSING
        size: MISSING
        additionalConstraints: BoxConstraints(w=0.0, h=0.0)
    container: RenderCustomPaint#4f074 NEEDS-LAYOUT NEEDS-PAINT
        parentData: offset=Offset(0.0, 0.0)
        constraints: MISSING
        size: MISSING
        painter: null
        foregroundPainter: _InputBorderPainter#43fe9
RenderObject: _RenderDecoration#b1bf0 relayoutBoundary=up6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    parentData: <none> (can use size)
    constraints: BoxConstraints(0.0<=w<=Infinity, 0.0<=h<=76.0)
    size: MISSING
    input: RenderRepaintBoundary#7cfd0 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        needs compositing
        parentData: offset=Offset(0.0, 0.0)
        constraints: MISSING
        size: MISSING
        usefulness ratio: no metrics collected yet (never painted)
        child: _RenderCompositionCallback#667c0 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: <none>
            constraints: MISSING
            size: MISSING
            child: RenderTapRegion#e4564 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none>
                constraints: MISSING
                size: MISSING
                behavior: deferToChild
                debugLabel: EditableText
                groupId: EditableText
                child: RenderMouseRegion#1f795 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    behavior: opaque
                    listeners: <none>
    helperError: RenderConstrainedBox#d38fc NEEDS-LAYOUT NEEDS-PAINT
        parentData: offset=Offset(0.0, 0.0)
        constraints: MISSING
        size: MISSING
        additionalConstraints: BoxConstraints(w=0.0, h=0.0)
    container: RenderCustomPaint#4f074 NEEDS-LAYOUT NEEDS-PAINT
        parentData: offset=Offset(0.0, 0.0)
        constraints: MISSING
        size: MISSING
        painter: null
        foregroundPainter: _InputBorderPainter#43fe9
═════════════════════════════════════════════════════════

 Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: _RenderDecoration#b1bf0 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    TextField TextField:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:150:15
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPointerListener#0c2b1 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    TextField TextField:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:150:15
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderSemanticsAnnotations#14578 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    TextField TextField:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:150:15
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderIgnorePointer#7d2e4 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    TextField TextField:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:150:15
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTapRegion#1a913 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    TextField TextField:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:150:15
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderMouseRegion#ec550 relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    Row Row:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:148:18
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderFlex#0fc3a NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    Padding Padding:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:146:16
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPadding#ffc0a NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    SizedBox SizedBox:file:///home/adonis/Development/Flutter/odin/lib/ui/settings.dart:143:12
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderConstrainedBox#2fb39 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    Dialog Dialog:file:///home/adonis/Development/Flutter/odin/lib/ui/dialogs/default.dart:14:12
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: _RenderInkFeatures#3ab67 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    Dialog Dialog:file:///home/adonis/Development/Flutter/odin/lib/ui/dialogs/default.dart:14:12
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderCustomPaint#6b326 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    Dialog Dialog:file:///home/adonis/Development/Flutter/odin/lib/ui/dialogs/default.dart:14:12
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPhysicalShape#44a8f relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    Dialog Dialog:file:///home/adonis/Development/Flutter/odin/lib/ui/dialogs/default.dart:14:12
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
'package:flutter/src/rendering/shifted_box.dart': Failed assertion: line 346 pos 12: 'child!.hasSize': is not true.
The relevant error-causing widget was:
    Dialog Dialog:file:///home/adonis/Development/Flutter/odin/lib/ui/dialogs/default.dart:14:12
════════════════════════════════════════════════════════════════════════════════
W/OnBackInvokedCallback(16140): OnBackInvokedCallback is not enabled for the application.
W/OnBackInvokedCallback(16140): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPhysicalShape#44a8f relayoutBoundary=up2
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2176 pos 12: 'hasSize'
The relevant error-causing widget was:
    Dialog Dialog:file:///home/adonis/Development/Flutter/odin/lib/ui/dialogs/default.dart:14:12
══════════════════════════════════════════════════════
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

No branches or pull requests

1 participant