Closed Bug 619546 Opened 14 years ago Closed 11 years ago

BStore_getChildren (void 0) is undefined

Categories

(Firefox :: Sync, defect)

defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: rnewman, Unassigned)

References

()

Details

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;
    else
      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.
Going to close this, because we haven't seen it again.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → INCOMPLETE
Component: Firefox Sync: Backend → Sync
Product: Cloud Services → Firefox
You need to log in before you can comment on or make changes to this bug.