Open Bug 1709679 Opened 4 months ago Updated 3 hours ago

Some images in Google Docs sometimes turn white/blank

Categories

(Core :: Graphics: WebRender, defect, P3)

x86
Windows
defect

Tracking

()

Tracking Status
firefox90 --- affected
firefox92 --- affected
firefox93 --- affected
firefox94 --- affected

People

(Reporter: cpeterson, Unassigned, NeedInfo)

References

(Depends on 1 open bug)

Details

Attachments

(1 file)

Attached image image.png

When reading Google Docs that contain images I've pasted into the docs, sometimes some of the images turn white/blank. The problem usually seems to affect images that I pasted into the doc minutes or hours earlier that day, not when I immediately paste the image into the doc. See the attached screenshot.

This problem seems to have gotten worse during the 90 Nightly cycle. I only see this problem when running a 32-bit Firefox build (on 64-bit Windows OS). I typically have about 5-10 Google Docs tabs open at the same time. Perhaps this is a graphics OOM issue like bug 1703839?

I see this problem with or without Fission.

Potentially you could use the dev tools to find the uri of the image in question and then use a verbose memory report to find that uri, it would have information about what imagelib thinks is the status of the image.

Blocks: gfx-triage
Severity: -- → S3
Component: Graphics → Graphics: WebRender

A full memory report would be interesting too.

If the raster image fails to decode because of an OOM in the content process, then the canvas probably shows nothing. Bug 1703839 and friends are a little different, where the GPU process ran out of virtual memory -- the image would have been decoded -- and we would crash the GPU process explicitly in that case.

Depends on: 1711137

(In reply to Timothy Nikkel (:tnikkel) from comment #1)

Potentially you could use the dev tools to find the uri of the image in question and then use a verbose memory report to find that uri, it would have information about what imagelib thinks is the status of the image.

The inspector shows the blank image element is:

<image xlink:href="blob:https://docs.google.com/f90b21d2-359c-4ef7-abc6-7d790fc2bc09" width="100%" height="100%" preserveAspectRatio="none" transform="scale(0.0005)" transform-origin="0 0"><title></title><desc></desc></image>

The web console warns:

Cannot access blob URL “blob:https://docs.google.com/f90b21d2-359c-4ef7-abc6-7d790fc2bc09” from a different agent cluster.
Cannot access blob URL “blob:https://docs.google.com/f90b21d2-359c-4ef7-abc6-7d790fc2bc09” from a different agent cluster.

Info about that blob URL in about:memory:

├───31,045,584 B (08.28%) -- images
│   ├──30,993,104 B (08.27%) -- content
│   │  ├──20,966,256 B (05.59%) -- raster/used
│   │  │  ├──14,882,720 B (03.97%) -- progress=18f
│   │  │  │  ├───6,279,440 B (01.68%) -- image(2048x503, blob:https://docs.google.com/f90b21d2-359c-4ef7-abc6-7d790fc2bc09)
│   │  │  │  │   ├──6,021,312 B (01.61%) -- unlocked/types=2000
│   │  │  │  │   │  ├──3,178,592 B (00.85%) -- surface(1797x442)
│   │  │  │  │   │  │  ├──3,178,496 B (00.85%) ── decoded-nonheap
│   │  │  │  │   │  │  └─────────96 B (00.00%) ── decoded-heap
│   │  │  │  │   │  └──2,842,720 B (00.76%) -- surface(1702x417)
│   │  │  │  │   │     ├──2,842,624 B (00.76%) ── decoded-nonheap
│   │  │  │  │   │     └─────────96 B (00.00%) ── decoded-heap
│   │  │  │  │   └────258,128 B (00.07%) ── source

...

514,942 B (100.0%) -- memory-blob-urls
└──514,942 B (100.0%) -- owner(https://docs.google.com/document/u/1/d/14THPtVTl3jwdvkrnuxybn678N3F0-84-VjsMR4wlq0c/edit)
   ├──257,471 B (50.00%) ── blob:https://docs.google.com/e88b8584-6cef-481a-9d88-2bf5fdce79d6
   └──257,471 B (50.00%) ── blob:https://docs.google.com/f90b21d2-359c-4ef7-abc6-7d790fc2bc09

Also, the GPU process section of about:memory warns:

WARNING: the following values are negative or unreasonably large.

    explicit/gfx
    explicit/gfx/webrender
    explicit/gfx/webrender/swgl
    explicit/heap-unclassified 

This indicates a defect in one or more memory reporters. The invalid values are highlighted.
Explicit Allocations

476,663,808 B (100.0%) -- explicit
├──1,371,045,144 B (287.63%) -- gfx [?!]
│  ├──1,371,045,144 B (287.63%) -- webrender [?!]
│  │  ├──1,343,361,312 B (281.83%) ── swgl [?!]
...
└──-903,281,400 B (-189.50%) ── heap-unclassified [?!]
Flags: needinfo?(aosmond)

(In reply to Jim Mathies [:jimm] from comment #2)

A full memory report would be interesting too.

Is attaching the full memory report to a public bug safe?

I saved a full memory report file, but the memory report is from my regular user profile, which is logged into my Google and Bugzilla accounts. I saved both a full and "anonymized" version of the memory report.

The memory report looks okay, I'm thinking the "different agent cluster" might be the reason. You could try flipping privacy.partition.bloburl_per_agent_cluster to false and see if it still happens.

(In reply to Chris Peterson [:cpeterson] from comment #4)

The web console warns:

Cannot access blob URL “blob:https://docs.google.com/f90b21d2-359c-4ef7-abc6-7d790fc2bc09” from a different agent cluster.
Cannot access blob URL “blob:https://docs.google.com/f90b21d2-359c-4ef7-abc6-7d790fc2bc09” from a different agent cluster.

@ Baku, could this "image pasted into a Google Doc is blank" bug be a privacy.partition.bloburl_per_agent_cluster bug?

Nika says: "If you're getting that error, it doesn't look like [a WebRender OOM]. Sounds like a privacy.partition.bloburl_per_agent_cluster bug. perhaps the blob url is being created by a gdocs service worker or shared worker."

kmag says: "I think BroadcastChannel may be a possibility too... If there are multiple docs tabs and they're trying to conserve resources."

Flags: needinfo?(amarchesini)

I have been testing with privacy.partition.bloburl_per_agent_cluster = false for two days and I just reproduced the blank images problem again. I did have Fission disabled for the last two days and I re-enabled it just this morning and minutes later reproduced this bug. Perhaps there is a connection with Fission, but I know I have seen this bug without Fission (comment 0).

No longer blocks: gfx-triage
Priority: -- → P3

I'll try to fix the memory reporter.

Flags: needinfo?(jmuizelaar)

I still see this disappearing image problem almost every day using a 32-bit build of Firefox Nightly on Windows 10 and 11 (with or without SW-WR), even when I don't have a ton of tabs or Google Docs open.

You need to log in before you can comment on or make changes to this bug.