diff --git a/lib/hooks.js b/lib/hooks.js index 9149077..1e9b0f2 100755 --- a/lib/hooks.js +++ b/lib/hooks.js @@ -68,7 +68,9 @@ const opentracingEnd = (options = {}) => { span.log({ event: 'request_finished' }); try { - span.finish(); + if (span._duration === undefined) { + span.finish(); + } } catch (err) { return context; } @@ -106,7 +108,9 @@ const opentracingError = (options = {}) => { span.log({ event: 'request_error', message }); try { - span.finish(); + if (span._duration === undefined) { + span.finish(); + } } catch (err) { return context; } diff --git a/lib/middleware.js b/lib/middleware.js index 375367a..b5cb86c 100755 --- a/lib/middleware.js +++ b/lib/middleware.js @@ -57,7 +57,11 @@ module.exports = function (req, res, options = {}) { if (resHeaders && Object.keys(resHeaders).length) { tagObject('response.headers', resHeaders, span, options); } } - span.finish(); + try { + if (span._duration === undefined) { + span.finish(); + } + } catch (err) {} }; res.on('close', finishSpan);