BStore_getChildren (void 0) is undefined



8 years ago
6 years ago


(Reporter: rnewman, Unassigned)


Firefox Tracking Flags

(Not tracked)





8 years ago
2010-12-13 22:50:44     Engine.Bookmarks     DEBUG   Engine syncIDs: KSrmLWgA8N_U,iKBJ-zBIHTUD
2010-12-13 22:50:44     Engine.Bookmarks     DEBUG   Resetting bookmarks last sync time
2010-12-13 22:50:44     Engine.Bookmarks     DEBUG   First sync, uploading all items
2010-12-13 22:50:54     Engine.Bookmarks     DEBUG   Total (ms): sync 9771, syncStartup 9152, resetLastSync 0, syncCleanup 0, resetClient 0
2010-12-13 22:50:54     Service.Main         DEBUG   bookmarks failed: (void 0) is undefined JS Stack trace: BStore_getChildren((void 0),[object Object])@bookmarks.js:976 < BStore_getAllIDs()@bookmarks.js:1009 < SyncEngine__syncStartup()@engines.js:422 < _syncStart()@bookmarks.js:130 < ()@engines.js:203 < SyncEngine__sync()@engines.js:766 < wrappedSync(null)@util.js:168 < batchedSync()@util.js:174 < ()@engines.js:203 < WrappedNotify()@util.js:147 < Engine_sync()@engines.js:213 < WeaveSvc__syncEngine([object Object])@service.js:1738 < ()@service.js:1624 < WrappedNotify()@util.js:147 < WrappedLock()@util.js:119 < WrappedCatch()@util.js:97 < sync(false)@service.js:1529 < ([object Object])@service.js:554 < notify([object XPCWrappedNative_NoHelper])@util.js:1126
2010-12-13 22:50:54     Engine.Forms         DEBUG   Engine syncIDs: juybtDZvonOc,uK_t9JJ0Azn1
2010-12-13 22:50:54     Engine.Forms         DEBUG   Resetting forms last sync time
(In reply to comment #0)
> Stack trace:
> BStore_getChildren((void 0),[object Object])@bookmarks.js:976
> BStore_getAllIDs()@bookmarks.js:1009

_getChildren() is recursive, but it only appears once in the stack, so I'm assuming the line quoted there is the initial call.[1] getAllIDs() calls _getChildren() the following way:

    for (let [guid, id] in Iterator(kSpecialIds))
      if (guid != "places" && guid != "tags")
        this._getChildren(guid, items);

So for some reason guid is undefined which is very weird if not impossible. There's a rule about never assuming a compiler bug, but unless I'm missing something, it seems that something in the JS engine would be broken.

[1] I verified that recursive calls show up in stack traces, with e.g.:

  function rec(n) {
    if (n == 3)
      return Error().stack;
      return rec(n+1);

We munge stack traces a bit with various helpers from Utils, but we don't prune any extra lines as far as I can tell.

Comment 2

6 years ago
Going to close this, because we haven't seen it again.
Last Resolved: 6 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.