Closed
Bug 623606
Opened 14 years ago
Closed 14 years ago
Crash [@ nsDisplayClip::nsDisplayClip ] when dragging selected text
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | final+ |
People
(Reporter: scoobidiver, Assigned: tnikkel)
References
Details
(Keywords: crash, regression)
Crash Data
Attachments
(2 files)
1.44 KB,
patch
|
dbaron
:
review+
dbaron
:
approval2.0+
|
Details | Diff | Splinter Review |
3.39 KB,
patch
|
Details | Diff | Splinter Review |
It is a new crash signature that first appears in 4.0b9pre/20110106.
It happens on Linux and Mac OS X.
It is probably a regression from bug 615794.
Signature nsDisplayClip::nsDisplayClip
UUID 8bf15215-e776-4d6a-852a-e54722110106
Time 2011-01-06 07:13:07.72300
Uptime 2095
Install Age 3035 seconds (50.6 minutes) since version was first installed.
Product Firefox
Version 4.0b9pre
Build ID 20110106030349
Branch 2.0
OS Linux
OS Version 0.0.0 Linux 2.6.35.10-74.fc14.i686 #1 SMP Thu Dec 23 16:17:40 UTC 2010 i686
CPU x86
CPU Info GenuineIntel family 6 model 23 stepping 6
Crash Reason SIGSEGV
Crash Address 0x8
Frame Module Signature [Expand] Source
0 libxul.so nsDisplayClip::nsDisplayClip nsIPresShell.h:269
1 libxul.so PresShell::ClipListToRange nsPresShell.cpp:5468
2 libxul.so PresShell::CreateRangePaintInfo nsPresShell.cpp:5584
3 libxul.so PresShell::RenderSelection nsPresShell.cpp:5799
4 libxul.so nsBaseDragService::DrawDrag nsBaseDragService.cpp:498
5 libxul.so nsDragService::InvokeDragSession nsDragService.cpp:248
6 libxul.so nsBaseDragService::InvokeDragSessionWithSelection nsBaseDragService.cpp:318
7 libxul.so nsEventStateManager::DoDefaultDragStart nsEventStateManager.cpp:2310
8 libxul.so nsEventStateManager::GenerateDragGesture nsEventStateManager.cpp:2092
9 libxul.so nsEventStateManager::PreHandleEvent nsEventStateManager.cpp:1170
10 libxul.so PresShell::HandleEventInternal nsPresShell.cpp:6937
11 libxul.so PresShell::HandlePositionedEvent nsPresShell.cpp:6788
12 libxul.so PresShell::HandleEvent nsPresShell.cpp:6638
13 libxul.so nsViewManager::HandleEvent nsViewManager.cpp:1092
14 libxul.so nsViewManager::DispatchEvent nsViewManager.cpp:1070
15 libxul.so HandleEvent nsView.cpp:161
16 libxul.so nsWindow::DispatchEvent nsWindow.cpp:571
17 libxul.so nsWindow::OnMotionNotifyEvent nsWindow.cpp:2613
18 libxul.so motion_notify_event_cb nsWindow.cpp:5644
19 libgtk-x11-2.0.so.0.2200.0 libgtk-x11-2.0.so.0.2200.0@0x14b717
20 libgobject-2.0.so.0.2600.0 libgobject-2.0.so.0.2600.0@0xbbe2
21 libgobject-2.0.so.0.2600.0 libgobject-2.0.so.0.2600.0@0x1e0ef
22 libgobject-2.0.so.0.2600.0 libgobject-2.0.so.0.2600.0@0x26fcc
23 libgobject-2.0.so.0.2600.0 libgobject-2.0.so.0.2600.0@0x27402
24 libgtk-x11-2.0.so.0.2200.0 libgtk-x11-2.0.so.0.2200.0@0x29bb1d
25 libgtk-x11-2.0.so.0.2200.0 libgtk-x11-2.0.so.0.2200.0@0x149444
26 libgtk-x11-2.0.so.0.2200.0 libgtk-x11-2.0.so.0.2200.0@0x149856
27 libgdk-x11-2.0.so.0.2200.0 libgdk-x11-2.0.so.0.2200.0@0x5c38a
28 libglib-2.0.so.0.2600.0 libglib-2.0.so.0.2600.0@0x40191
29 libglib-2.0.so.0.2600.0 libglib-2.0.so.0.2600.0@0x40977
30 libglib-2.0.so.0.2600.0 libglib-2.0.so.0.2600.0@0x40c34
31 libxul.so nsAppShell::ProcessNextNativeEvent nsAppShell.cpp:144
32 libxul.so nsBaseAppShell::DoProcessNextNativeEvent nsBaseAppShell.cpp:173
33 libxul.so nsBaseAppShell::OnProcessNextEvent nsBaseAppShell.cpp:333
34 libxul.so nsThread::ProcessNextEvent nsThread.cpp:597
35 libxul.so NS_ProcessNextEvent_P nsThreadUtils.cpp:250
36 libxul.so mozilla::ipc::MessagePump::Run MessagePump.cpp:134
37 libxul.so MessageLoop::RunInternal message_loop.cc:219
38 libxul.so MessageLoop::Run message_loop.cc:202
39 libxul.so nsBaseAppShell::Run nsBaseAppShell.cpp:192
40 libxul.so nsAppStartup::Run nsAppStartup.cpp:191
41 @0x23b011b
42 libxul.so XRE_main nsAppRunner.cpp:3695
43 firefox-bin main nsBrowserApp.cpp:158
44 libc-2.12.90.so libc-2.12.90.so@0x16e15
45 firefox-bin firefox-bin@0x1390
46 firefox-bin Output nsBrowserApp.cpp:77
47 @0x0
More reports at:
http://crash-stats.mozilla.com/report/list?product=Firefox&query_search=signature&query_type=exact&query=&range_value=4&range_unit=weeks&hang_type=any&process_type=any&plugin_field=&plugin_query_type=&plugin_query=&do_query=1&admin=&signature=nsDisplayClip%3A%3AnsDisplayClip
Reporter | ||
Updated•14 years ago
|
blocking2.0: --- → ?
Reporter | ||
Comment 1•14 years ago
|
||
It is currently #2 top crasher in today's build.
Assignee | ||
Updated•14 years ago
|
Assignee: nobody → tnikkel
Easy to reproduce on Linux. Load page, select some text and try to drag it - immediate crash.
Comment 3•14 years ago
|
||
Updating summary per comment 2. (Confirmed those STR myself.)
Summary: Crash [@ nsDisplayClip::nsDisplayClip ] → Crash [@ nsDisplayClip::nsDisplayClip ] when selecting & dragging text
Updated•14 years ago
|
Summary: Crash [@ nsDisplayClip::nsDisplayClip ] when selecting & dragging text → Crash [@ nsDisplayClip::nsDisplayClip ] when dragging selected text
Doesn't seem to affect Windows builds, for what it's worth.
Assignee | ||
Comment 6•14 years ago
|
||
The problem is that we are creating display items (clips) in ClipListToRange after we have called LeavePresShell.
Assignee | ||
Comment 7•14 years ago
|
||
I'd like to land a fix for this top crasher today.
Attachment #501782 -
Flags: review?
Attachment #501782 -
Flags: approval2.0?
Assignee | ||
Updated•14 years ago
|
Attachment #501782 -
Flags: review? → review?(dbaron)
Comment 9•14 years ago
|
||
I think the Windows version of this crash is [@ xul.dll@0x38357b] since many of the 248 reports mention dragging text someplace in the browser.
Comment 10•14 years ago
|
||
I think this should probably block Beta 9.
Comment on attachment 501782 [details] [diff] [review]
patch
I'll trust you on that being bad. r=dbaron
Attachment #501782 -
Flags: review?(dbaron)
Attachment #501782 -
Flags: review+
Attachment #501782 -
Flags: approval2.0?
Attachment #501782 -
Flags: approval2.0+
Assignee | ||
Comment 12•14 years ago
|
||
The reason for the crash is bug 615794 introduced a call to CurrentPresContext on the display list builder when creating a nsDisplayClip. CurrentPresContext calls CurrentPresShellState() which returns the top of the mPresShellStates stack. And the mPresShellStates stack is pushed to/popped from in EnterPresShell/LeavePresShell. So if we've left the last presshell then the stack is empty and we return a bad pointer.
Assignee | ||
Comment 13•14 years ago
|
||
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
blocking2.0: ? → final+
Assignee | ||
Comment 16•14 years ago
|
||
I wrote a test for this. Unfortunately it doesn't pass on try server on Windows for some reason. I haven't had much time to figure out why.
Updated•13 years ago
|
Crash Signature: [@ nsDisplayClip::nsDisplayClip ]
You need to log in
before you can comment on or make changes to this bug.
Description
•