Closed Bug 1621887 Opened 5 years ago Closed 7 months ago

Crash Annotation GraphicsCriticalError: |[0][GFX1-]: Updating unknown shared surface with webrender

Categories

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

68 Branch
defect

Tracking

()

RESOLVED INACTIVE
Tracking Status
firefox78 --- wontfix

People

(Reporter: wangqing-hf, Unassigned, NeedInfo)

References

(Regression, )

Details

(Keywords: regression)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3189.0 Safari/537.36

Steps to reproduce:

  1. Open Webrender
  2. Open website: https://v.youku.com/v_show/id_XNDU2OTc4ODk3Ng==.html?s=2b70efbfbd0fefbfbd39&scm=20140719.rcmd.15319.show_2b70efbfbd0fefbfbd39

Actual results:

terminal display:
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: Updating unknown shared surface: 51539607647 (t=1345.44) [GFX1-]: Updating unknown shared surface: 51539607647
IPDL protocol error: Handler returned error code!

###!!! [Parent][DispatchAsyncMessage] Error: PWebRenderBridge::Msg_UpdateResources Processing error: message was deserialized, but the handler returned false (indicating failure)

Expected results:

No such error messages

Depends on: 1469964
OS: Unspecified → Linux
Hardware: Unspecified → Desktop

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Graphics: WebRender
Product: Firefox → Core

[WebRenderBridgeParent::UpdateExternalImage] key=25769803860 extId=51539607608
[WebRenderBridgeParent::UpdateExternalImage] key=25769803860 extId=51539607609
[WebRenderBridgeParent::UpdateExternalImage] key=25769803860 extId=51539607610
[WebRenderBridgeParent::DeleteImage] key=25769803860
[WebRenderBridgeParent::UpdateExternalImage] key=25769803860 extId=51539607615
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: Updating unknown shared surface: 25769803860 extId:51539607615 (t=114.367) [GFX1-]: Updating unknown shared surface: 25769803860 extId:51539607615
IPDL protocol error: Handler returned error code!

###!!! [Parent][DispatchAsyncMessage] Error: PWebRenderBridge::Msg_UpdateResources Processing error: message was deserialized, but the handler returned false (indicating failure)

[WebRenderBridgeParent::AddExternalImage] key=30064771104 extId=77309411329

Logging into the trace found that when the page was switched to render, the ImageKey was deleted but still entered the UpdateExtenalImage function

Flags: needinfo?(kats)
Priority: -- → P2

[SharedSurfacesAnimation::SetCurrentFrame] Running UpdateExternalImage (mImageKey=25769803867)
[IpcResourceUpdateQueue::UpdateExternalImage] Running.......
[ImageContainer::~ImageContainer()] Running......
[SharedSurfacesAnimation::Destroy] mImageKey=25769803867
[WebRenderBridgeParent::DeleteImage] key=25769803867
[WebRenderBridgeParent::UpdateExternalImage] key=25769803867 extId=64424509472
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: Updating unknown shared surface: 25769803867 extId:64424509472 (t=56.4126) [GFX1-]: Updating unknown shared surface: 25769803867 extId:64424509472
IPDL protocol error: Handler returned error code!

###!!! [Parent][DispatchAsyncMessage] Error: PWebRenderBridge::Msg_UpdateResources Processing error: message was deserialized, but the handler returned false (indicating failure)

Can be known from the log, Between IpcResourceUpdateQueue::UpdateExternalImage and WebRenderBridgeParent::UpdateExternalImage run:
[ImageContainer::~ImageContainer()] Running......
[SharedSurfacesAnimation::Destroy] mImageKey=25769803867
[WebRenderBridgeParent::DeleteImage] key=25769803867

This lead to mImageKey=25769803867 being deleted before WebRenderBridgeParent::UpdateExternalImage, But the operation already exists with IpcResourceUpdateQueue::mUpdates

It's been a while since I've looked at this code; Sotaro is more familiar with this. Also at the moment I'm busy battling tsan regressions so I wouldn't be able to look at this for a few days anyway. Redirecting needinfo, but if Sotaro doesn't have cycles at the moment I can pick this up later in the week.

Flags: needinfo?(kats) → needinfo?(sotaro.ikeda.g)
Assignee: nobody → mutao-hf

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #4)

It's been a while since I've looked at this code; Sotaro is more familiar with this. Also at the moment I'm busy battling tsan regressions so I wouldn't be able to look at this for a few days anyway. Redirecting needinfo, but if Sotaro doesn't have cycles at the moment I can pick this up later in the week.

I could not reproduce the problem of STR in comment 0. The patch looks good. But it seems better to be reviewed by aosmond.

Flags: needinfo?(sotaro.ikeda.g)
Status: UNCONFIRMED → ASSIGNED
No longer depends on: 1469964
Ever confirmed: true
Keywords: regression
OS: Linux → All
Regressed by: 1469964
Hardware: Desktop → All
Has Regression Range: --- → yes
See Also: → 1553522
Attachment #9133521 - Attachment description: Bug 1621887 - Add IpcResourceUpdateQueue::Clear() in SharedSurfacesAnimation::Destroy(). r=jbonisteel → Bug 1621887 - Add IpcResourceUpdateQueue::ClearImageKey in SharedSurfacesAnimation::Destroy(). r=jbonisteel
Attachment #9133521 - Attachment description: Bug 1621887 - Add IpcResourceUpdateQueue::ClearImageKey in SharedSurfacesAnimation::Destroy(). r=jbonisteel → Bug 1621887 - Add condition to determine whether delete ImageKey in SharedSurfacesAnimation::Destroy(). r=jbonisteel
See Also: → 1645841

I can deterministically reproduce browser behavior leading to an "Updating unknown shared surface" error message, however there is no subsequent crash. On latest ASAN Nightly Linux (20210325161138) with Fission enabled I'm doing the following:

  1. Have about:support open
  2. Switch to a slack.com tab and enlarge an image I got send
  3. Once I close the enlarged image the error message "Updating unknown shared surface" is generated.

The behavior does not reproduce under rr (seems to fallback on software webrender, this might be unrelated though).
Attaching gdb is not really helpful due to the lack of symbols for locals. When I compile ASAN Firefox from trunk myself I get better symbols but the behavior does not reproduce.
Is it possible to retrieve complete symbols for the Mozilla-provided executables?

The bug assignee didn't login in Bugzilla in the last months and this bug has priority 'P2'.
:gw, could you have a look please?
For more information, please visit auto_nag documentation.

Assignee: mutao-hf → nobody
Status: ASSIGNED → NEW
Flags: needinfo?(gwatson)
Flags: needinfo?(gwatson) → needinfo?(aosmond)
Severity: normal → S3
Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: