From 7719117e1e1b0d4d7b1d3740329cbea92258c6f8 Mon Sep 17 00:00:00 2001 From: webzwo0i Date: Thu, 26 Feb 2015 14:57:49 +0100 Subject: [PATCH 1/3] do not crash when encountering mismatched compositions. log the changesets and padid --- src/node/handler/PadMessageHandler.js | 12 ++++++++---- src/static/js/Changeset.js | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index 7ea5039d8..86244d85d 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -1629,10 +1629,14 @@ function composePadChangesets(padId, startNum, endNum, callback) changeset = changesets[startNum]; var pool = pad.apool(); - for(var r=startNum+1;r Date: Mon, 2 Mar 2015 11:05:33 +0100 Subject: [PATCH 2/3] callback with argument error in async.series instead --- src/node/handler/PadMessageHandler.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index 86244d85d..e585b6528 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -1636,7 +1636,7 @@ function composePadChangesets(padId, startNum, endNum, callback) } } catch(e){ console.warn("failed to compose cs in pad:",padId); - return; + return callback(e); } callback(null); From 0f82cd871141a4ca465e171dd4eb0fe6a73058f6 Mon Sep 17 00:00:00 2001 From: webzwo0i Date: Mon, 2 Mar 2015 11:14:24 +0100 Subject: [PATCH 3/3] print revision numbers - not changesets - in warn-log --- src/node/handler/PadMessageHandler.js | 3 ++- src/static/js/Changeset.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index e585b6528..ac8904f8d 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -1635,7 +1635,8 @@ function composePadChangesets(padId, startNum, endNum, callback) changeset = Changeset.compose(changeset, cs, pool); } } catch(e){ - console.warn("failed to compose cs in pad:",padId); + // r-1 indicates the rev that was build starting with startNum, applying startNum+1, +2, +3 + console.warn("failed to compose cs in pad:",padId," startrev:",startNum," current rev:",r); return callback(e); } diff --git a/src/static/js/Changeset.js b/src/static/js/Changeset.js index c97756b8d..df180f9cf 100644 --- a/src/static/js/Changeset.js +++ b/src/static/js/Changeset.js @@ -1318,7 +1318,7 @@ exports.compose = function (cs1, cs2, pool) { var unpacked2 = exports.unpack(cs2); var len1 = unpacked1.oldLen; var len2 = unpacked1.newLen; - exports.assert(len2 == unpacked2.oldLen, "mismatched composition of two changesets - cs1:",cs1," and cs2:",cs2); + exports.assert(len2 == unpacked2.oldLen, "mismatched composition of two changesets"); var len3 = unpacked2.newLen; var bankIter1 = exports.stringIterator(unpacked1.charBank); var bankIter2 = exports.stringIterator(unpacked2.charBank);