From 971d73a56fa81fa889579f22c959f402542a5cc2 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Sun, 26 Jun 2022 20:50:55 +0000 Subject: Upgrades from pre vespa-6.149 directly to 8.8 is not supported. GC code from backend. --- messagebus/src/tests/sendadapter/sendadapter.cpp | 9 +- .../src/vespa/messagebus/network/CMakeLists.txt | 1 - .../src/vespa/messagebus/network/rpcnetwork.cpp | 4 - .../src/vespa/messagebus/network/rpcnetwork.h | 1 - .../src/vespa/messagebus/network/rpcsendv1.cpp | 173 --------------------- .../src/vespa/messagebus/network/rpcsendv1.h | 24 --- 6 files changed, 3 insertions(+), 209 deletions(-) delete mode 100644 messagebus/src/vespa/messagebus/network/rpcsendv1.cpp delete mode 100644 messagebus/src/vespa/messagebus/network/rpcsendv1.h (limited to 'messagebus/src') diff --git a/messagebus/src/tests/sendadapter/sendadapter.cpp b/messagebus/src/tests/sendadapter/sendadapter.cpp index 0ae957ea340..80bfc45184f 100644 --- a/messagebus/src/tests/sendadapter/sendadapter.cpp +++ b/messagebus/src/tests/sendadapter/sendadapter.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include @@ -211,10 +210,8 @@ TEST("test that all known versions are present") { TestData data; ASSERT_TRUE(data.start()); EXPECT_FALSE(data._srcServer.net.getSendAdapter(vespalib::Version(4, 999)) != nullptr); - EXPECT_TRUE(data._srcServer.net.getSendAdapter(vespalib::Version(5, 0)) != nullptr); - EXPECT_TRUE(dynamic_cast(data._srcServer.net.getSendAdapter(vespalib::Version(5, 0))) != nullptr); - EXPECT_TRUE(data._srcServer.net.getSendAdapter(vespalib::Version(6, 148)) != nullptr); - EXPECT_TRUE(dynamic_cast(data._srcServer.net.getSendAdapter(vespalib::Version(6, 148))) != nullptr); + EXPECT_FALSE(data._srcServer.net.getSendAdapter(vespalib::Version(5, 0)) != nullptr); + EXPECT_FALSE(data._srcServer.net.getSendAdapter(vespalib::Version(6, 148)) != nullptr); EXPECT_TRUE(data._srcServer.net.getSendAdapter(vespalib::Version(6, 149)) != nullptr); EXPECT_TRUE(dynamic_cast(data._srcServer.net.getSendAdapter(vespalib::Version(6, 149))) != nullptr); EXPECT_TRUE(data._srcServer.net.getSendAdapter(vespalib::Version(9, 999)) != nullptr); @@ -224,7 +221,7 @@ TEST("test that all known versions are present") { TEST("test that we can send between multiple versions") { TestData data; ASSERT_TRUE(data.start()); - TEST_DO(testSendAdapters(data, {vespalib::Version(5, 0), vespalib::Version(6, 148), vespalib::Version(6, 149), vespalib::Version(9, 999)})); + TEST_DO(testSendAdapters(data, {vespalib::Version(6, 149), vespalib::Version(9, 999)})); } TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/messagebus/src/vespa/messagebus/network/CMakeLists.txt b/messagebus/src/vespa/messagebus/network/CMakeLists.txt index fffef5518c9..8b058ef5fcc 100644 --- a/messagebus/src/vespa/messagebus/network/CMakeLists.txt +++ b/messagebus/src/vespa/messagebus/network/CMakeLists.txt @@ -5,7 +5,6 @@ vespa_add_library(messagebus_network OBJECT rpcnetwork.cpp rpcnetworkparams.cpp rpcsend.cpp - rpcsendv1.cpp rpcsendv2.cpp rpcservice.cpp rpcserviceaddress.cpp diff --git a/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp b/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp index 0f7ebeb9a36..77d8ca24cfc 100644 --- a/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp +++ b/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "rpcnetwork.h" #include "rpcservicepool.h" -#include "rpcsendv1.h" #include "rpcsendv2.h" #include "rpctargetpool.h" #include "rpcnetworkparams.h" @@ -137,7 +136,6 @@ RPCNetwork::RPCNetwork(const RPCNetworkParams ¶ms) : _targetPoolTask(std::make_unique(_scheduler, *_targetPool)), _servicePool(std::make_unique(*_mirror, 4_Ki)), _executor(std::make_unique(params.getNumThreads(), 64_Ki)), - _sendV1(std::make_unique()), _sendV2(std::make_unique()), _sendAdapters(), _compressionConfig(params.getCompressionConfig()), @@ -195,9 +193,7 @@ RPCNetwork::attach(INetworkOwner &owner) LOG_ASSERT(_owner == nullptr); _owner = &owner; - _sendV1->attach(*this); _sendV2->attach(*this); - _sendAdapters[vespalib::Version(5)] = _sendV1.get(); _sendAdapters[vespalib::Version(6, 149)] = _sendV2.get(); FRT_ReflectionBuilder builder(_orb.get()); diff --git a/messagebus/src/vespa/messagebus/network/rpcnetwork.h b/messagebus/src/vespa/messagebus/network/rpcnetwork.h index 38f35d1266a..e706431f90d 100644 --- a/messagebus/src/vespa/messagebus/network/rpcnetwork.h +++ b/messagebus/src/vespa/messagebus/network/rpcnetwork.h @@ -66,7 +66,6 @@ private: std::unique_ptr _targetPoolTask; std::unique_ptr _servicePool; std::unique_ptr _executor; - std::unique_ptr _sendV1; std::unique_ptr _sendV2; SendAdapterMap _sendAdapters; CompressionConfig _compressionConfig; diff --git a/messagebus/src/vespa/messagebus/network/rpcsendv1.cpp b/messagebus/src/vespa/messagebus/network/rpcsendv1.cpp deleted file mode 100644 index 7342c264bfa..00000000000 --- a/messagebus/src/vespa/messagebus/network/rpcsendv1.cpp +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include "rpcsendv1.h" -#include "rpcnetwork.h" -#include "rpcserviceaddress.h" -#include -#include -#include -#include - -using vespalib::make_string; - -namespace mbus { - -namespace { - -const char *METHOD_NAME = "mbus.send1"; -const char *METHOD_PARAMS = "sssbilsxi"; -const char *METHOD_RETURN = "sdISSsxs"; - -} - -bool RPCSendV1::isCompatible(vespalib::stringref method, vespalib::stringref request, vespalib::stringref respons) -{ - return (method == METHOD_NAME) && - (request == METHOD_PARAMS) && - (respons == METHOD_RETURN); -} - -const char * -RPCSendV1::getReturnSpec() const { - return METHOD_RETURN; -} - -void -RPCSendV1::build(FRT_ReflectionBuilder & builder) -{ - builder.DefineMethod(METHOD_NAME, METHOD_PARAMS, METHOD_RETURN, FRT_METHOD(RPCSendV1::invoke), this); - builder.MethodDesc("Send a message bus request and get a reply back."); - builder.ParamDesc("version", "The version of the message."); - builder.ParamDesc("route", "Names of additional hops to visit."); - builder.ParamDesc("session", "The local session that should receive this message."); - builder.ParamDesc("retryEnabled", "Whether or not this message can be resent."); - builder.ParamDesc("retry", "The number of times the sending of this message has been retried."); - builder.ParamDesc("timeRemaining", "The number of milliseconds until timeout."); - builder.ParamDesc("protocol", "The name of the protocol that knows how to decode this message."); - builder.ParamDesc("payload", "The protocol specific message payload."); - builder.ParamDesc("level", "The trace level of the message."); - builder.ReturnDesc("version", "The lowest version the message was serialized as."); - builder.ReturnDesc("retry", "The retry request of the reply."); - builder.ReturnDesc("errorCodes", "The reply error codes."); - builder.ReturnDesc("errorMessages", "The reply error messages."); - builder.ReturnDesc("errorServices", "The reply error service names."); - builder.ReturnDesc("protocol", "The name of the protocol that knows how to decode this reply."); - builder.ReturnDesc("payload", "The protocol specific reply payload."); - builder.ReturnDesc("trace", "A string representation of the trace."); -} - -void -RPCSendV1::encodeRequest(FRT_RPCRequest &req, const vespalib::Version &version, const Route & route, - const RPCServiceAddress & address, const Message & msg, uint32_t traceLevel, - const PayLoadFiller &filler, duration timeRemaining) const -{ - - FRT_Values &args = *req.GetParams(); - req.SetMethodName(METHOD_NAME); - args.AddString(version.toString().c_str()); - args.AddString(route.toString().c_str()); - args.AddString(address.getSessionName().c_str()); - args.AddInt8(msg.getRetryEnabled() ? 1 : 0); - args.AddInt32(msg.getRetry()); - args.AddInt64(vespalib::count_ms(timeRemaining)); - args.AddString(msg.getProtocol().c_str()); - filler.fill(args); - args.AddInt32(traceLevel); -} - -namespace { - -class ParamsV1 : public RPCSend::Params -{ -public: - ParamsV1(const FRT_Values &args) : _args(args) { } - - uint32_t getTraceLevel() const override { return _args[8]._intval32; } - bool useRetry() const override { return _args[3]._intval8 != 0; } - uint32_t getRetries() const override { return _args[4]._intval32; } - duration getRemainingTime() const override { return std::chrono::milliseconds(_args[5]._intval64); } - - vespalib::Version getVersion() const override { - return vespalib::Version(vespalib::stringref(_args[0]._string._str, _args[0]._string._len)); - } - vespalib::stringref getRoute() const override { - return vespalib::stringref(_args[1]._string._str, _args[1]._string._len); - } - vespalib::stringref getSession() const override { - return vespalib::stringref(_args[2]._string._str, _args[2]._string._len); - } - vespalib::stringref getProtocol() const override { - return vespalib::stringref(_args[6]._string._str, _args[6]._string._len); - } - BlobRef getPayload() const override { - return BlobRef(_args[7]._data._buf, _args[7]._data._len); - } -private: - const FRT_Values & _args; -}; - -} - -std::unique_ptr -RPCSendV1::toParams(const FRT_Values &args) const -{ - return std::make_unique(args); -} - - -std::unique_ptr -RPCSendV1::createReply(const FRT_Values & ret, const string & serviceName, Error & error, vespalib::Trace & trace) const -{ - vespalib::Version version = vespalib::Version(ret[0]._string._str); - double retryDelay = ret[1]._double; - uint32_t *errorCodes = ret[2]._int32_array._pt; - uint32_t errorCodesLen = ret[2]._int32_array._len; - FRT_StringValue *errorMessages = ret[3]._string_array._pt; - uint32_t errorMessagesLen = ret[3]._string_array._len; - FRT_StringValue *errorServices = ret[4]._string_array._pt; - uint32_t errorServicesLen = ret[4]._string_array._len; - const char *protocolName = ret[5]._string._str; - BlobRef payload(ret[6]._data._buf, ret[6]._data._len); - const char *traceStr = ret[7]._string._str; - - Reply::UP reply; - if (payload.size() > 0) { - reply = decode(protocolName, version, payload, error); - } - if ( ! reply ) { - reply = std::make_unique(); - } - reply->setRetryDelay(retryDelay); - for (uint32_t i = 0; i < errorCodesLen && i < errorMessagesLen && i < errorServicesLen; ++i) { - reply->addError(Error(errorCodes[i], errorMessages[i]._str, - errorServices[i]._len > 0 ? errorServices[i]._str : serviceName.c_str())); - } - trace.addChild(TraceNode::decode(traceStr)); - return reply; -} - -void -RPCSendV1::createResponse(FRT_Values & ret, const string & version, Reply & reply, Blob payload) const { - ret.AddString(version.c_str()); - ret.AddDouble(reply.getRetryDelay()); - - uint32_t errorCount = reply.getNumErrors(); - uint32_t *errorCodes = ret.AddInt32Array(errorCount); - FRT_StringValue *errorMessages = ret.AddStringArray(errorCount); - FRT_StringValue *errorServices = ret.AddStringArray(errorCount); - for (uint32_t i = 0; i < errorCount; ++i) { - errorCodes[i] = reply.getError(i).getCode(); - ret.SetString(errorMessages + i, reply.getError(i).getMessage().c_str()); - ret.SetString(errorServices + i, reply.getError(i).getService().c_str()); - } - - ret.AddString(reply.getProtocol().c_str()); - ret.AddData(std::move(payload.payload()), payload.size()); - if (reply.getTrace().getLevel() > 0) { - ret.AddString(reply.getTrace().encode().c_str()); - } else { - ret.AddString(""); - } -} - -} // namespace mbus diff --git a/messagebus/src/vespa/messagebus/network/rpcsendv1.h b/messagebus/src/vespa/messagebus/network/rpcsendv1.h deleted file mode 100644 index 7010df9dde5..00000000000 --- a/messagebus/src/vespa/messagebus/network/rpcsendv1.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#pragma once - -#include "rpcsend.h" - -namespace mbus { - -class RPCSendV1 : public RPCSend { -public: - static bool isCompatible(vespalib::stringref method, vespalib::stringref request, vespalib::stringref respons); -private: - void build(FRT_ReflectionBuilder & builder) override; - const char * getReturnSpec() const override; - std::unique_ptr toParams(const FRT_Values ¶m) const override; - void encodeRequest(FRT_RPCRequest &req, const vespalib::Version &version, const Route & route, - const RPCServiceAddress & address, const Message & msg, uint32_t traceLevel, - const PayLoadFiller &filler, duration timeRemaining) const override; - - std::unique_ptr createReply(const FRT_Values & response, const string & serviceName, - Error & error, vespalib::Trace & trace) const override; - void createResponse(FRT_Values & ret, const string & version, Reply & reply, Blob payload) const override; -}; - -} // namespace mbus -- cgit v1.2.3