Message containing only U+FDFA makes all previous messages disappear from the UI #147

Closed
opened 2021-08-23 11:03:17 +00:00 by DavidBuchanan314 · 2 comments

Tested on desktop Arch Linux, running the latest official v1.1.1 beta release.

After sending or receiving a message containing only the unicode codepoint U+FDFA (ﷺ), the message history fails to render. It looks like this:

image

Any messages sent afterwards are still visible. Trying to scroll up results in an endless blank page.

I see this in the logs, which looks like it could be relevant:

flutter: Unsupported operation: Infinity or NaN toInt
flutter: #0      _Double.toInt (dart:core-patch/double.dart:219)
flutter: #1      _BoxEdge.compareTo (package:flutter/src/semantics/semantics.dart:2356)
flutter: #2      Comparable.compare (dart:core/comparable.dart:88)
flutter: #3      ListMixin._compareAny (dart:collection/list.dart:360)
flutter: #4      Sort._insertionSort (dart:_internal/sort.dart:69)
flutter: #5      Sort._doSort (dart:_internal/sort.dart:58)
flutter: #6      Sort.sort (dart:_internal/sort.dart:33)
flutter: #7      ListMixin.sort (dart:collection/list.dart:356)
flutter: #8      _childrenInDefaultOrder (package:flutter/src/semantics/semantics.dart:2551)
flutter: #9      SemanticsNode._childrenInTraversalOrder (package:flutter/src/semantics/semantics.dart:2145)
flutter: #10     SemanticsNode._addToUpdate (package:flutter/src/semantics/semantics.dart:2083)
flutter: #11     SemanticsOwner.sendSemanticsUpdate (package:flutter/src/semantics/semantics.dart:2681)
flutter: #12     PipelineOwner.flushSemantics (package:flutter/src/rendering/object.dart:1078)
flutter: #13     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:467)
flutter: #14     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:876)
flutter: #15     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:328)
flutter: #16     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144)
flutter: #17     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082)
flutter: #18     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998)
flutter: #22     _invoke (dart:ui/hooks.dart:163)
flutter: #23     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:259)
flutter: #24     _drawFrame (dart:ui/hooks.dart:126)
flutter: (elided 3 frames from dart:async)

Sending the string "helloﷺworld" works, however, it just renders as "helloworld". My guess is that, due to [unspecified font breakage], the text layout engine says that the string "ﷺ" has zero length, resulting in divide-by-zero or something similar in the UI layout logic.

Tested on desktop Arch Linux, running the latest official v1.1.1 beta release. After sending or receiving a message containing only the unicode codepoint U+FDFA (ﷺ), the message history fails to render. It looks like this: ![image](/attachments/0cadd4e3-8e7b-48d3-98e8-dd1e9e21e02c) Any messages sent afterwards are still visible. Trying to scroll up results in an endless blank page. I see this in the logs, which looks like it could be relevant: ``` flutter: Unsupported operation: Infinity or NaN toInt flutter: #0 _Double.toInt (dart:core-patch/double.dart:219) flutter: #1 _BoxEdge.compareTo (package:flutter/src/semantics/semantics.dart:2356) flutter: #2 Comparable.compare (dart:core/comparable.dart:88) flutter: #3 ListMixin._compareAny (dart:collection/list.dart:360) flutter: #4 Sort._insertionSort (dart:_internal/sort.dart:69) flutter: #5 Sort._doSort (dart:_internal/sort.dart:58) flutter: #6 Sort.sort (dart:_internal/sort.dart:33) flutter: #7 ListMixin.sort (dart:collection/list.dart:356) flutter: #8 _childrenInDefaultOrder (package:flutter/src/semantics/semantics.dart:2551) flutter: #9 SemanticsNode._childrenInTraversalOrder (package:flutter/src/semantics/semantics.dart:2145) flutter: #10 SemanticsNode._addToUpdate (package:flutter/src/semantics/semantics.dart:2083) flutter: #11 SemanticsOwner.sendSemanticsUpdate (package:flutter/src/semantics/semantics.dart:2681) flutter: #12 PipelineOwner.flushSemantics (package:flutter/src/rendering/object.dart:1078) flutter: #13 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:467) flutter: #14 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:876) flutter: #15 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:328) flutter: #16 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144) flutter: #17 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082) flutter: #18 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998) flutter: #22 _invoke (dart:ui/hooks.dart:163) flutter: #23 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:259) flutter: #24 _drawFrame (dart:ui/hooks.dart:126) flutter: (elided 3 frames from dart:async) ``` Sending the string "helloﷺworld" works, however, it just renders as "helloworld". My guess is that, due to \[unspecified font breakage\], the text layout engine says that the string "ﷺ" has zero length, resulting in divide-by-zero or something similar in the UI layout logic.
sarah added the
bug
label 2021-08-23 15:42:38 +00:00
Owner

Same stack trace in unresolved flutter issue thread (may or may not be relevant) https://github.com/flutter/flutter/issues/77908

Same stack trace in unresolved flutter issue thread (may or may not be relevant) https://github.com/flutter/flutter/issues/77908
Owner

Assuming this is fixed as of 1.6:

  1. Previously any rendering error (whether flutter or cwtch) would have caused the whole message view to not render properly - this has since been fixed.
  2. We have upgraded the underlying flutter sdk multiple times in the last 6 months and they have fixed many font handling issues in that time
  3. I cannot replicate this issue

If however it is not fixed, please reopen this issue!

Thanks!

Assuming this is fixed as of 1.6: 1. Previously any rendering error (whether flutter or cwtch) would have caused the whole message view to not render properly - this has since been fixed. 2. We have upgraded the underlying flutter sdk multiple times in the last 6 months and they have fixed many font handling issues in that time 3. I cannot replicate this issue If however it is not fixed, please reopen this issue! Thanks!
sarah closed this issue 2022-02-14 19:53:39 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cwtch.im/cwtch-ui#147
No description provided.