From b96b062b09d107ecdbbf8e09f6ab06b8ee8fa8d2 Mon Sep 17 00:00:00 2001 From: Matheus Barbosa Silva <36537004+matheusbsilva137@users.noreply.github.com> Date: Tue, 20 Jul 2021 20:39:55 -0300 Subject: [PATCH] [FIX] Remove stack traces from Meteor errors when debug setting is disabled (#22699) * Remove stack traces from Meteor errors when debug setting is disabled * Add missing changes to jitsiSetTimeout.js Co-authored-by: pierre-lehnen-rc <55164754+pierre-lehnen-rc@users.noreply.github.com> --- app/api/server/v1/misc.js | 7 +++++-- app/api/server/v1/video-conference.js | 9 ++++++--- app/federation/server/normalizers/message.js | 4 ++-- app/videobridge/server/methods/jitsiSetTimeout.js | 4 ++-- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/api/server/v1/misc.js b/app/api/server/v1/misc.js index 3b275a78d63..01376658e4e 100644 --- a/app/api/server/v1/misc.js +++ b/app/api/server/v1/misc.js @@ -15,6 +15,7 @@ import { API } from '../api'; import { getDefaultUserFields } from '../../../utils/server/functions/getDefaultUserFields'; import { getURL } from '../../../utils/lib/getURL'; import { StdOut } from '../../../logger/server/streamer'; +import { SystemLogger } from '../../../logger/server'; // DEPRECATED @@ -271,8 +272,10 @@ const methodCall = () => ({ const result = Meteor.call(method, ...params); return API.v1.success(mountResult({ id, result })); } catch (error) { - Meteor._debug(`Exception while invoking method ${ method }`, error.stack); - + SystemLogger.error(`Exception while invoking method ${ method }`, error.message); + if (settings.get('Log_Level') === '2') { + Meteor._debug(`Exception while invoking method ${ method }`, error.stack); + } return API.v1.success(mountResult({ id, error })); } }, diff --git a/app/api/server/v1/video-conference.js b/app/api/server/v1/video-conference.js index 98db2350970..72c71468cfb 100644 --- a/app/api/server/v1/video-conference.js +++ b/app/api/server/v1/video-conference.js @@ -15,8 +15,11 @@ API.v1.addRoute('video-conference/jitsi.update-timeout', { authRequired: true }, return API.v1.failure('Room does not exist!'); } - const jitsiTimeout = Meteor.runAsUser(this.userId, () => Meteor.call('jitsi:updateTimeout', roomId, Boolean(joiningNow))); - - return API.v1.success({ jitsiTimeout }); + try { + const jitsiTimeout = Meteor.runAsUser(this.userId, () => Meteor.call('jitsi:updateTimeout', roomId, Boolean(joiningNow))); + return API.v1.success({ jitsiTimeout }); + } catch (error) { + return API.v1.failure(error.message); + } }, }); diff --git a/app/federation/server/normalizers/message.js b/app/federation/server/normalizers/message.js index 004c7fe6d57..954b7cce8bc 100644 --- a/app/federation/server/normalizers/message.js +++ b/app/federation/server/normalizers/message.js @@ -59,7 +59,7 @@ const normalizeMessage = (originalResource) => { }; // Normalize mentions - for (const mention of resource.mentions) { + for (const mention of resource.mentions || []) { // Ignore if we are dealing with all, here or rocket.cat if (['all', 'here', 'rocket.cat'].indexOf(mention.username) !== -1) { continue; } @@ -73,7 +73,7 @@ const normalizeMessage = (originalResource) => { } // Normalize channels - for (const channel of resource.channels) { + for (const channel of resource.channels || []) { if (!isFullyQualified(channel.name)) { const originalUsername = channel.name; diff --git a/app/videobridge/server/methods/jitsiSetTimeout.js b/app/videobridge/server/methods/jitsiSetTimeout.js index 30295298f0f..3f630067d22 100644 --- a/app/videobridge/server/methods/jitsiSetTimeout.js +++ b/app/videobridge/server/methods/jitsiSetTimeout.js @@ -50,9 +50,9 @@ Meteor.methods({ return jitsiTimeout || nextTimeOut; } catch (error) { - SystemLogger.error('Error starting video call:', error); + SystemLogger.error('Error starting video call:', error.message); - throw new Meteor.Error('error-starting-video-call', error.message); + throw new Meteor.Error('error-starting-video-call', error.message, { method: 'jitsi:updateTimeout' }); } }, });