CGAffineTransformInvert: singular matrix
Reported by
kenorb@gmail.com,
Jul 21 2016
|
|||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 Steps to reproduce the problem: I don't know whether the following error is something to handle/fix, but it became noticeable for me in the logs. So in order to help with improvements, I'm reporting the issue specifically for addressing this notice/warning which seems to be displayed in logs ever few seconds or minutes. I've no idea what is about, but this may help: http://stackoverflow.com/q/7471027/55075 E.g. 21/07/2016 09:42:57.199 Google Chrome Helper[69457]: CGAffineTransformInvert: singular matrix. 21/07/2016 09:48:12.325 Google Chrome Helper[29342]: CGAffineTransformInvert: singular matrix. 21/07/2016 09:52:56.029 Google Chrome Helper[69560]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:05:05.473 Google Chrome Helper[5431]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:05:11.055 Google Chrome Helper[91320]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:07:49.159 Google Chrome Helper[94369]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:08:55.920 Google Chrome Helper[29342]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:08:58.056 Google Chrome Helper[20934]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:09:06.228 Google Chrome Helper[20934]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:17:17.999 Google Chrome Helper[17198]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:17:18.718 Google Chrome Helper[17198]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:25:57.420 Google Chrome Helper[69457]: CGAffineTransformInvert: singular matrix. 21/07/2016 10:26:03.223 Google Chrome Helper[69457]: CGAffineTransformInvert: singular matrix. What is the expected behavior? What went wrong? CGAffineTransformInvert: singular matrix is happening in the logs. It may cause some other issues. Did this work before? N/A Chrome version: 51.0.2704.103 Channel: n/a OS Version: OS X 10.11.2 Flash Version: Shockwave Flash 22.0 r0
,
Aug 4 2016
ccameron@, any idea what this might be? There's only a couple of places we use CGAffineTransformInvert, and one of them (https://cs.chromium.org/chromium/src/skia/ext/bitmap_platform_device_mac.cc?q=%22CGAffineTransformInvert%22&sq=package:chromium&l=90&dr=C) looks a little suspicious to me. What do you think?
,
Aug 11 2016
More likely being caused by something in Cocoa. Two suggestions from StackOverflow First: I once had this error cause by mistake was setting a font with size 0 when using [UIFont fontWithName:size:] for a UILabel. Second: "CGAffineTransformInvert: singular matrix" seems to come up when layoutSubViews: runs on a view (such as UIScrollView or UILabel) that has a frame of size (0,0). Dropping priority, marking available.
,
Aug 16 2016
Since this happens to every renderer, I used lldb to figure out the emitter of the warning. Looks like an issue at the intersection of Skia and CoreText/CoreGraphics.
"""
(lldb) bt
* thread #1: tid = 0x57ef1, 0x00007fffd37c2a44 CoreGraphics`CGAffineTransformInvert + 59, name = 'CrRendererMain', queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
* frame #0: 0x00007fffd37c2a44 CoreGraphics`CGAffineTransformInvert + 59
frame #1: 0x000000011eacef44 libskia.dylib`SkScalerContext_Mac + 932 at SkFontHost_mac.cpp:813
frame #2: 0x000000011eacf50d libskia.dylib`SkScalerContext_Mac + 45 at SkFontHost_mac.cpp:798
frame #3: 0x000000011ead5383 libskia.dylib`onCreateScalerContext + 67 at SkFontHost_mac.cpp:1984
frame #4: 0x000000011e8fb91e libskia.dylib`createScalerContext + 78 at SkScalerContext.cpp:863
frame #5: 0x000000011e7b014f libskia.dylib`VisitCache + 911 at SkGlyphCache.cpp:577
frame #6: 0x000000011e86b8e1 libskia.dylib`DetachCache + 49 at SkGlyphCache.h:151
frame #7: 0x000000011e867e79 libskia.dylib`DetachDescProc + 41 at SkPaint.cpp:439
frame #8: 0x000000011e86470e libskia.dylib`descriptorProc + 830 at SkPaint.cpp:1779
frame #9: 0x000000011e867e17 libskia.dylib`detachCache + 71 at SkPaint.cpp:1786
frame #10: 0x000000011e86afdd libskia.dylib`SkAutoGlyphCache + 93 at SkGlyphCache.h:290
frame #11: 0x000000011e8620cd libskia.dylib`SkAutoGlyphCache + 45 at SkGlyphCache.h:293
frame #12: 0x000000011e864950 libskia.dylib`getTextWidths + 400 at SkPaint.cpp:1014
frame #13: 0x0000000130ae19c2 libblink_platform.dylib`getGlyphWidthAndExtentsForHarfBuzz + 290 at SkiaTextMetrics.cpp:34
frame #14: 0x0000000130ac80ca libblink_platform.dylib`harfBuzzGetGlyphHorizontalAdvance + 90 at HarfBuzzFace.cpp:184
frame #15: 0x00000001311ac552 libblink_platform.dylib`get_glyph_h_advance + 50 at hb-font-private.hh:207
frame #16: 0x0000000131210a7f libblink_platform.dylib`hb_ot_position_default + 143 at hb-ot-shape.cc:613
frame #17: 0x000000013120f712 libblink_platform.dylib`hb_ot_position + 34 at hb-ot-shape.cc:719
frame #18: 0x000000013120e721 libblink_platform.dylib`hb_ot_shape_internal + 321 at hb-ot-shape.cc:768
frame #19: 0x000000013120e5b8 libblink_platform.dylib`_hb_ot_shape + 120 at hb-ot-shape.cc:792
frame #20: 0x000000013121439c libblink_platform.dylib`hb_shape_plan_execute + 716 at hb-shaper-list.hh:43
frame #21: 0x0000000131215b93 libblink_platform.dylib`hb_shape_full + 99 at hb-shape.cc:377
frame #22: 0x0000000131215bf0 libblink_platform.dylib`hb_shape + 48 at hb-shape.cc:405
frame #23: 0x0000000130acefce libblink_platform.dylib`shapeRange + 734 at HarfBuzzShaper.cpp:352
frame #24: 0x0000000130ace669 libblink_platform.dylib`shapeResult + 2121 at HarfBuzzShaper.cpp:659
frame #25: 0x0000000130ac0618 libblink_platform.dylib`shapeWordWithoutSpacing + 280 at CachingWordShapeIterator.h:84
frame #26: 0x0000000130abfe98 libblink_platform.dylib`shapeWord + 104 at CachingWordShapeIterator.h:98
frame #27: 0x0000000130ac0109 libblink_platform.dylib`shapeToEndIndex + 169 at CachingWordShapeIterator.h:173
frame #28: 0x0000000130abfff7 libblink_platform.dylib`nextWord + 55 at CachingWordShapeIterator.h:106
frame #29: 0x0000000130abf10e libblink_platform.dylib`next + 286 at CachingWordShapeIterator.h:71
frame #30: 0x0000000130abee7d libblink_platform.dylib`width + 125 at CachingWordShaper.cpp:45
frame #31: 0x0000000130a513de libblink_platform.dylib`floatWidthForComplexText + 110 at Font.cpp:733
frame #32: 0x0000000130a512f5 libblink_platform.dylib`width + 117 at Font.cpp:242
frame #33: 0x0000000135eb295b libblink_core.dylib`computePreferredLogicalWidths + 6331 at LayoutText.cpp:1137
frame #34: 0x0000000135eb0ca2 libblink_core.dylib`computePreferredLogicalWidths + 82 at LayoutText.cpp:858
frame #35: 0x0000000135eb0410 libblink_core.dylib`trimmedPrefWidths + 368 at LayoutText.cpp:755
frame #36: 0x0000000135dabcef libblink_core.dylib`computeInlinePreferredLogicalWidths + 3599 at LayoutBlockFlowLine.cpp:1415
frame #37: 0x0000000135d71b12 libblink_core.dylib`computeIntrinsicLogicalWidths + 162 at LayoutBlock.cpp:1230
frame #38: 0x0000000135d730a7 libblink_core.dylib`computePreferredLogicalWidths + 487 at LayoutBlock.cpp:1265
frame #39: 0x0000000135dc1a37 libblink_core.dylib`maxPreferredLogicalWidth + 87 at LayoutBox.cpp:1059
frame #40: 0x0000000135e026bd libblink_core.dylib`computeInnerFlexBaseSizeForChild + 813 at LayoutFlexibleBox.cpp:877
frame #41: 0x0000000135e06f9e libblink_core.dylib`constructFlexItem + 142 at LayoutFlexibleBox.cpp:1218
frame #42: 0x0000000135e02bbf libblink_core.dylib`computeNextFlexLine + 591 at LayoutFlexibleBox.cpp:1256
frame #43: 0x0000000135dfdb0f libblink_core.dylib`layoutFlexItems + 319 at LayoutFlexibleBox.cpp:897
frame #44: 0x0000000135dfd5c1 libblink_core.dylib`layoutBlock + 689 at LayoutFlexibleBox.cpp:376
frame #45: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #46: 0x0000000135d62186 libblink_core.dylib`layoutIfNeeded + 54 at LayoutObject.h:902
frame #47: 0x0000000135dad111 libblink_core.dylib`layoutInlineChildren + 881 at LayoutBlockFlowLine.cpp:1589
frame #48: 0x0000000135d81edc libblink_core.dylib`layoutBlockFlow + 1020 at LayoutBlockFlow.cpp:469
frame #49: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #50: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #51: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #52: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #53: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #54: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #55: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #56: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #57: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #58: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #59: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #60: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #61: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #62: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #63: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #64: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #65: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #66: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #67: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #68: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #69: 0x0000000135d62186 libblink_core.dylib`layoutIfNeeded + 54 at LayoutObject.h:902
frame #70: 0x0000000135d8b800 libblink_core.dylib`insertFloatingObject + 608 at LayoutBlockFlow.cpp:2961
frame #71: 0x0000000135d8b1eb libblink_core.dylib`layoutBlockChildren + 475 at LayoutBlockFlow.cpp:1171
frame #72: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #73: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #74: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #75: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #76: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #77: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #78: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #79: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #80: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #81: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #82: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #83: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #84: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #85: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #86: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #87: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #88: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #89: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #90: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #91: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #92: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #93: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #94: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #95: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #96: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #97: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #98: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #99: 0x0000000135d83b3a libblink_core.dylib`positionAndLayoutOnceIfNeeded + 762 at LayoutBlockFlow.cpp:654
frame #100: 0x0000000135d84152 libblink_core.dylib`layoutBlockChild + 322 at LayoutBlockFlow.cpp:704
frame #101: 0x0000000135d8b31b libblink_core.dylib`layoutBlockChildren + 779 at LayoutBlockFlow.cpp:1189
frame #102: 0x0000000135d81f1e libblink_core.dylib`layoutBlockFlow + 1086 at LayoutBlockFlow.cpp:471
frame #103: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #104: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #105: 0x0000000135d62186 libblink_core.dylib`layoutIfNeeded + 54 at LayoutObject.h:902
frame #106: 0x0000000135d6d6ad libblink_core.dylib`layoutPositionedObjects + 829 at LayoutBlock.cpp:724
frame #107: 0x0000000135d823af libblink_core.dylib`layoutBlockFlow + 2255 at LayoutBlockFlow.cpp:526
frame #108: 0x0000000135d8196e libblink_core.dylib`layoutBlock + 366 at LayoutBlockFlow.cpp:389
frame #109: 0x0000000135d6b8a2 libblink_core.dylib`layout + 178 at LayoutBlock.cpp:374
frame #110: 0x0000000135f08b75 libblink_core.dylib`layoutContent + 117 at LayoutView.cpp:185
frame #111: 0x0000000135f096f9 libblink_core.dylib`layout + 2233 at LayoutView.cpp:261
frame #112: 0x00000001358181ea libblink_core.dylib`layoutFromRootObject + 58 at FrameView.cpp:843
frame #113: 0x0000000135817a4e libblink_core.dylib`performLayout + 1118 at FrameView.cpp:912
frame #114: 0x0000000135814107 libblink_core.dylib`layout + 3591 at FrameView.cpp:1060
frame #115: 0x0000000134c73695 libblink_core.dylib`updateStyleAndLayout + 517 at Document.cpp:1890
frame #116: 0x0000000134c73455 libblink_core.dylib`updateStyleAndLayoutIgnorePendingStylesheets + 37 at Document.cpp:1977
frame #117: 0x0000000134c73404 libblink_core.dylib`updateStyleAndLayoutIgnorePendingStylesheetsForNode + 276 at Document.cpp:1865
frame #118: 0x0000000134fbe9e3 libblink_core.dylib`unclosedOffsetParent + 51 at HTMLElement.cpp:1136
frame #119: 0x0000000134fbeb1a libblink_core.dylib`offsetWidthForBinding + 42 at HTMLElement.cpp:1120
frame #120: 0x00000001347ee1d1 libblink_core.dylib`offsetWidthAttributeGetter + 129 at V8HTMLElement.cpp:481
frame #121: 0x00000001347e3975 libblink_core.dylib`offsetWidthAttributeGetterCallback + 21 at V8HTMLElement.cpp:486
frame #122: 0x000000010946df0e libv8.dylib`Call + 334 at api-arguments.cc:19
frame #123: 0x000000010951d7ae libv8.dylib`HandleApiCallHelper<false> + 1006 at builtins-api.cc:106
frame #124: 0x000000010951d15d libv8.dylib`InvokeApiFunction + 797 at builtins-api.cc:207
frame #125: 0x0000000109a5992b libv8.dylib`GetPropertyWithAccessor + 475 at objects.cc:1177
frame #126: 0x0000000109a58de9 libv8.dylib`GetProperty + 281 at objects.cc:833
frame #127: 0x00000001099a5df9 libv8.dylib`Load + 489 at ic.cc:629
frame #128: 0x00000001099af24f libv8.dylib`__RT_impl_Runtime_LoadIC_Miss + 607 at ic.cc:2272
frame #129: 0x00000001099aef1a libv8.dylib`Runtime_LoadIC_Miss + 538 at ic.cc:2253
frame #130: 0x00001c99d26063a7
frame #131: 0x00001c99d2722bc9
frame #132: 0x00001c99d2722e11
frame #133: 0x00001c99d2647123
frame #134: 0x00001c99d26287ef
frame #135: 0x00000001098a195f libv8.dylib`Invoke + 607 at execution.cc:111
frame #136: 0x00000001098a160b libv8.dylib`Call + 683 at execution.cc:168
frame #137: 0x000000010947d24a libv8.dylib`Run + 842 at api.cc:1909
frame #138: 0x00000001343cb69e libblink_core.dylib`runCompiledScript + 1150 at V8ScriptRunner.cpp:415
frame #139: 0x0000000134306caf libblink_core.dylib`executeScriptAndReturnValue + 1423 at ScriptController.cpp:150
frame #140: 0x0000000134308d8d libblink_core.dylib`evaluateScriptInMainWorld + 397 at ScriptController.cpp:396
frame #141: 0x0000000134309032 libblink_core.dylib`executeScriptInMainWorld + 82 at ScriptController.cpp:374
frame #142: 0x0000000134df98fe libblink_core.dylib`executeScript + 2590 at ScriptLoader.cpp:429
frame #143: 0x0000000134df7b7f libblink_core.dylib`prepareScript + 2335 at ScriptLoader.cpp:276
frame #144: 0x000000013519cd82 libblink_core.dylib`runScript + 578 at HTMLScriptRunner.cpp:424
frame #145: 0x000000013519c8f0 libblink_core.dylib`execute + 704 at HTMLScriptRunner.cpp:277
frame #146: 0x0000000135158817 libblink_core.dylib`runScriptsForPausedTreeBuilder + 231 at HTMLDocumentParser.cpp:261
frame #147: 0x000000013515dc76 libblink_core.dylib`processTokenizedChunkFromBackgroundParser + 3382 at HTMLDocumentParser.cpp:488
frame #148: 0x00000001351580e7 libblink_core.dylib`pumpPendingSpeculations + 1671 at HTMLDocumentParser.cpp:545
frame #149: 0x0000000135157a4f libblink_core.dylib`resumeParsingAfterYield + 191 at HTMLDocumentParser.cpp:250
frame #150: 0x000000013518c08d libblink_core.dylib`continueParsing + 29 at HTMLParserScheduler.cpp:159
frame #151: 0x000000013518d222 libblink_core.dylib`Invoke<const blink::WeakPersistent<blink::HTMLParserScheduler> &> + 130 at bind_internal.h:214
frame #152: 0x000000013518d135 libblink_core.dylib`MakeItSo<void (blink::HTMLParserScheduler::*const &)(), const blink::WeakPersistent<blink::HTMLParserScheduler> &> + 85 at bind_internal.h:303
frame #153: 0x000000013518d0d8 libblink_core.dylib`RunImpl<void (blink::HTMLParserScheduler::*const &)(), const std::__1::tuple<blink::WeakPersistent<blink::HTMLParserScheduler> > &, 0> + 72 at bind_internal.h:346
frame #154: 0x000000013518ccfc libblink_core.dylib`Run + 44 at bind_internal.h:324
frame #155: 0x000000013098fefe libblink_platform.dylib`Run + 46 at callback.h:389
frame #156: 0x0000000130990372 libblink_platform.dylib`operator() + 258 at Functional.h:229
frame #157: 0x0000000130d5d7a4 libblink_platform.dylib`run + 100 at CancellableTaskFactory.cpp:27
frame #158: 0x00000001338734d9 libscheduler.dylib`runTask + 41 at web_task_runner_impl.cc:69
frame #159: 0x0000000133874b7a libscheduler.dylib`Invoke<std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> > > + 362 at bind_internal.h:164
frame #160: 0x00000001338749b0 libscheduler.dylib`MakeItSo<void (*const &)(std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> >), std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> > > + 48 at bind_internal.h:283
frame #161: 0x00000001338748a6 libscheduler.dylib`RunImpl<void (*const &)(std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> >), const std::__1::tuple<base::internal::PassedWrapper<std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> > > > &, 0> + 118 at bind_internal.h:346
frame #162: 0x00000001338742cc libscheduler.dylib`Run + 44 at bind_internal.h:324
frame #163: 0x000000010a8323ce libbase.dylib`Run + 46 at callback.h:389
frame #164: 0x000000010a85ec2e libbase.dylib`RunTask + 654 at task_annotator.cc:51
frame #165: 0x0000000133842635 libscheduler.dylib`ProcessTaskFromWorkQueue + 1589 at task_queue_manager.cc:315
frame #166: 0x000000013383ee93 libscheduler.dylib`DoWork + 1187 at task_queue_manager.cc:218
frame #167: 0x0000000133847187 libscheduler.dylib`Invoke<const base::WeakPtr<scheduler::TaskQueueManager> &, const base::TimeTicks &, const bool &> + 199 at bind_internal.h:214
frame #168: 0x0000000133846fa0 libscheduler.dylib`MakeItSo<void (scheduler::TaskQueueManager::*const &)(base::TimeTicks, bool), const base::WeakPtr<scheduler::TaskQueueManager> &, const base::TimeTicks &, const bool &> + 128 at bind_internal.h:303
frame #169: 0x0000000133846f1a libscheduler.dylib`RunImpl<void (scheduler::TaskQueueManager::*const &)(base::TimeTicks, bool), const std::__1::tuple<base::WeakPtr<scheduler::TaskQueueManager>, base::TimeTicks, bool> &, 0, 1, 2> + 138 at bind_internal.h:346
frame #170: 0x000000013384691c libscheduler.dylib`Run + 44 at bind_internal.h:324
frame #171: 0x000000010a8323ce libbase.dylib`Run + 46 at callback.h:389
frame #172: 0x000000010a85ec2e libbase.dylib`RunTask + 654 at task_annotator.cc:51
frame #173: 0x000000010a92653d libbase.dylib`RunTask + 877 at message_loop.cc:496
frame #174: 0x000000010a926b24 libbase.dylib`DeferOrRunPendingTask + 68 at message_loop.cc:505
frame #175: 0x000000010a92759d libbase.dylib`DoWork + 669 at message_loop.cc:629
frame #176: 0x000000010a938798 libbase.dylib`RunWork + 104 at message_pump_mac.mm:330
frame #177: 0x000000010a93871c libbase.dylib`___ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv_block_invoke + 28 at message_pump_mac.mm:307
frame #178: 0x000000010a8e4b2a libbase.dylib`base::mac::CallWithEHFrame(void () block_pointer) + 10 at call_with_eh_frame_asm.S:36
frame #179: 0x000000010a937c95 libbase.dylib`RunWorkSource + 101 at message_pump_mac.mm:306
frame #180: 0x00007fffd3385491 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
frame #181: 0x00007fffd336663d CoreFoundation`__CFRunLoopDoSources0 + 557
frame #182: 0x00007fffd3365b36 CoreFoundation`__CFRunLoopRun + 934
frame #183: 0x00007fffd3365534 CoreFoundation`CFRunLoopRunSpecific + 420
frame #184: 0x00007fffd4d91ba2 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 277
frame #185: 0x000000010a939279 libbase.dylib`DoRun + 137 at message_pump_mac.mm:608
frame #186: 0x000000010a93847a libbase.dylib`Run + 122 at message_pump_mac.mm:238
frame #187: 0x000000010a925d4a libbase.dylib`RunHandler + 298 at message_loop.cc:459
frame #188: 0x000000010a9e8b45 libbase.dylib`Run + 85 at run_loop.cc:35
frame #189: 0x00000001240995f4 libcontent.dylib`RendererMain + 3764 at renderer_main.cc:198
frame #190: 0x000000012454b287 libcontent.dylib`RunNamedProcessTypeMain + 599 at content_main_runner.cc:418
frame #191: 0x000000012454d176 libcontent.dylib`Run + 1462 at content_main_runner.cc:785
frame #192: 0x000000012454aaed libcontent.dylib`ContentMain + 349 at content_main.cc:20
frame #193: 0x000000010e0e2843 libchrome_dll.dylib`ChromeMain + 83 at chrome_main.cc:85
frame #194: 0x000000010942dd7c Chromium Helper`main + 780 at chrome_exe_main_mac.c:85
frame #195: 0x000000010942da64 Chromium Helper`start + 52
"""
,
Aug 16 2016
I think this usually happens when a text size of zero is requested. Skia can't ask CG directly for a text size of 0 (you'll end up with 12 or something like that instead), so we ask for some size and then transform it down to 0. The documentation for CGAffineTransformInvert at https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CGAffineTransform/index.html#//apple_ref/c/func/CGAffineTransformInvert explicitly states that if the transform cannot be inverted it will be returned unchanged. There's no point wasting time checking to see if it can be inverted, and then have CGAffineTransformInvert again check (with a different method and tolerances, so the initial check may be for nothing anyway). That CGAffineTransformInvert as a library function is writing to stdio or stderr directly seems bad form, it should get fixed. Is there someone on the team who would be best to open a radar against Apple to remove this rather annoying message that the function is doing what it says it does? I'm also not sure of current way of marking this issue as an external dependency.
,
Aug 19 2016
This happens every time I navigate away from the NTP to google.com. Given that we control all of these domains, I would hope that we would never request a text size of zero. I'm guessing there's a bug somewhere. Can you look into the Skia side, and if the issue isn't there, we can find an appropriate Blink person to continue investigating? There's no designated person for filing radars. Instructions are here: https://g3doc.corp.google.com/company/appledev/book/apple/bugs/index.md?cl=head
,
Aug 23 2016
The following revision refers to this bug: https://skia.googlesource.com/skia.git/+/1f0e78ddf94f6259e8bbfb403b55c8eeedac390c commit 1f0e78ddf94f6259e8bbfb403b55c8eeedac390c Author: bungeman <bungeman@google.com> Date: Tue Aug 23 20:19:01 2016 SkScalerContextRec::computeMatrices to return status. When computing the matricies for a scaler context, there is a special case when the matrix is determined to be singular. No port properly handles zero sized text, so we detect this case and return a 'normal' text size and a zero matrix for all computed transformations. This CL causes computeMatricies to return 'false' in this case. This is used in the constructor of SkScalerContext_Mac in order to avoid calling CGAffineTransformInvert on non-invertible transformations. CGAffineTransformInvert documents that if the transform is non-invertible it will return the passed transform unchanged. It does so, but then also prints a message to stdout. Since the information is already available to avoid this chatty behavior, use it to keep things quiet. BUG= skia:3231 , chromium:630169 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276583003 Review-Url: https://codereview.chromium.org/2276583003 [modify] https://crrev.com/1f0e78ddf94f6259e8bbfb403b55c8eeedac390c/src/core/SkScalerContext.cpp [modify] https://crrev.com/1f0e78ddf94f6259e8bbfb403b55c8eeedac390c/src/core/SkScalerContext.h [modify] https://crrev.com/1f0e78ddf94f6259e8bbfb403b55c8eeedac390c/src/ports/SkFontHost_mac.cpp
,
Aug 23 2016
Awesome, thanks! I take it this is fixed?
,
Aug 24 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/94267418aa8cd1f48f99ec9aa83b9908cc804484 commit 94267418aa8cd1f48f99ec9aa83b9908cc804484 Author: skia-deps-roller <skia-deps-roller@chromium.org> Date: Wed Aug 24 01:37:46 2016 Roll src/third_party/skia/ da19f6f3b..ae6377c08 (6 commits). https://chromium.googlesource.com/skia.git/+log/da19f6f3b5f1..ae6377c08e5c $ git log da19f6f3b..ae6377c08 --date=short --no-merges --format='%ad %ae %s' 2016-08-23 msarett Make singleton SkColorSpaces thread safe 2016-08-23 bsalomon Remove SkPixelRef::getTexture() GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264293003 2016-08-23 mtklein GN: extract optional() as a template and use for giflib-dependent code 2016-08-23 mtklein GN: Fix up Ganesh native interface hooks. 2016-08-23 csmartdalton Skip non-AA intersect rects in GrReducedClip 2016-08-23 bungeman SkScalerContextRec::computeMatrices to return status. BUG= 630169 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel TBR=bungeman@google.com Review-Url: https://codereview.chromium.org/2274773002 Cr-Commit-Position: refs/heads/master@{#413930} [modify] https://crrev.com/94267418aa8cd1f48f99ec9aa83b9908cc804484/DEPS
,
Aug 24 2016
Marking as fixed. We already have the information we need to make a determination not to call CGAffineTransformInvert, so the added complexity is just an extra conditional branch. I'll see what can be done to get CoreGraphics to stop writing to stdout, but at least we're avoiding the case where it does so. @Comment 6: it turns out that zero sized text is more common than one would hope. I know of at least one situation where it's done on purpose (to force use of a webfont). There's also those doing it to force whitespace to zero width, see https://css-tricks.com/fighting-the-space-between-inline-block-elements/#article-header-id-3 . Doing a search for "font-size: 0" turns up a somewhat disturbing number of results. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by kenorb@gmail.com
, Jul 22 2016