Open Bug 1163765 Opened 5 years ago Updated 3 years ago

Failure to add a livemark causes bookmarks sync engine to never complete

Categories

(Firefox :: Sync, defect, P3)

defect

Tracking

()

Tracking Status
firefox41 --- affected

People

(Reporter: anaran, Unassigned)

Details

(Whiteboard: [sync-quality][sync:bookmarks])

Works fine on windows xp in release and nightly, also can sync fine with firefox 37.0.2 on same ubuntu installation.

But in firefox-trunk it does not finish the initial sync in hours, while it finishes in minutes for 37.0.2.

Not sure if this is the relevant bit.

Let me know what other information  can provide.

1431372701337	Sync.Engine.Bookmarks	WARN	DATA LOSS: Both local and remote changes to record: VQAOedtHnZLE
A promise chain failed to handle a rejection. Did you forget to '.catch', or did you forget to 'return'?
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Date: Mon May 11 2015 21:31:42 GMT+0200 (CEST)
Full Message: ReferenceError: aLivemark is not defined
Full Stack: BStore_create/<@resource://gre/modules/services-sync/engines/bookmarks.js:762:75
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:21
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_handleException@resource://gre/modules/Task.jsm:448:5
TaskImpl_run@resource://gre/modules/Task.jsm:326:11
Promise*ConnectionData.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:369:1
OpenedConnection.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:1157:12
GuidHelper.getItemId<@resource://gre/modules/PlacesUtils.jsm:2325:22
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_run@resource://gre/modules/Task.jsm:319:13
Promise*ConnectionData.prototype<.executeTransaction@resource://gre/modules/Sqlite.jsm:435:19
OpenedConnection.prototype<.executeTransaction@resource://gre/modules/Sqlite.jsm:1229:12
insertBookmark@resource://gre/modules/Bookmarks.jsm:771:9
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_run@resource://gre/modules/Task.jsm:319:13
Promise*ConnectionData.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:369:1
OpenedConnection.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:1157:12
fetchBookmark@resource://gre/modules/Bookmarks.jsm:821:20
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_run@resource://gre/modules/Task.jsm:319:13
Promise*ConnectionData.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:369:1
OpenedConnection.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:1157:12
@resource://gre/components/nsLivemarkService.js:65:22
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
Promise.prototype.then@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:417:5
TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:388:7
TaskImpl_run@resource://gre/modules/Task.jsm:322:13
TaskImpl@resource://gre/modules/Task.jsm:275:3
createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14
Task_spawn@resource://gre/modules/Task.jsm:164:12
addLivemark@resource://gre/components/nsLivemarkService.js:193:1
BStore_create@resource://gre/modules/services-sync/engines/bookmarks.js:760:7
Store.prototype.applyIncoming@resource://services-sync/engines.js:336:7
BStore_applyIncoming@resource://gre/modules/services-sync/engines/bookmarks.js:581:5
Store.prototype.applyIncomingBatch@resource://services-sync/engines.js:304:9
 bookmarks.js:762:0
Use of getPreventDefault() is deprecated.  Use defaultPrevented instead. about:accounts
Use of getPreventDefault() is deprecated.  Use defaultPrevented instead. browser.xul
unsafe CPOW usage <unknown>
unsafe CPOW usage unity_webapps.js:477:0
unsafe CPOW usage unity_webapps.js:480:0
Sending message that cannot be cloned. Are you trying to send an XPCOM object? SiteSpecificUserAgent.js:50:0
unsafe CPOW usage <unknown>
unsafe CPOW usage unity_webapps.js:477:0
unsafe CPOW usage unity_webapps.js:480:0
Sending message that cannot be cloned. Are you trying to send an XPCOM object? SiteSpecificUserAgent.js:50:0
Sending message that cannot be cloned. Are you trying to send an XPCOM object? SiteSpecificUserAgent.js:50:0
"Invalid App Id: Must be a number or numeric string representing the application id." all.js:64
"FB.getLoginStatus() called before calling FB.init()." all.js:64
Sending message that cannot be cloned. Are you trying to send an XPCOM object? SiteSpecificUserAgent.js:50:0
Sending message that cannot be cloned. Are you trying to send an XPCOM object? SiteSpecificUserAgent.js:50:0
Use of getPreventDefault() is deprecated.  Use defaultPrevented instead. about:addons
unsafe CPOW usage <unknown>
unsafe CPOW usage unity_webapps.js:477:0
unsafe CPOW usage unity_webapps.js:480:0
This is still around in
navigator.buildID
    20150512195130
navigator.javaEnabled()
    false
navigator.language
    de
navigator.languages
    de,en-US
navigator.userAgent
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0

Could someone on the same platform please confirm this bug?

Here's the error from today:

A promise chain failed to handle a rejection. Did you forget to '.catch', or did you forget to 'return'?
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Date: Wed May 13 2015 11:05:29 GMT+0200 (CEST)
Full Message: ReferenceError: aLivemark is not defined
Full Stack: BStore_create/<@resource://gre/modules/services-sync/engines/bookmarks.js:774:75
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:21
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_handleException@resource://gre/modules/Task.jsm:448:5
TaskImpl_run@resource://gre/modules/Task.jsm:326:11
Promise*ConnectionData.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:369:1
OpenedConnection.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:1157:12
GuidHelper.getItemId<@resource://gre/modules/PlacesUtils.jsm:2329:22
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_run@resource://gre/modules/Task.jsm:319:13
Promise*ConnectionData.prototype<.executeTransaction@resource://gre/modules/Sqlite.jsm:435:19
OpenedConnection.prototype<.executeTransaction@resource://gre/modules/Sqlite.jsm:1229:12
insertBookmark@resource://gre/modules/Bookmarks.jsm:771:9
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_run@resource://gre/modules/Task.jsm:319:13
Promise*ConnectionData.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:369:1
OpenedConnection.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:1157:12
fetchBookmark@resource://gre/modules/Bookmarks.jsm:821:20
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_run@resource://gre/modules/Task.jsm:319:13
Promise*ConnectionData.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:369:1
OpenedConnection.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:1157:12
@resource://gre/components/nsLivemarkService.js:65:22
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:671:7
TaskImpl_run@resource://gre/modules/Task.jsm:319:13
Promise*ConnectionData.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:369:1
OpenedConnection.prototype<.executeCached@resource://gre/modules/Sqlite.jsm:1157:12
GuidHelper.getItemGuid<@resource://gre/modules/PlacesUtils.jsm:2348:22
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
 bookmarks.js:774:0
It's not completely clear from looking at the code why we aren't catching this promise rejection, but we aren't, and it shouldn't be that difficult to simulate and reproduce.
Summary: firefox-trunk never finishes syncing → Failure to add a livemark causes bookmarks sync engine to never complete
Priority: -- → P2
Priority: P2 → P3
OS: Linux → Unspecified
Hardware: x86_64 → Unspecified
Whiteboard: [sync-quality][sync:bookmarks]
You need to log in before you can comment on or make changes to this bug.