loolwsd/LOOLWSD.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
New commits: commit 430e0cf0215b29502039092aa4c420b87a6bb7b4 Author: Ashod Nakashian <[email protected]> Date: Wed Nov 23 08:54:09 2016 -0500 loolwsd: alert users of low disk space after loading Change-Id: I01426aafb353ac8e291969936afc4d276898f0f0 Reviewed-on: https://gerrit.libreoffice.org/31121 Reviewed-by: Ashod Nakashian <[email protected]> Tested-by: Ashod Nakashian <[email protected]> diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index 5fdff72..5ca3fce 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -892,7 +892,12 @@ private: LOG_TRC("Sending to Client [" << status << "]."); ws->sendFrame(status.data(), status.size()); - FileUtil::checkDiskSpaceOnRegisteredFileSystems(); + const std::string fs = FileUtil::checkDiskSpaceOnRegisteredFileSystems(); + if (!fs.empty()) + { + LOG_WRN("File system of " << fs << " dangerously low on disk space"); + Util::alertAllUsers("error: cmd=internal kind=diskfull"); + } // Request the child to connect to us and add this session. auto sessionsCount = docBroker->addSession(session); commit c26e180c081c43d297ba55443e1ce5e9a3cc06b2 Author: Ashod Nakashian <[email protected]> Date: Wed Nov 23 09:38:47 2016 -0500 loolwsd: correct locking of DocBrokers Change-Id: I52f10e06cf91db451eb34d6540d17db2e0d14385 Reviewed-on: https://gerrit.libreoffice.org/31120 Reviewed-by: Ashod Nakashian <[email protected]> Tested-by: Ashod Nakashian <[email protected]> diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index c253f51..5fdff72 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -313,6 +313,7 @@ static bool cleanupChildren() /// Called on startup only. static void preForkChildren() { + std::unique_lock<std::mutex> DocBrokersLock(DocBrokersMutex); std::unique_lock<std::mutex> lock(NewChildrenMutex); int numPreSpawn = LOOLWSD::NumPreSpawnedChildren; @@ -851,8 +852,6 @@ private: DocBrokers.insert(it, std::make_pair(docKey, docBroker)); } - docBrokersLock.unlock(); - // Validate the broker. if (!docBroker || !docBroker->isAlive()) { @@ -863,6 +862,8 @@ private: throw WebSocketErrorMessageException(SERVICE_UNAVAILABLE_INTERNAL_ERROR); } + docBrokersLock.unlock(); + // Check if readonly session is required bool isReadOnly = false; for (const auto& param : uriPublic.getQueryParameters()) _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
