Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@GaryQian
Copy link
Contributor

@GaryQian GaryQian commented Aug 16, 2019

Reland the changes from #10127, with segfault fixes.

@GaryQian GaryQian added the Work in progress (WIP) Not ready (yet) for review! label Aug 16, 2019
@GaryQian
Copy link
Contributor Author

GaryQian commented Aug 22, 2019

Progress on fixing the segfault is slow as the only way (known) to repro is a 5min timeout in g3 without a stacktrace. I have managed to trace it to GetGlyphPOsitionAtCoordinate which is experiencing invalid/null values for line_glyph_position. As of now, it is unclear where the invalid values are coming from in this case.

Update: Segfault fixed. Ready to go again!

@GaryQian GaryQian removed the Work in progress (WIP) Not ready (yet) for review! label Aug 22, 2019
paint_records.emplace_back(
run.style(), SkPoint::Make(run_x_offset + justify_x_offset, 0),
builder.make(), *metrics, line_number, record_x_pos.start,
builder.make(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we have a test that exercises this? Ideally one that causes a segfault without it...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change isn't actually what caused the segfault. It was the change in line 1767 that fixes it. Here, I figured I would just use the metrics value directly instead of caching it and messing with pointers as it caused me pain when debugging.

The only case that I know of that repros this is a quite convoluted case in g3 that segfaults, and it would be quite difficult to extract out as it is a generated example out of a bunch of protos and assets. I've tried a manually coded version of it based on what it would generate, but I could not get it to segfault.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand that now from offline - should we rever this part then?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure! I can make this a bit cleaner anyways.

Copy link
Contributor

@dnfield dnfield left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs a test, otherwise should be good.

Copy link
Contributor

@dnfield dnfield left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@GaryQian GaryQian merged commit a1fe6a6 into flutter:master Aug 22, 2019
engine-flutter-autoroll added a commit to flutter/flutter that referenced this pull request Aug 23, 2019
[email protected]:flutter/engine.git/compare/78ac65320bde...975a8aa

git log 78ac653..975a8aa --no-merges --oneline
2019-08-23 [email protected] Roll src/third_party/dart 022585cfe2..06d3769ac6 (12 commits)
2019-08-23 [email protected] Roll src/third_party/skia 941d0a365045..f17d1c952987 (1 commits) (flutter/engine#11393)
2019-08-23 [email protected] Wire up software rendering in the test compositor. (flutter/engine#11392)
2019-08-23 [email protected] Roll src/third_party/dart 88c0c11612..022585cfe2 (14 commits)
2019-08-23 [email protected] preventDefault on touchend to show iOS keyboard (flutter/engine#11390)
2019-08-23 [email protected] Roll src/third_party/skia 2a5954140b49..941d0a365045 (6 commits) (flutter/engine#11389)
2019-08-22 [email protected] Allow overriding the GLFW pixel ratio (flutter/engine#11388)
2019-08-22 [email protected] Allow non-resizable windows in GLFW embedding (flutter/engine#11386)
2019-08-22 [email protected] sync web engine; run web engine tests (flutter/engine#11031)
2019-08-22 [email protected] Reland "Track detailed LibTxt metrics with LineMetrics(#10127)" (flutter/engine#11064)
2019-08-22 [email protected] Remove empty line in the pom file (flutter/engine#11382)

The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff ([email protected]), and stop
the roller if necessary.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants