Viewer Crash Reporting
Revision as of 09:49, 1 May 2008 by Ramzi Linden (talk | contribs) (→Viewer Crash Hunters: added more explanation)
Objectives
- Report all crashes properly (opt-out available)
- Make crash report processing automatic and immediate
- Make crash report data useful
Motivation
Studio Shiny has committed to making the Second Life viewer more stable. This involves finding and fixing viewer crashes. We have found that the existing crash reporter doesn't help us as much as it should. It doesn't always give us the data we need to investigate crash patterns, doesn't scale to SL's current size, doesn't always report a crash, in fact, sometimes the crash reporter itself crashes.
Tasks
Phase 1
- Create central library of crash reporter functionality
- Get near 100% of all crashes reported with the call stack included, which pinpoints the function or method in which the crash occurred.
Phase 2
- Refinements to the crash reporter functionality
- properly capture crashes before login or viewer initialization
Viewer Crash Hunters
- A team of engineers will utilize the new Viewer Crash Reporter to identify the highest reported crashes and investigate the call stacks to pinpoint bugs.
- The project is gated on the adoption of
- the 1.19.0.5 viewer which utilizes the new crash reporter.
- the 1.19.1 viewer which also provides stack info on "deadlocks" (in which a crash occurs, but in a different thread.)
- implementation of a thread watchdog process (in 1.21 viewer) to detect deadlock situation and force a "normal" crash that reports the crashing thread
- Crash Hunters will analyze crashes and make fixes into the Release Candidate (RC) branch
- This is a more aggressive introduction of code into the RC branch cycle, which may in the short term increase the "beta" nature of the Release Candidate during its early iterations (RC1, RC2)
- the benefit will be a longer term goal of reducing the crash rate dramatically for all Residents by the time that a Release Candidate becomes the final candidate (RC4, RC5).
- Most crashes currently appear in the rendering code, so many fixes (and possible new bugs!) will appear in rendering options.
Some examples of results:
Fixes in Branch_1-19-1-Viewer
- VWR-4959: WindLight: "Sculpted Prim" preview makes a huge distorted mess of polygons (and possible crash)
- VWR-5351: Crash when opening the expanded media control
- VWR-5499: Release candidate crashes on Mac when looking with option-E
- crash in LLViewerRegion::getCapability
- Crash in apr_file_lock
- Crash on LLVertexBuffer::destroyGLBuffer
- Crash: 'Error parsing skeleton XML file'
- Crash in LLImageBase::allocateData
- LLViewerPartGroup::updateParticles
- crash when quitting from login screen
- Crash in gunzip_file
- Crash in LLTabContainer::draw() if selected tab is invalid
- Notecards crash users when passed from person to person
- Opening a full screen window on some ati cards causes a crash on login
- Crash in LLObjectSelection::addNodeAtEnd
- Crash rendering an area with a lot of sculpties
- RC crashes on the 4th attempt to connect during DNS failure.
- Elminate crash-prone LLLinkedList, LLDoubleLinkedList, LLSkipList, LLPtrSkipLost, and LLAssocList from newview
- Apparent fix: Crash VLLVolume::unref (RC 1.19.1 build 0)
- Apparent fix: crash in LLVOVolume::processUpdateMessage
Fixes in Branch_1-20-Viewer
- VWR-5382: Constant crashing using inventory in 1.19.1 RC0
- VWR-3822: ATI crashes on startup when in 16 bit color mode
- VBO related crash on ATI R100 cards
- Occlusion crash on SIS cards
- Get rid of a sculptie assert
- 1.20 RC crashes with attached obj using Avatar Rendering Cost
- Crash on startup (1.19.1 RC)
- crash in LLViewerImageList::updateImagesFetchTextures
- Crash in LLViewerJointMesh::updateFaceData
- crash in LLViewerRegion::setCapability
- crash on LLVertexBuffer::destroyGLBuffer
- crash on LLVOVolume::sculpt - newview/llvovolume.cpp
- crash in LLImageBase::generateMip
- crash in LLImageRaw::copyLineScaled
- crash in LLFloaterIMPanel when starting conference
- crash in LLFace::renderSelected.
- Crash on error: mapBuffer returns 0
- crash on LLUIImageList::onUIImageLoaded
- crash on LLViewerJointMesh::updateFaceData
- Possible fix: VWR-6299: In Stanlee at ~5,247,750 I crash crash crash.
- Possible fix: VWR-6343: 1.20 causes fatal driver instability with some nVidia drivers