New issue
Advanced search Search tips

Issue 615911 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

Occasional DrMemory GDI Usage Error

Project Member Reported by thestig@chromium.org, May 31 2016

Issue description

https://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
}
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 31 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/911b9658f3ac2cf8f61ea2a5c443322fcb251e7f

commit 911b9658f3ac2cf8f61ea2a5c443322fcb251e7f
Author: thestig <thestig@chromium.org>
Date: Tue May 31 00:23:10 2016

DrMemory: Suppress a couple frequently occurring errors.

BUG=615121, 615911 
TBR=oshima@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2021973002
Cr-Commit-Position: refs/heads/master@{#396760}

[modify] https://crrev.com/911b9658f3ac2cf8f61ea2a5c443322fcb251e7f/tools/valgrind/drmemory/suppressions.txt

Cc: bunge...@chromium.org
Ben, any thought as to whether this is us doing something wrong or being used wrong?
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.
Status: WontFix (was: Untriaged)
DrMemory retired.

Sign in to add a comment