[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-4-0' - loleaflet/src wsd/DocumentBroker.cpp
Ashod Nakashian (via logerrit)
logerrit at kemper.freedesktop.org
Sat Oct 19 18:57:10 UTC 2019
loleaflet/src/core/Socket.js | 3 +++
loleaflet/src/errormessages.js | 1 +
wsd/DocumentBroker.cpp | 15 +++++++--------
3 files changed, 11 insertions(+), 8 deletions(-)
New commits:
commit d332e1d4a2999da4f93e7831ffc0d58e96fad1c6
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Wed Oct 2 08:38:45 2019 -0400
Commit: Andras Timar <andras.timar at collabora.com>
CommitDate: Sat Oct 19 20:56:51 2019 +0200
wsd: notify the client of document load timeout
Change-Id: I01052105b8412023ac7651f3a92cc67fe739fd1a
Reviewed-on: https://gerrit.libreoffice.org/80325
Reviewed-by: Andras Timar <andras.timar at collabora.com>
Tested-by: Andras Timar <andras.timar at collabora.com>
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index b6c8101d5..c4468543b 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -609,6 +609,9 @@ L.Socket = L.Class.extend({
} else if (errorKind.startsWith('faileddocloading')) {
this._map._fatal = true;
this._map.fire('error', {msg: errorMessages.faileddocloading});
+ } else if (errorKind.startsWith('docloadtimeout')) {
+ this._map._fatal = true;
+ this._map.fire('error', {msg: errorMessages.docloadtimeout});
} else if (errorKind.startsWith('docunloading')) {
// The document is unloading. Have to wait a bit.
this._map._active = false;
diff --git a/loleaflet/src/errormessages.js b/loleaflet/src/errormessages.js
index e6eff9365..a14fa57b1 100644
--- a/loleaflet/src/errormessages.js
+++ b/loleaflet/src/errormessages.js
@@ -21,6 +21,7 @@ errorMessages.wrongwopisrc = _('Wrong or missing WOPISrc parameter, please conta
errorMessages.sessionexpiry = _('Your session will expire in %time. Please save your work and refresh the session (or webpage) to continue.');
errorMessages.sessionexpired = _('Your session has been expired. Further changes to document might not be saved. Please refresh the session (or webpage) to continue.');
errorMessages.faileddocloading = _('Failed to load the document. Please ensure the file type is supported and not corrupted, and try again.');
+errorMessages.docloadtimeout = _('Failed to load the document. This document is either malformed or is taking more resources than allowed. Please contact the administrator.');
errorMessages.storage = {
loadfailed: _('Failed to read document from storage. Please contact your storage server (%storageserver) administrator.'),
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index fd4120611..ed64b93ef 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -283,21 +283,20 @@ void DocumentBroker::pollThread()
if (!_isLoaded && (limit_load_secs > 0) && (now > loadDeadline))
{
// Brutal but effective.
+ LOG_WRN("Doc [" << _docKey << "] is taking too long to load. Will kill process ["
+ << _childProcess->getPid() << "]. per_document.limit_load_secs set to "
+ << limit_load_secs << " secs.");
+ broadcastMessage("error: cmd=load kind=docloadtimeout");
+
if (_childProcess)
- {
- LOG_WRN("Doc [" << _docKey << "] is taking too long to load. Will kill process ["
- << _childProcess->getPid()
- << "]. per_document.limit_load_secs set to " << limit_load_secs
- << " secs.");
_childProcess->terminate();
- }
stop("Load timed out");
continue;
}
if (std::chrono::duration_cast<std::chrono::milliseconds>
- (now - lastBWUpdateTime).count() >= 5 * 1000)
+ (now - lastBWUpdateTime).count() >= COMMAND_TIMEOUT_MS)
{
lastBWUpdateTime = now;
uint64_t sent, recv;
@@ -307,9 +306,9 @@ void DocumentBroker::pollThread()
// connection drop transiently reduces this.
(sent > adminSent ? (sent - adminSent): uint64_t(0)),
(recv > adminRecv ? (recv - adminRecv): uint64_t(0)));
- LOG_DBG("Doc [" << _docKey << "] added sent: " << sent << " recv: " << recv << " bytes to totals");
adminSent = sent;
adminRecv = recv;
+ LOG_TRC("Doc [" << _docKey << "] added stats sent: " << sent << ", recv: " << recv << " bytes to totals.");
}
#endif
More information about the Libreoffice-commits
mailing list