From 6c7d57068a0bbfb824ee6f1e92f3f91bea7b4836 Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Mon, 4 Nov 2019 14:45:32 +0530 Subject: [PATCH 1/6] src: more debug statements Add debug statement (enabled only in debug mode) at vital session life cycle control flow points Refs: https://github.com/expressjs/session/issues/633#issuecomment-471110093 --- index.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index e7cc383f..465e30d9 100644 --- a/index.js +++ b/index.js @@ -168,6 +168,7 @@ function session(options) { return function session(req, res, next) { // self-awareness if (req.session) { + debug('re-using existing session') next() return } @@ -295,13 +296,13 @@ function session(options) { if (shouldDestroy(req)) { // destroy session - debug('destroying'); + debug('destroying session store'); store.destroy(req.sessionID, function ondestroy(err) { if (err) { setImmediate(next, err); } - debug('destroyed'); + debug('session store destroyed'); writeend(); }); @@ -326,6 +327,7 @@ function session(options) { setImmediate(next, err); } + debug('session saved'); writeend(); }); @@ -350,6 +352,7 @@ function session(options) { // generate the session function generate() { + debug('session generate'); store.generate(req); originalId = req.sessionID; originalHash = hash(req.session); From 63ee15e9105eb79584eceb6c12bae7aca8eb1120 Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Wed, 3 Jun 2020 13:00:23 +0530 Subject: [PATCH 2/6] fixup: address review comments --- index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 465e30d9..9a38edd5 100644 --- a/index.js +++ b/index.js @@ -296,13 +296,13 @@ function session(options) { if (shouldDestroy(req)) { // destroy session - debug('destroying session store'); + debug('destroying session'); store.destroy(req.sessionID, function ondestroy(err) { if (err) { setImmediate(next, err); } - debug('session store destroyed'); + debug('session destroyed'); writeend(); }); @@ -327,7 +327,6 @@ function session(options) { setImmediate(next, err); } - debug('session saved'); writeend(); }); @@ -396,6 +395,7 @@ function session(options) { debug('saving %s', this.id); savedHash = hash(this); _save.apply(this, arguments); + debug('session saved'); } Object.defineProperty(sess, 'reload', { From 3c936ef5b6b6f313258a1f14213603a6cbbab155 Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Thu, 11 Jun 2020 11:40:55 +0530 Subject: [PATCH 3/6] fixup: address review comments --- index.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 9a38edd5..0519b108 100644 --- a/index.js +++ b/index.js @@ -391,11 +391,14 @@ function session(options) { _reload.call(this, rewrapmethods(this, callback)) } - function save() { + function save(cb) { debug('saving %s', this.id); savedHash = hash(this); - _save.apply(this, arguments); - debug('session saved'); + _save.call(this, function(err) { + if(!err) + debug('session saved'); + cb(err); + }); } Object.defineProperty(sess, 'reload', { From c7f78287e172df5a1e626522a6cfb9b254e893fd Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Fri, 10 Jul 2020 20:06:03 +0530 Subject: [PATCH 4/6] fixup: address review comments --- index.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index 0519b108..55e55a73 100644 --- a/index.js +++ b/index.js @@ -296,13 +296,13 @@ function session(options) { if (shouldDestroy(req)) { // destroy session - debug('destroying session'); + debug('destroying session') store.destroy(req.sessionID, function ondestroy(err) { if (err) { setImmediate(next, err); } - debug('session destroyed'); + debug('session destroyed') writeend(); }); @@ -333,13 +333,13 @@ function session(options) { return writetop(); } else if (storeImplementsTouch && shouldTouch(req)) { // store implements touch method - debug('touching'); + debug('touching the session') store.touch(req.sessionID, req.session, function ontouch(err) { if (err) { setImmediate(next, err); } - debug('touched'); + debug('session touched') writeend(); }); @@ -351,7 +351,7 @@ function session(options) { // generate the session function generate() { - debug('session generate'); + debug('generating session') store.generate(req); originalId = req.sessionID; originalHash = hash(req.session); @@ -391,13 +391,16 @@ function session(options) { _reload.call(this, rewrapmethods(this, callback)) } - function save(cb) { + function save(callback) { debug('saving %s', this.id); savedHash = hash(this); - _save.call(this, function(err) { - if(!err) - debug('session saved'); - cb(err); + _save.call(this, function (err) { + if (err) { + return callback(err) + } + + debug('session saved') + callback.apply(this, arguments) }); } From b3b4747729f5471bc6b6e4e79c3ea06249c74b0c Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Fri, 10 Jul 2020 20:19:28 +0530 Subject: [PATCH 5/6] fixup: review comments --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 55e55a73..45a3ddc4 100644 --- a/index.js +++ b/index.js @@ -333,7 +333,7 @@ function session(options) { return writetop(); } else if (storeImplementsTouch && shouldTouch(req)) { // store implements touch method - debug('touching the session') + debug('touching session') store.touch(req.sessionID, req.session, function ontouch(err) { if (err) { setImmediate(next, err); From 268d14b8ae782f101b736dbf867fb0032674defd Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Fri, 10 Jul 2020 20:22:06 +0530 Subject: [PATCH 6/6] fixup: address review comments --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 45a3ddc4..9b55ccc4 100644 --- a/index.js +++ b/index.js @@ -396,7 +396,7 @@ function session(options) { savedHash = hash(this); _save.call(this, function (err) { if (err) { - return callback(err) + return callback(err) } debug('session saved')