Closed Bug 432832 Opened 12 years ago Closed 12 years ago

"aNode is null" error hovering history sidebar

Categories

(Firefox :: Bookmarks & History, defect)

3.0 Branch
defect
Not set

Tracking

()

VERIFIED FIXED
Firefox 3.1b1

People

(Reporter: john.p.baker, Assigned: mak)

References

Details

(Keywords: assertion, regression)

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9pre) Gecko/2008050806 Minefield/3.0pre
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9pre) Gecko/2008050806 Minefield/3.0pre

Error: aNode is null
Source File: file:///C:/Program%20Files/Minefield/modules/utils.js
Line: 183

Reproducible: Always

Steps to Reproduce:
1. New profile
2. Add Bookmark to toolbar
     Name: jkl
 Location: http://seis.bris.ac.uk/~ccjpb
3. Click on jkl to go to page
4. View / Sidebar / History
5. Open Today
6. Move mouse over entries

[7. Select 2nd tab
 8. click on 'jkl'
 9. move mouse over sidebar]
Actual Results:  
Multiple error messages in console.


The URL is a redirect to http://seis.bris.ac.uk/~ccjpb/

In this build line 183 is nodeIsFolder.
Version: unspecified → Trunk
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9pre) Gecko/2008050804 Minefield/3.0pre

I was not able to reproduce this, but the error sounds familiar to me. Maybe it belonged to an issue that was fixed recently?
i can reproduce this with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9) Gecko/2008052903 Firefox/3.0

Error: aNode is null
Source File: file:///Applications/Firefox.app/Contents/MacOS/modules/utils.js
Line: 184
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows 2000 → All
Hardware: PC → All
I confirm the bug. This happens to me for every click on history links, and grows with the time. After you get this problem with history, you'll see it also if you'll open links from bookmarks. Furthermore if you open the same link in new tabs from the history, after some times if you have not much memory a message from OS informs you there's not enough virtual memory, and Fx crashes. One time an ASSERT message was displayed to me (sorry I forgot to save the screenshot).
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1a1pre) Gecko/2008062103 Minefield/3.1a1pre, tested in a blank profile. I reproduced this bug also with Fx 3.0.1

Duplicate of Bug 271131?
Severity: normal → critical
Whiteboard: [DUPEME: bug 271131?]
Here a report I saw of a StumbleUpon user:


I can not get any extension to install below is an example of the error message I receive.

because: Unexpected installation error
Review the Error Console log for more details.
-203

Error: aNode is null
Source File: file:///C:/Program%20Files/Mozilla%20Firefox/modules/utils.js
Line: 183

browser: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0



See http://firefox.group.stumbleupon.com/forum/94983/
(In reply to comment #4)
> Here a report I saw of a StumbleUpon user:

I can't reproduce with a blank profile on trunk.
I see I wasn't clear enough, not all users cannot install extensions on Firefox 3 ...

It's profile dependant, with a new profile, the user don't encounter the problem.
The steps in Comment #0 are reproducible also in a blank profile. If you want to know what caused the problem to that user, ask him to disable extensions one-by-one and see what extension caused the problem.
(In reply to comment #3)
> Duplicate of Bug 271131?
> 

Not at all related.
Severity: critical → normal
Keywords: crash, mlk
Whiteboard: [DUPEME: bug 271131?]
I am seeing this bug in 3.01 (Windows XP). I have a simpler/alternative way to reproduce it from a newly created profile.

1. Open the history sidebar
2. Open any site listed in the the history sidebar using the mouse or keyboard.  If nothing is listed there yet, then visit any site (eg news.yahoo.com) so that one shows up. All Ctrl/Shift/Enter/Leftclick/Middleclick combinations (that I tried) cause the problem.
3. Hover the mouse over any item in the history sidebar and watch a horde of "aNode is null" errors scroll by.

Some new observations:
A. Once the problem is initially triggered (say by clicking on a history item), other actions beside hovering also produce errors.
A1. Navigating the history sidebar using the cursor keys seems to produce one error per keypress (though not 100% of the time).
A2. With the sidebar still focused (click somewhere in it), switching to or away from the window produces one error each.

B. The problem goes away, or gets reset, if you close the sidebar and then reopen it. But it can be triggered again as before, by just clicking on a sidebar history entry.

C. It is odd that the bookmarks sidebar does not have the same problem since they seem so closely related, ie they use a lot of the same or similar code.
I think I found/fixed the problem.

I traced the execution a bit:

modules\utils.js, line 183: nodeIsFolder
called by
modules\utils.js, line 358: nodeIsLivemarkContainer
called by
treeview.js, line 921: getCellProperties

In getCellProperties, starting at line 888:

    if (!properties) {
      properties = new Array();
      var nodeType = node.type;
-->                                 <-- ...to here, so itemId is defined
      if (PlacesUtils.containerTypes.indexOf(nodeType) != -1) {
-->     var itemId = node.itemId;   <-- Move this line up from here...
        if (nodeType == Ci.nsINavHistoryResultNode.RESULT_TYPE_QUERY) {...}
        ...
        if (itemId != -1) {...}
      }
      else if (nodeType == Ci.nsINavHistoryResultNode.RESULT_TYPE_SEPARATOR)
        properties.push(this._getAtomFor("separator"));
-->   else if (itemId != -1) { // bookmark nodes   <-- itemID is undefined
        if (PlacesUtils.nodeIsLivemarkContainer(node.parent))
          properties.push(this._getAtomFor("livemarkItem"));
      }
      ...
    }

Presuming the nested structure of the IF's is correct, then this just seems like a typo. The problem is itemId is initialized inside an IF block even though it is needed later outside it, in the last "else if" shown above.  So just move the init two lines up (as shown).

Errors gone after change.  Can anyone else can verify this?
Analysis in comment #10 looks right to me.

Code was introduced in bug 424286.
Blocks: 424286
Assignee: nobody → mak77
Attached patch patchSplinter Review
yes the analysis is correct, "if" structure is correct so most likely a typo.

Thank you!
Attachment #335884 - Flags: review?(mano)
Status: NEW → ASSIGNED
Keywords: qawanted
http://hg.mozilla.org/mozilla-central/rev/aa4bd40eef6c
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 3.1
Verified with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b1pre) Gecko/20080902041619 Minefield/3.1b1pre ID:20080902041619
Status: RESOLVED → VERIFIED
Target Milestone: Firefox 3.1 → Firefox 3.1b1
Version: Trunk → 3.0 Branch
Bug 451915 - move Firefox/Places bugs to Firefox/Bookmarks and History. Remove all bugspam from this move by filtering for the string "places-to-b-and-h".

In Thunderbird 3.0b, you do that as follows:
Tools | Message Filters
Make sure the correct account is selected. Click "New"
Conditions: Body   contains   places-to-b-and-h
Change the action to "Delete Message".
Select "Manually Run" from the dropdown at the top.
Click OK.

Select the filter in the list, make sure "Inbox" is selected at the bottom, and click "Run Now". This should delete all the bugspam. You can then delete the filter.

Gerv
Component: Places → Bookmarks & History
QA Contact: places → bookmarks
You need to log in before you can comment on or make changes to this bug.