[Libreoffice-commits] online.git: loleaflet/src wsd/DocumentBroker.cpp
Ashod Nakashian (via logerrit)
logerrit at kemper.freedesktop.org
Mon Oct 28 09:48:55 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 8809f4f10459ac0258a43a22408a2e5b41b7d9d9
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Wed Oct 2 08:38:45 2019 -0400
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Mon Oct 28 10:48:37 2019 +0100
wsd: notify the client of document load timeout
This gives users some feedback as to why loading
failed, which in this case is quite useful (as
it is highly unlikely retrying will help, since
the issue is with the document, being too large
or resource intensive).
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>
(cherry picked from commit d332e1d4a2999da4f93e7831ffc0d58e96fad1c6)
Change-Id: I01052105b8412023ac7651f3a92cc67fe739fd1a
Reviewed-on: https://gerrit.libreoffice.org/81563
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
Tested-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 94454b82d..6f3d22d27 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -590,6 +590,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 16dc14086..37addbc20 100644
--- a/loleaflet/src/errormessages.js
+++ b/loleaflet/src/errormessages.js
@@ -23,6 +23,7 @@ errorMessages.sessionexpired = _('Your session has been expired. Further changes
errorMessages.faileddocloading = _('Failed to load the document. Please ensure the file type is supported and not corrupted, and try again.');
errorMessages.invalidLink = _('Invalid link: \'%url\'');
errorMessages.leaving = _('You are leaving the editor, are you sure you want to visit %url?');
+errorMessages.docloadtimeout = _('Failed to load the document. This document is either malformed or is taking more resources than allowed. Please contact the administrator.');
if (window.ThisIsAMobileApp) {
errorMessages.storage = {
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 791089042..c3f0dd04c 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -292,22 +292,21 @@ void DocumentBroker::pollThread()
#if !MOBILEAPP
if (!_isLoaded && (limit_load_secs > 0) && (now > loadDeadline))
{
+ 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");
+
// Brutal but effective.
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;
@@ -317,9 +316,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