Bug 1369859

Summary: Crash Annotation GraphicsCriticalError appears when running firefox on ppc64
Product: Red Hat Enterprise Linux 7 Reporter: Ajinkya Patil <ajipatil>
Component: firefoxAssignee: Martin Stransky <stransky>
Status: CLOSED WONTFIX QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.2CC: bugzilla.1.evade, cww, mweetman
Target Milestone: rc   
Target Release: ---   
Hardware: ppc64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1425594 (view as bug list) Environment:
Last Closed: 2019-06-13 16:06:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1420851, 1425594    

Description Ajinkya Patil 2016-08-24 14:39:44 UTC
Description of problem:
When I run firefox with ssh or on direct console an errors appears Crash Annotation GraphicsCriticalError: |[0][GFX1]: Unknown image format 0|

Coredump is available at sshfs kerberos-id.pnq.redhat.com:/foobar /mnt

cd 01680295

Version-Release number of selected component (if applicable):
Red Hat Enterprise Linux 7.2
firefox-45.3.0-1.el7_2.ppc64.

How reproducible:
Always

Steps to Reproduce:
1.Run firefox on ppc64 system
2.
3.

Actual results:
Firefox continuously shows mention error and gets crash after sometime. 

Expected results:
Firefox must run without any errors.

Additional info:
Backtrace :

Core was generated by `/usr/lib64/firefox/firefox '.
Program terminated with signal 11, Segmentation fault.
#0  0x00003fffa8dc75a4 in raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
37	  return INLINE_SYSCALL (tgkill, 3, pid, THREAD_GETMEM (THREAD_SELF, tid),
(gdb) bt
#0  0x00003fffa8dc75a4 in raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
#1  0x00003fffa61c3118 in nsProfileLock::FatalSignalHandler (signo=<optimized out>, info=<optimized out>, context=<optimized out>)
    at /usr/src/debug/firefox-45.2.0/firefox-45.2.0esr/toolkit/profile/nsProfileLock.cpp:185
#2  <signal handler called>
#3  0x00003fffa48c8670 in mozilla::gfx::CopyRect (aSrc=aSrc@entry=0x3fff70f1da50, aDest=aDest@entry=0x3fff722465e0, aSrcRect=..., aDestPoint=...)
    at /usr/src/debug/firefox-45.2.0/firefox-45.2.0esr/gfx/2d/DataSurfaceHelpers.cpp:244
#4  0x00003fffa48d25a8 in mozilla::gfx::GetDataSurfaceInRect (aSurface=<optimized out>, aSurfaceRect=..., aDestRect=..., 
    aEdgeMode=aEdgeMode@entry=mozilla::gfx::EDGE_MODE_NONE) at /usr/src/debug/firefox-45.2.0/firefox-45.2.0esr/gfx/2d/FilterNodeSoftware.cpp:438
#5  0x00003fffa48e20c0 in mozilla::gfx::FilterNodeSoftware::GetInputDataSourceSurface (this=this@entry=0x3fff791fdc40, 
    aInputEnumIndex=aInputEnumIndex@entry=0, aRect=..., aFormatHint=aFormatHint@entry=mozilla::gfx::FilterNodeSoftware::CAN_HANDLE_A8, 
    aEdgeMode=aEdgeMode@entry=mozilla::gfx::EDGE_MODE_NONE, aTransparencyPaddedSourceRect=aTransparencyPaddedSourceRect@entry=0x0)
    at /usr/src/debug/firefox-45.2.0/firefox-45.2.0esr/gfx/2d/FilterNodeSoftware.cpp:744
#6  0x00003fffa48e8244 in mozilla::gfx::FilterNodeTransformSoftware::Render (this=0x3fff791fdc40, aRect=...)
(...)


(gdb) f 3
#3  0x00003fffa48c8670 in mozilla::gfx::CopyRect (aSrc=aSrc@entry=0x3fff70f1da50, aDest=aDest@entry=0x3fff722465e0, aSrcRect=..., aDestPoint=...)
    at /usr/src/debug/firefox-45.2.0/firefox-45.2.0esr/gfx/2d/DataSurfaceHelpers.cpp:244
244	  MOZ_RELEASE_ASSERT(aSrc->GetFormat() == aDest->GetFormat(),
(gdb) l
239	  if (aSrcRect.Overflows() ||
240	      IntRect(aDestPoint, aSrcRect.Size()).Overflows()) {
241	    MOZ_CRASH("GFX: we should never be getting invalid rects at this point");
242	  }
243	
244	  MOZ_RELEASE_ASSERT(aSrc->GetFormat() == aDest->GetFormat(),
245	                     "different surface formats");
246	  MOZ_RELEASE_ASSERT(IntRect(IntPoint(), aSrc->GetSize()).Contains(aSrcRect),
247	                     "source rect too big for source surface");
248	  MOZ_RELEASE_ASSERT(IntRect(IntPoint(), aDest->GetSize()).Contains(IntRect(aDestPoint, aSrcRect.Size())),
(gdb)

Comment 4 David 2017-07-05 00:51:42 UTC
I'm having the same problem with continual 'Crash Annotation GraphicsCriticalError' messages but in a different environment.

* RHEL 7.3
* Firefox 45.4.0 ESR
* Using VMware Horizon view remote desktop access (version 7.1)
** Graphics adapter Gallium 0.4 on llvmpipe LLVM 3.8, 256 bits - 128 MiB vRAM
* On ESXi 6.5
* x86_64 commodity hardware

When I have a Satellite built I'll try updating all the RHEL software.
We also hope to try with Nvidia GRID graphics hardware acceleration which will totally change the graphics drivers (binary blob..uggh) and may improve this.

Comment 5 David 2017-07-05 00:53:54 UTC
For me "about:support" in Firefox shows that the specific errors I'm getting are slightly different to Ajinkya Patil.

"ClearRect with invalid argument 0x...... with 0x0 [0,0]|[44][GFX1-]"

Comment 6 David 2017-07-05 00:57:25 UTC
This could be a fix, for my problem at least;

"comealive.coke.co.nz triggers tons of error output "[GFX1-]: ClearRect with invalid argument 0x0x7f3658840000 with 0x500 [0, 0]""

https://bugzilla.mozilla.org/show_bug.cgi?id=1239835

Comment 7 David 2017-07-07 03:37:39 UTC
Changing graphics drivers (NVIDIA proprietary version 367) didn't resolve the problem for me.

I've been unable to update Firefox for various reasons, but will report back when I can.

Comment 8 Morgan Weetman 2017-09-18 09:09:28 UTC
*** Bug 1492128 has been marked as a duplicate of this bug. ***