Occasional DrMemory GDI Usage Error |
|||
Issue descriptionhttps://build.chromium.org/p/chromium.memory.fyi/builders/Windows%20Unit%20%28DrMemory%20x64%29/builds/1413 https://build.chromium.org/p/chromium.memory.fyi/builders/Windows%20Unit%20%28DrMemory%20x64%29/builds/1420 GDI USAGE ERROR: DC 0x00000000030116fc used for select was created by now-exited thread 14400 by duplicating NULL, which makes it a thread-private DC # 0 skia.dll!HDCOffscreen::draw [third_party\skia\src\ports\skfonthost_win.cpp:504] # 1 skia.dll!SkScalerContext_GDI::generateImage [third_party\skia\src\ports\skfonthost_win.cpp:1240] # 2 skia.dll!SkScalerContext::getImage [third_party\skia\src\core\skscalercontext.cpp:509] # 3 net.dll!net::HttpStreamFactoryImpl::Job::DoInitConnection [net\http\http_stream_factory_impl_job.cc:942] # 4 skia.dll!SkFindAndPlaceGlyph::ProcessPosText<> [third_party\skia\src\core\skfindandplaceglyph.h:685] # 5 skia.dll!SkDraw::drawPosText [third_party\skia\src\core\skdraw.cpp:1676] # 6 skia.dll!SkBitmapDevice::drawPosText [third_party\skia\src\core\skbitmapdevice.cpp:349] # 7 skia.dll!SkCanvas::onDrawPosText [third_party\skia\src\core\skcanvas.cpp:2595] # 8 skia.dll!SkCanvas::drawPosText [third_party\skia\src\core\skcanvas.cpp:2670] # 9 gfx.dll!gfx::internal::SkiaTextRenderer::DrawPosText [ui\gfx\render_text.cc:268] #10 gfx.dll!gfx::RenderTextHarfBuzz::DrawVisualText [ui\gfx\render_text_harfbuzz.cc:1177] #11 gfx.dll!gfx::RenderText::Draw [ui\gfx\render_text.cc:833] #12 gfx.dll!gfx::Canvas::DrawStringRectWithShadows [ui\gfx\canvas_skia.cc:271] #13 gfx.dll!gfx::Canvas::DrawStringRectWithFlags [ui\gfx\canvas.cc:441] #14 extensions::ExtensionIconPlaceholder::Draw [extensions\browser\extension_icon_placeholder.cc:97] #15 gfx.dll!gfx::CanvasImageSource::GetImageForScale [ui\gfx\image\canvas_image_source.cc:22] #16 gfx.dll!gfx::internal::ImageSkiaStorage::FindRepresentation [ui\gfx\image\image_skia.cc:240] #17 gfx.dll!gfx::ImageSkia::GetRepresentation [ui\gfx\image\image_skia.cc:414] #18 extensions::`anonymous namespace'::ExtensionActionIconFactoryTest_NoIcons_Test::TestBody [chrome\browser\extensions\extension_action_icon_factory_unittest.cc:219] #19 testing::Test::Run [testing\gtest\src\gtest.cc:2474] Note: @0:38:45.474 in thread 812 Note: DC was allocated here: Note: # 0 system call NtGdiCreateCompatibleDC Note: # 1 GDI32.dll!CreateCompatibleDC +0x11 (0x000007feff141c76 <GDI32.dll+0x1c76>) Note: # 2 skia.dll!HDCOffscreen::draw [third_party\skia\src\ports\skfonthost_win.cpp:457] Note: # 3 skia.dll!SkScalerContext_GDI::generateImage [third_party\skia\src\ports\skfonthost_win.cpp:1240] Note: # 4 skia.dll!SkScalerContext::getImage [third_party\skia\src\core\skscalercontext.cpp:509] Note: # 5 skia.dll!SkGlyphCache::findImage [third_party\skia\src\core\skglyphcache.cpp:209] Note: # 6 skia.dll!DrawOneGlyph::getImageData [third_party\skia\src\core\skdraw.cpp:1528] Note: # 7 skia.dll!DrawOneGlyph::operator() [third_party\skia\src\core\skdraw.cpp:1506] Note: # 8 skia.dll!SkFindAndPlaceGlyph::GlyphFindAndPlaceFullPixel<>::findAndPositionGlyph [third_party\skia\src\core\skfindandplaceglyph.h:504] Note: # 9 skia.dll!SkFindAndPlaceGlyph::ProcessPosText<> [third_party\skia\src\core\skfindandplaceglyph.h:685] Note: #10 skia.dll!SkDraw::drawPosText [third_party\skia\src\core\skdraw.cpp:1676] Note: #11 skia.dll!SkBitmapDevice::drawPosText [third_party\skia\src\core\skbitmapdevice.cpp:349] Note: #12 skia.dll!SkCanvas::onDrawPosText [third_party\skia\src\core\skcanvas.cpp:2595] Note: #13 skia.dll!SkCanvas::drawPosText [third_party\skia\src\core\skcanvas.cpp:2670] Note: #14 skia.dll!SkRecords::Draw::draw<> [third_party\skia\src\core\skrecorddraw.cpp:110] Note: #15 skia.dll!SkRecordDraw [third_party\skia\src\core\skrecorddraw.cpp:55] Note: #16 skia.dll!SkBigPicture::playback [third_party\skia\src\core\skbigpicture.cpp:37] Note: #17 skia.dll!SkCanvas::onDrawPicture [third_party\skia\src\core\skcanvas.cpp:2971] Note: #18 skia.dll!SkCanvas::drawPicture [third_party\skia\src\core\skcanvas.cpp:2942] Note: #19 cc.dll!cc::DrawingDisplayItem::Raster [cc\playback\drawing_display_item.cc:102] Note: #20 cc.dll!cc::DisplayItemList::Raster [cc\playback\display_item_list.cc:126] Note: #21 cc.dll!cc::RasterSource::RasterCommon [cc\playback\raster_source.cc:204] Note: #22 cc.dll!cc::RasterSource::PlaybackToCanvas [cc\playback\raster_source.cc:95] Note: #23 ntdll.dll!RtlUserThreadStart +0x20 (0x000000007750b891 <ntdll.dll+0x2b891>) Note: #24 cc.dll!cc::RasterBufferProvider::PlaybackToMemory [cc\raster\raster_buffer_provider.cc:79] Note: #25 cc.dll!cc::OneCopyRasterBufferProvider::PlaybackToStagingBuffer [cc\raster\one_copy_raster_buffer_provider.cc:208] Note: #26 cc.dll!cc::OneCopyRasterBufferProvider::PlaybackAndCopyOnWorkerThread [cc\raster\one_copy_raster_buffer_provider.cc:155] Note: #27 cc.dll!cc::`anonymous namespace'::RasterBufferImpl::Playback [cc\raster\one_copy_raster_buffer_provider.cc:49] Note: #28 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::RunOnWorkerThread [cc\tiles\tile_manager.cc:91] Note: #29 cc.dll!cc::SingleThreadTaskGraphRunner::RunTaskWithLockAcquired [cc\raster\single_thread_task_graph_runner.cc:153] Note: #30 cc.dll!cc::SingleThreadTaskGraphRunner::Run [cc\raster\single_thread_task_graph_runner.cc:117] Note: #31 base.dll!base::DelegateSimpleThread::Run [base\threading\simple_thread.cc:87] Note: #32 base.dll!base::SimpleThread::ThreadMain [base\threading\simple_thread.cc:66] Note: #33 base.dll!base::`anonymous namespace'::ThreadFunc [base\threading\platform_thread_win.cc:84] Note: #34 KERNEL32.dll!BaseThreadInitThunk +0xc (0x00000000772d59cd <KERNEL32.dll+0x159cd>) Suppression (error hash=#37767581C1270D7E#): For more info on using suppressions see http://dev.chromium.org/developers/how-tos/using-drmemory#TOC-Suppressing-error-reports-from-the- { GDI USAGE ERROR name=<insert_a_suppression_name_here> skia.dll!HDCOffscreen::draw skia.dll!SkScalerContext_GDI::generateImage skia.dll!SkScalerContext::getImage net.dll!net::HttpStreamFactoryImpl::Job::DoInitConnection skia.dll!SkFindAndPlaceGlyph::ProcessPosText<> skia.dll!SkDraw::drawPosText skia.dll!SkBitmapDevice::drawPosText skia.dll!SkCanvas::onDrawPosText skia.dll!SkCanvas::drawPosText gfx.dll!gfx::internal::SkiaTextRenderer::DrawPosText gfx.dll!gfx::RenderTextHarfBuzz::DrawVisualText gfx.dll!gfx::RenderText::Draw gfx.dll!gfx::Canvas::DrawStringRectWithShadows gfx.dll!gfx::Canvas::DrawStringRectWithFlags *!extensions::ExtensionIconPlaceholder::Draw gfx.dll!gfx::CanvasImageSource::GetImageForScale gfx.dll!gfx::internal::ImageSkiaStorage::FindRepresentation gfx.dll!gfx::ImageSkia::GetRepresentation *!extensions::`anonymous namespace'::ExtensionActionIconFactoryTest_NoIcons_Test::TestBody *!testing::Test::Run }
,
May 31 2016
Ben, any thought as to whether this is us doing something wrong or being used wrong?
,
May 31 2016
This is a known issue, https://bugs.chromium.org/p/skia/issues/detail?id=1579 . The issue is that a device contexts have thread affinity in the sense that they are supposed to be destroyed on the same thread on which they were created. Fixing this has been low priority due to not having any real effect on the end user and only being an issue on GDI which is being phased out.
,
Jun 8 2017
DrMemory retired. |
|||
►
Sign in to add a comment |
|||
Comment 1 by bugdroid1@chromium.org
, May 31 2016