Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-48822

Chromium memory leak in SkBitmap::copyPixelsTo

    XMLWordPrintable

Details

    • 2ccb9f03c534c28b1c3d2f2d09d131a70cdfe9f3 cc3a0d7c39196937edf98c80d0c0a9f96443f6b6

    Description

      The Valgrind log attached was got when running the 'quicknanobrowser' example from QtWebEngine by accessing website http://hao.qianjiayue.com/appall/application/cncto/pet_1/ and sliding each photo by pressing Enter key and Left or Right key. Memory consumption of QtWebEngineProcess always increases.

      =24477== Source and destination overlap in memcpy(0x22163260, 0x22163260,
      32592)
      ==24477== at 0x4C2A690: memcpy (mc_replace_strmem.c:838)
      ==24477== by 0x8447CAA: SkBitmap::copyPixelsTo(void*, unsigned long,
      unsigned long, bool) const (SkBitmap.cpp:454)
      ==24477== by 0xA3E3AFB:
      blink::ImageFrameGenerator::decodeAndScale(SkImageInfo const&, unsigned
      long, void*, unsigned long) (in /opt/src/michael/Qtwebengine_release/build_pc/
      install/lib/libQt5WebEngineCore.so.5.5.0)
      ==24477== by 0xA3CC354:
      blink::DecodingImageGenerator::onGetPixels(SkImageInfo const&, void*,
      unsigned long, unsigned int*, int*) (in /opt/src/michael/Qtwebengine_release/b
      uild_pc/install/lib/libQt5WebEngineCore.so.5.5.0)
      ==24477== by 0x84D65B9: SkImageGenerator::getPixels(SkImageInfo const&,
      void*, unsigned long, unsigned int*, int*) (SkImageGenerator.cpp:42)
      ==24477== by 0x84AD174:
      SkDiscardablePixelRef::onNewLockPixels(SkPixelRef::LockRec*)
      (SkDiscardablePixelRef.cpp:67)
      ==24477== by 0x851FEFF: SkPixelRef::lockPixels(SkPixelRef::LockRec*)
      (SkPixelRef.cpp:147)
      ==24477== by 0x8520008: SkPixelRef::lockPixels() (SkPixelRef.cpp:160)
      ==24477== by 0x84472D3: SkBitmap::lockPixels() const (SkBitmap.cpp:225)
      ==24477== by 0x844BE30: SkAutoLockPixels::SkAutoLockPixels(SkBitmap
      const&, bool) (SkBitmap.h:785)
      ==24477== by 0x846FA0D: SkBitmapScaler::Resize(SkBitmap*, SkBitmap
      const&, SkBitmapScaler::ResizeMethod, float, float, SkBitmap::Allocator*)
      (SkBitmapScaler.cpp:285)
      ==24477== by 0x8467BAA: SkBitmapProcState::possiblyScaleImage()
      (SkBitmapProcState.cpp:179)
      

      Looking at it, it seems to be it is a known bug in Chromium and has been fixed in July. See: https://code.google.com/p/chromium/issues/detail?id=422485&can=1&q=Stability%3DValgrind&colspec=ID%20Stars%20Pri%20Area%20Feature%20Type%20Status%20Summary%20Modified%20Owner%20Mstone%20OS&start=100

      Attachments

        For Gerrit Dashboard: QTBUG-48822
        # Subject Branch Project Status CR V

        Activity

          People

            mibrunin Michael Bruning
            qtcomsupport Qt Support
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes