loolwsd/LOOLWSD.cpp | 21 ++++++++++++++++++++- loolwsd/test/httpwserror.cpp | 8 +++++++- 2 files changed, 27 insertions(+), 2 deletions(-)
New commits: commit 30df646311db4a4a273486431f96caf0a18fd89a Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sun Oct 23 13:42:56 2016 -0400 loolwsd: check for termination flag before loading new documents Change-Id: I4b7117ba255dd81f28ed1279814048e4311c2473 Reviewed-on: https://gerrit.libreoffice.org/30211 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index df8a417..6694f81 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -667,6 +667,12 @@ private: { std::unique_lock<std::mutex> DocBrokersLock(DocBrokersMutex); + if (TerminationFlag) + { + Log::error("Termination flag set. No loading new session [" + id + "]"); + return; + } + // Lookup this document. auto it = DocBrokers.find(docKey); if (it != DocBrokers.end()) @@ -719,6 +725,12 @@ private: timedOut = false; break; } + + if (TerminationFlag) + { + Log::error("Termination flag set. No loading new session [" + id + "]"); + return; + } } if (timedOut) @@ -728,6 +740,12 @@ private: } } + if (TerminationFlag) + { + Log::error("Termination flag set. No loading new session [" + id + "]"); + return; + } + bool newDoc = false; if (!docBroker) { commit 0287d7141df581805ecab863c719e27f9f60cab8 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sun Oct 23 13:42:20 2016 -0400 loolwsd: logs around testMaxConnections Change-Id: I0f9dc957fb95d501626e321b4e15472d077c0301 Reviewed-on: https://gerrit.libreoffice.org/30210 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index a526829..df8a417 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -979,7 +979,8 @@ public: if (++LOOLWSD::NumConnections > MAX_CONNECTIONS) { --LOOLWSD::NumConnections; - Log::error("Maximum number of connections reached."); + Log::error() << "Limit on maximum number of connections of " + << MAX_CONNECTIONS << " reached." << Log::end; // accept hand shake WebSocket ws(request, response); shutdownLimitReached(ws); diff --git a/loolwsd/test/httpwserror.cpp b/loolwsd/test/httpwserror.cpp index 1e35593..011806b 100644 --- a/loolwsd/test/httpwserror.cpp +++ b/loolwsd/test/httpwserror.cpp @@ -140,22 +140,28 @@ void HTTPWSError::testMaxConnections() const auto testname = "maxConnections "; try { + std::cerr << "Opening max number of connections: " << MAX_CONNECTIONS << std::endl; + // Load a document. std::string docPath; std::string docURL; - std::vector<std::shared_ptr<Poco::Net::WebSocket>> views; getDocumentPathAndURL("empty.odt", docPath, docURL); Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, docURL); auto socket = loadDocAndGetSocket(_uri, docURL, testname); + std::cerr << "Opened connect #1 of " << MAX_CONNECTIONS << std::endl; + std::vector<std::shared_ptr<Poco::Net::WebSocket>> views; for(int it = 1; it < MAX_CONNECTIONS; it++) { std::unique_ptr<Poco::Net::HTTPClientSession> session(createSession(_uri)); auto ws = std::make_shared<Poco::Net::WebSocket>(*session, request, _response); views.emplace_back(ws); + std::cerr << "Opened connect #" << (it+1) << " of " << MAX_CONNECTIONS << std::endl; } + std::cerr << "Opening one more connection beyond the limit." << std::endl; + // try to connect MAX_CONNECTIONS + 1 std::unique_ptr<Poco::Net::HTTPClientSession> session(createSession(_uri)); Poco::Net::WebSocket socketN(*session, request, _response); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits