diff options
author | Harald Musum <musum@verizonmedia.com> | 2022-02-23 09:09:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-23 09:09:29 +0100 |
commit | cec6b4cd41087e3173b50523ad83f5d5080e8fa1 (patch) | |
tree | aa18aa2ac2d5e2ef0aa7301ad62453a8b055a66e /searchcore/src/tests | |
parent | 9edb5e75186d7d93a564c1edb1d4549c0e259a39 (diff) |
Revert "Revert "Revert "Use common tranport for TlsClient"""
Diffstat (limited to 'searchcore/src/tests')
18 files changed, 111 insertions, 96 deletions
diff --git a/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp b/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp index 0e9eb926514..b597bc18cc5 100644 --- a/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp +++ b/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp @@ -2,6 +2,7 @@ #include <vespa/vespalib/testkit/testapp.h> +#include <vespa/document/config/documenttypes_config_fwd.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/searchcore/proton/attribute/attribute_writer.h> #include <vespa/searchcore/proton/attribute/attributemanager.h> @@ -11,6 +12,7 @@ #include <vespa/searchcore/proton/index/indexmanager.h> #include <vespa/searchcore/proton/reprocessing/attribute_reprocessing_initializer.h> #include <vespa/searchcore/proton/server/searchable_doc_subdb_configurer.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcore/proton/server/fast_access_doc_subdb_configurer.h> #include <vespa/searchcore/proton/server/summaryadapter.h> #include <vespa/searchcore/proton/server/attribute_writer_factory.h> @@ -21,13 +23,11 @@ #include <vespa/searchcore/proton/test/documentdb_config_builder.h> #include <vespa/searchcore/proton/test/mock_summary_adapter.h> #include <vespa/searchcore/proton/test/mock_gid_to_lid_change_handler.h> -#include <vespa/searchcore/proton/test/transport_helper.h> #include <vespa/searchcore/proton/reference/dummy_gid_to_lid_change_handler.h> #include <vespa/searchlib/index/dummyfileheadercontext.h> #include <vespa/searchlib/transactionlog/nosyncproxy.h> #include <vespa/vespalib/io/fileutil.h> #include <vespa/vespalib/util/size_literals.h> -#include <vespa/vespalib/util/threadstackexecutor.h> using namespace config; using namespace document; @@ -85,8 +85,9 @@ ViewPtrs::~ViewPtrs() = default; struct ViewSet { IndexManagerDummyReconfigurer _reconfigurer; - DummyFileHeaderContext _fileHeaderContext; - TransportAndExecutorService _service; + DummyFileHeaderContext _fileHeaderContext; + vespalib::ThreadStackExecutor _sharedExecutor; + ExecutorThreadingService _writeService; SearchableFeedView::SerialNum serialNum; std::shared_ptr<const DocumentTypeRepo> repo; DocTypeName _docTypeName; @@ -113,7 +114,8 @@ struct ViewSet ViewSet::ViewSet() : _reconfigurer(), _fileHeaderContext(), - _service(1), + _sharedExecutor(1, 0x10000), + _writeService(_sharedExecutor), serialNum(1), repo(createRepo()), _docTypeName(DOC_TYPE), @@ -186,10 +188,10 @@ Fixture::initViewSet(ViewSet &views) using IndexConfig = proton::index::IndexConfig; auto matchers = std::make_shared<Matchers>(_clock, _queryLimiter, _constantValueRepo); auto indexMgr = make_shared<IndexManager>(BASE_DIR, IndexConfig(searchcorespi::index::WarmupConfig(), 2, 0), Schema(), 1, - views._reconfigurer, views._service.write(), _summaryExecutor, + views._reconfigurer, views._writeService, _summaryExecutor, TuneFileIndexManager(), TuneFileAttributes(), views._fileHeaderContext); auto attrMgr = make_shared<AttributeManager>(BASE_DIR, "test.subdb", TuneFileAttributes(), views._fileHeaderContext, - views._service.write().attributeFieldWriter(), views._service.write().shared(), views._hwInfo); + views._writeService.attributeFieldWriter(), views._writeService.shared(), views._hwInfo); auto summaryMgr = make_shared<SummaryManager> (_summaryExecutor, search::LogDocumentStore::Config(), search::GrowStrategy(), BASE_DIR, views._docTypeName, TuneFileSummary(), views._fileHeaderContext,views._noTlSyncer, search::IBucketizer::SP()); @@ -215,7 +217,7 @@ Fixture::initViewSet(ViewSet &views) views.repo, _pendingLidsForCommit, *views._gidToLidChangeHandler, - views._service.write()), + views._writeService), SearchableFeedView::PersistentParams(views.serialNum, views.serialNum, views._docTypeName, 0u, SubDbType::READY), FastAccessFeedView::Context(attrWriter, views._docIdLimit), @@ -272,19 +274,21 @@ MyFastAccessFeedView::~MyFastAccessFeedView() = default; struct FastAccessFixture { - TransportAndExecutorService _service; - MyFastAccessFeedView _view; + vespalib::ThreadStackExecutor _sharedExecutor; + ExecutorThreadingService _writeService; + MyFastAccessFeedView _view; FastAccessDocSubDBConfigurer _configurer; FastAccessFixture() - : _service(1), - _view(_service.write()), + : _sharedExecutor(1, 0x10000), + _writeService(_sharedExecutor), + _view(_writeService), _configurer(_view._feedView, std::make_unique<AttributeWriterFactory>(), "test") { vespalib::rmdir(BASE_DIR, true); vespalib::mkdir(BASE_DIR); } ~FastAccessFixture() { - _service.shutdown(); + _writeService.shutdown(); } }; diff --git a/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp b/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp index 27636324835..6e20d30fb36 100644 --- a/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp +++ b/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp @@ -18,6 +18,7 @@ #include <vespa/searchcore/proton/server/fast_access_document_retriever.h> #include <vespa/searchcore/proton/server/i_document_subdb_owner.h> #include <vespa/searchcore/proton/server/igetserialnum.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcore/proton/server/minimal_document_retriever.h> #include <vespa/searchcore/proton/server/searchabledocsubdb.h> #include <vespa/searchcore/proton/server/document_subdb_initializer.h> @@ -287,8 +288,9 @@ struct MyConfigSnapshot template <typename Traits> struct FixtureBase { - TransportAndExecutorService _service; - + TransportMgr _transport; + ThreadStackExecutor _summaryExecutor; + ExecutorThreadingService _writeService; typename Traits::Config _cfg; std::shared_ptr<bucketdb::BucketDBOwner> _bucketDB; BucketDBHandler _bucketDBHandler; @@ -299,13 +301,15 @@ struct FixtureBase typename Traits::SubDB _subDb; IFeedView::SP _tmpFeedView; FixtureBase() - : _service(1), + : _transport(), + _summaryExecutor(1, 64_Ki), + _writeService(_summaryExecutor), _cfg(), _bucketDB(std::make_shared<bucketdb::BucketDBOwner>()), _bucketDBHandler(*_bucketDB), - _ctx(_service.write(), _bucketDB, _bucketDBHandler), + _ctx(_writeService, _bucketDB, _bucketDBHandler), _baseSchema(), - _snapshot(std::make_unique<MyConfigSnapshot>(_service.transport(), _baseSchema, Traits::ConfigDir::dir())), + _snapshot(std::make_unique<MyConfigSnapshot>(_transport.transport(), _baseSchema, Traits::ConfigDir::dir())), _baseDir(BASE_DIR + "/" + SUB_NAME, BASE_DIR), _subDb(_cfg._cfg, _ctx._ctx), _tmpFeedView() @@ -313,8 +317,8 @@ struct FixtureBase init(); } ~FixtureBase() { - _service.write().master().execute(makeLambdaTask([this]() { _subDb.close(); })); - _service.shutdown(); + _writeService.master().execute(makeLambdaTask([this]() { _subDb.close(); })); + _writeService.shutdown(); } void setBucketStateCalculator(const std::shared_ptr<IBucketStateCalculator> & calc) { vespalib::Gate gate; @@ -323,11 +327,11 @@ struct FixtureBase } template <typename FunctionType> void runInMasterAndSync(FunctionType func) { - proton::test::runInMasterAndSync(_service.write(), func); + proton::test::runInMasterAndSync(_writeService, func); } template <typename FunctionType> void runInMaster(FunctionType func) { - proton::test::runInMaster(_service.write(), func); + proton::test::runInMaster(_writeService, func); } void init() { DocumentSubDbInitializer::SP task = @@ -345,7 +349,7 @@ struct FixtureBase runInMasterAndSync([&]() { performReconfig(serialNum, reconfigSchema, reconfigConfigDir); }); } void performReconfig(SerialNum serialNum, const Schema &reconfigSchema, const vespalib::string &reconfigConfigDir) { - auto newCfg = std::make_unique<MyConfigSnapshot>(_service.transport(), reconfigSchema, reconfigConfigDir); + auto newCfg = std::make_unique<MyConfigSnapshot>(_transport.transport(), reconfigSchema, reconfigConfigDir); DocumentDBConfig::ComparisonResult cmpResult; cmpResult.attributesChanged = true; cmpResult.documenttypesChanged = true; diff --git a/searchcore/src/tests/proton/documentdb/executor_threading_service/CMakeLists.txt b/searchcore/src/tests/proton/documentdb/executor_threading_service/CMakeLists.txt index ba7db5dd377..721f2207213 100644 --- a/searchcore/src/tests/proton/documentdb/executor_threading_service/CMakeLists.txt +++ b/searchcore/src/tests/proton/documentdb/executor_threading_service/CMakeLists.txt @@ -3,7 +3,6 @@ vespa_add_executable(searchcore_executor_threading_service_test_app TEST SOURCES executor_threading_service_test.cpp DEPENDS - searchcore_test searchcore_server GTest::GTest ) diff --git a/searchcore/src/tests/proton/documentdb/executor_threading_service/executor_threading_service_test.cpp b/searchcore/src/tests/proton/documentdb/executor_threading_service/executor_threading_service_test.cpp index 934dcdb36e3..8d7e842bc89 100644 --- a/searchcore/src/tests/proton/documentdb/executor_threading_service/executor_threading_service_test.cpp +++ b/searchcore/src/tests/proton/documentdb/executor_threading_service/executor_threading_service_test.cpp @@ -2,7 +2,6 @@ #include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcore/proton/server/threading_service_config.h> -#include <vespa/searchcore/proton/test/transport_helper.h> #include <vespa/vespalib/gtest/gtest.h> #include <vespa/vespalib/util/sequencedtaskexecutor.h> @@ -21,18 +20,17 @@ to_concrete_type(ISequencedTaskExecutor& exec) class ExecutorThreadingServiceTest : public ::testing::Test { public: - TransportAndExecutor _transport; + vespalib::ThreadStackExecutor shared_executor; std::unique_ptr<ISequencedTaskExecutor> field_writer_executor; std::unique_ptr<ExecutorThreadingService> service; ExecutorThreadingServiceTest() - : _transport(1), + : shared_executor(1, 1000), field_writer_executor(SequencedTaskExecutor::create(my_field_writer_executor, 3, 200)), service() { } void setup(uint32_t indexing_threads, SharedFieldWriterExecutor shared_field_writer) { - service = std::make_unique<ExecutorThreadingService>(_transport.shared(), - _transport.transport(), + service = std::make_unique<ExecutorThreadingService>(shared_executor, field_writer_executor.get(), nullptr, ThreadingServiceConfig::make(indexing_threads, shared_field_writer)); diff --git a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp index 0f1b4412c4f..9a8d8bad60e 100644 --- a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp +++ b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp @@ -22,6 +22,7 @@ #include <vespa/searchcore/proton/server/configstore.h> #include <vespa/document/util/feed_reject_helper.h> #include <vespa/searchcore/proton/server/ddbstate.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcore/proton/server/feedhandler.h> #include <vespa/searchcore/proton/server/i_feed_handler_owner.h> #include <vespa/searchcore/proton/server/ireplayconfig.h> @@ -408,9 +409,11 @@ struct MyTlsWriter : TlsWriter { struct FeedHandlerFixture { DummyFileHeaderContext _fileHeaderContext; - TransportAndExecutorService _service; + TransportMgr _transport; TransLogServer tls; vespalib::string tlsSpec; + vespalib::ThreadStackExecutor sharedExecutor; + ExecutorThreadingService writeService; SchemaContext schema; MyOwner owner; MyResourceWriteFilter writeFilter; @@ -423,9 +426,11 @@ struct FeedHandlerFixture FeedHandler handler; FeedHandlerFixture() : _fileHeaderContext(), - _service(1), - tls(_service.transport(), "mytls", 9016, "mytlsdir", _fileHeaderContext, DomainConfig().setPartSizeLimit(0x10000)), + _transport(), + tls(_transport.transport(), "mytls", 9016, "mytlsdir", _fileHeaderContext, DomainConfig().setPartSizeLimit(0x10000)), tlsSpec("tcp/localhost:9016"), + sharedExecutor(1, 0x10000), + writeService(sharedExecutor), schema(), owner(), _state(), @@ -433,7 +438,7 @@ struct FeedHandlerFixture feedView(schema.getRepo(), schema.getDocType()), _bucketDB(), _bucketDBHandler(_bucketDB), - handler(_service.write(), tlsSpec, schema.getDocType(), owner, + handler(writeService, tlsSpec, schema.getDocType(), owner, writeFilter, replayConfig, tls, &tls_writer) { _state.enterLoadState(); @@ -444,15 +449,15 @@ struct FeedHandlerFixture } ~FeedHandlerFixture() { - _service.shutdown(); + writeService.shutdown(); } template <class FunctionType> inline void runAsMaster(FunctionType &&function) { - _service.write().master().execute(makeLambdaTask(std::move(function))); + writeService.master().execute(makeLambdaTask(std::move(function))); syncMaster(); } void syncMaster() { - _service.write().master().sync(); + writeService.master().sync(); } }; diff --git a/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp b/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp index ba68d47ec22..824a9273404 100644 --- a/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp +++ b/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp @@ -5,6 +5,7 @@ #include <vespa/searchcore/proton/test/bucketfactory.h> #include <vespa/searchcore/proton/common/feedtoken.h> #include <vespa/searchcore/proton/index/i_index_writer.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcore/proton/server/isummaryadapter.h> #include <vespa/searchcore/proton/server/matchview.h> #include <vespa/searchcore/proton/server/searchable_feed_view.h> @@ -19,7 +20,6 @@ #include <vespa/searchcore/proton/test/mock_summary_adapter.h> #include <vespa/searchcore/proton/test/thread_utils.h> #include <vespa/searchcore/proton/test/threading_service_observer.h> -#include <vespa/searchcore/proton/test/transport_helper.h> #include <vespa/searchlib/attribute/attributefactory.h> #include <vespa/document/update/documentupdate.h> #include <vespa/vespalib/util/destructor_callbacks.h> @@ -497,7 +497,8 @@ struct FixtureBase DocumentMetaStoreContext::SP _dmscReal; test::DocumentMetaStoreContextObserver::SP _dmsc; ParamsContext pc; - TransportAndExecutorService _service; + vespalib::ThreadStackExecutor _sharedExecutor; + ExecutorThreadingService _writeServiceReal; test::ThreadingServiceObserver _writeService; SerialNum serial; std::shared_ptr<MyGidToLidChangeHandler> _gidToLidChangeHandler; @@ -689,8 +690,9 @@ FixtureBase::FixtureBase() _dmscReal(std::make_shared<DocumentMetaStoreContext>(std::make_shared<bucketdb::BucketDBOwner>())), _dmsc(std::make_shared<test::DocumentMetaStoreContextObserver>(*_dmscReal)), pc(sc._builder->getDocumentType().getName(), "fileconfig_test"), - _service(1), - _writeService(_service.write()), + _sharedExecutor(1, 0x10000), + _writeServiceReal(_sharedExecutor), + _writeService(_writeServiceReal), serial(0), _gidToLidChangeHandler(std::make_shared<MyGidToLidChangeHandler>()) { @@ -698,7 +700,7 @@ FixtureBase::FixtureBase() } FixtureBase::~FixtureBase() { - _service.shutdown(); + _writeServiceReal.shutdown(); } void diff --git a/searchcore/src/tests/proton/documentdb/fileconfigmanager/fileconfigmanager_test.cpp b/searchcore/src/tests/proton/documentdb/fileconfigmanager/fileconfigmanager_test.cpp index 2de24ee7803..d51ea25f2f5 100644 --- a/searchcore/src/tests/proton/documentdb/fileconfigmanager/fileconfigmanager_test.cpp +++ b/searchcore/src/tests/proton/documentdb/fileconfigmanager/fileconfigmanager_test.cpp @@ -127,7 +127,7 @@ addConfigsThatAreNotSavedToDisk(const DocumentDBConfig &cfg) return builder.build(); } -TEST_FF("requireThatConfigCanBeSavedAndLoaded", Transport(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) +TEST_FF("requireThatConfigCanBeSavedAndLoaded", TransportMgr(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) { DocumentDBConfig::SP fullCfg = addConfigsThatAreNotSavedToDisk(*f2); @@ -140,7 +140,7 @@ TEST_FF("requireThatConfigCanBeSavedAndLoaded", Transport(), DocumentDBConfig::S assertEqualSnapshot(*f2, *esnap); } -TEST_FF("requireThatConfigCanBeSerializedAndDeserialized", Transport(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) +TEST_FF("requireThatConfigCanBeSerializedAndDeserialized", TransportMgr(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) { saveBaseConfigSnapshot(f1.transport(), *f2, 30); nbostream stream; @@ -161,7 +161,7 @@ TEST_FF("requireThatConfigCanBeSerializedAndDeserialized", Transport(), Document EXPECT_EQUAL("dummy", fsnap->getDocTypeName()); } -TEST_FF("requireThatConfigCanBeLoadedWithoutExtraConfigsDataFile", Transport(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) +TEST_FF("requireThatConfigCanBeLoadedWithoutExtraConfigsDataFile", TransportMgr(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) { saveBaseConfigSnapshot(f1.transport(), *f2, 70); EXPECT_FALSE(vespalib::unlink("out/config-70/extraconfigs.dat")); @@ -173,7 +173,7 @@ TEST_FF("requireThatConfigCanBeLoadedWithoutExtraConfigsDataFile", Transport(), } -TEST_FF("requireThatVisibilityDelayIsPropagated", Transport(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) +TEST_FF("requireThatVisibilityDelayIsPropagated", TransportMgr(), DocumentDBConfig::SP(makeBaseConfigSnapshot(f1.transport()))) { saveBaseConfigSnapshot(f1.transport(), *f2, 80); DocumentDBConfig::SP esnap(makeEmptyConfigSnapshot()); diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp index 0144e260ffa..39a5c69376c 100644 --- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp +++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp @@ -349,7 +349,7 @@ public: test::DiskMemUsageNotifier _diskMemUsageNotifier; BucketCreateNotifier _bucketCreateNotifier; MonitoredRefCount _refCount; - Transport _transport; + TransportMgr _transport; MaintenanceController _mc; MaintenanceControllerFixture(); diff --git a/searchcore/src/tests/proton/documentdb/storeonlyfeedview/CMakeLists.txt b/searchcore/src/tests/proton/documentdb/storeonlyfeedview/CMakeLists.txt index 6d94c066d20..3cdad86e9d7 100644 --- a/searchcore/src/tests/proton/documentdb/storeonlyfeedview/CMakeLists.txt +++ b/searchcore/src/tests/proton/documentdb/storeonlyfeedview/CMakeLists.txt @@ -3,7 +3,6 @@ vespa_add_executable(searchcore_storeonlyfeedview_test_app TEST SOURCES storeonlyfeedview_test.cpp DEPENDS - searchcore_test searchcore_server searchcore_feedoperation searchcore_documentmetastore diff --git a/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp b/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp index acd33ab749d..b1d7ee1d0a8 100644 --- a/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp +++ b/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp @@ -3,6 +3,7 @@ #include <vespa/document/base/documentid.h> #include <vespa/document/datatype/datatype.h> #include <vespa/searchcommon/common/schema.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcore/proton/server/putdonecontext.h> #include <vespa/searchcore/proton/server/removedonecontext.h> #include <vespa/searchcore/proton/server/storeonlyfeedview.h> @@ -11,11 +12,9 @@ #include <vespa/searchcore/proton/feedoperation/pruneremoveddocumentsoperation.h> #include <vespa/searchcore/proton/reference/dummy_gid_to_lid_change_handler.h> #include <vespa/searchcore/proton/test/mock_summary_adapter.h> -#include <vespa/searchcore/proton/test/transport_helper.h> #include <vespa/searchcore/proton/test/thread_utils.h> #include <vespa/searchlib/index/docbuilder.h> #include <vespa/vespalib/util/destructor_callbacks.h> -#include <vespa/vespalib/util/size_literals.h> #include <vespa/vespalib/testkit/testapp.h> #include <vespa/log/log.h> @@ -212,7 +211,8 @@ struct FixtureBase { std::atomic<int> heartbeatCount; std::atomic<int> outstandingMoveOps; DocumentMetaStore::SP metaStore; - TransportAndExecutorService _service; + vespalib::ThreadStackExecutor sharedExecutor; + ExecutorThreadingService writeService; std::shared_ptr<PendingLidTrackerBase> pendingLidsForCommit; typename FeedViewType::UP feedview; SerialNum serial_num; @@ -226,7 +226,8 @@ struct FixtureBase { DocumentMetaStore::getFixedName(), search::GrowStrategy(), subDbType)), - _service(1), + sharedExecutor(1, 0x10000), + writeService(sharedExecutor), pendingLidsForCommit(std::make_shared<PendingLidTracker>()), feedview(), serial_num(2u) @@ -234,7 +235,7 @@ struct FixtureBase { StoreOnlyFeedView::PersistentParams params(0, 0, DocTypeName("foo"), subdb_id, subDbType); metaStore->constructFreeList(); ISummaryAdapter::SP adapter = std::make_shared<MySummaryAdapter>(removeCount, putCount, heartbeatCount); - feedview = std::make_unique<FeedViewType>(adapter, metaStore, _service.write(), + feedview = std::make_unique<FeedViewType>(adapter, metaStore, writeService, params, pendingLidsForCommit, outstandingMoveOps); } @@ -262,11 +263,11 @@ struct FixtureBase { template <typename FunctionType> void runInMasterAndSync(FunctionType func) { - test::runInMasterAndSync(_service.write(), func); + test::runInMasterAndSync(writeService, func); } template <typename FunctionType> void runInMaster(FunctionType func) { - test::runInMaster(_service.write(), func); + test::runInMaster(writeService, func); } void force_commit() { diff --git a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp b/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp index a30408a9301..8a2e2084978 100644 --- a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp +++ b/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp @@ -3,13 +3,11 @@ #include <vespa/vespalib/testkit/testapp.h> #include <vespa/searchcore/proton/documentmetastore/i_store.h> #include <vespa/searchcore/proton/documentmetastore/lidreusedelayer.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcore/proton/test/thread_utils.h> #include <vespa/searchcore/proton/test/threading_service_observer.h> -#include <vespa/searchcore/proton/test/transport_helper.h> #include <vespa/vespalib/util/lambdatask.h> #include <vespa/vespalib/util/destructor_callbacks.h> -#include <vespa/vespalib/util/size_literals.h> -#include <vespa/vespalib/util/gate.h> #include <vespa/log/log.h> LOG_SETUP("lidreusedelayer_test"); @@ -119,17 +117,20 @@ class Fixture { public: using LidReuseDelayer = documentmetastore::LidReuseDelayer; - TransportAndExecutorService _service; + vespalib::ThreadStackExecutor _sharedExecutor; + ExecutorThreadingService _writeServiceReal; test::ThreadingServiceObserver _writeService; MyMetaStore _store; std::unique_ptr<LidReuseDelayer> _lidReuseDelayer; Fixture() - : _service(1), - _writeService(_service.write()), + : _sharedExecutor(1, 0x10000), + _writeServiceReal(_sharedExecutor), + _writeService(_writeServiceReal), _store(), _lidReuseDelayer(std::make_unique<LidReuseDelayer>(_writeService, _store)) - { } + { + } ~Fixture() { commit(); diff --git a/searchcore/src/tests/proton/index/CMakeLists.txt b/searchcore/src/tests/proton/index/CMakeLists.txt index 313dd5e0457..62a631dc26e 100644 --- a/searchcore/src/tests/proton/index/CMakeLists.txt +++ b/searchcore/src/tests/proton/index/CMakeLists.txt @@ -3,7 +3,6 @@ vespa_add_executable(searchcore_indexmanager_test_app TEST SOURCES indexmanager_test.cpp DEPENDS - searchcore_test searchcore_server searchcore_index searchcore_flushengine @@ -18,7 +17,6 @@ vespa_add_executable(searchcore_fusionrunner_test_app TEST SOURCES fusionrunner_test.cpp DEPENDS - searchcore_test searchcore_server searchcore_index searchcore_pcommon diff --git a/searchcore/src/tests/proton/index/fusionrunner_test.cpp b/searchcore/src/tests/proton/index/fusionrunner_test.cpp index 38314abd7e5..ae85211fe24 100644 --- a/searchcore/src/tests/proton/index/fusionrunner_test.cpp +++ b/searchcore/src/tests/proton/index/fusionrunner_test.cpp @@ -2,7 +2,7 @@ #include <vespa/fastos/file.h> #include <vespa/searchcore/proton/index/indexmanager.h> -#include <vespa/searchcore/proton/test/transport_helper.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcorespi/index/fusionrunner.h> #include <vespa/vespalib/util/isequencedtaskexecutor.h> #include <vespa/searchlib/common/flush_token.h> @@ -17,7 +17,6 @@ #include <vespa/vespalib/util/gate.h> #include <vespa/vespalib/util/destructor_callbacks.h> #include <vespa/vespalib/testkit/testapp.h> -#include <vespa/vespalib/util/size_literals.h> #include <set> using document::Document; @@ -67,7 +66,8 @@ class Test : public vespalib::TestApp { FixedSourceSelector::UP _selector; FusionSpec _fusion_spec; DummyFileHeaderContext _fileHeaderContext; - TransportAndExecutorService _service; + vespalib::ThreadStackExecutor _sharedExecutor; + ExecutorThreadingService _threadingService; IndexManager::MaintainerOperations _ops; void setUp(); @@ -85,21 +85,21 @@ class Test : public vespalib::TestApp { void requireThatFusionCanBeStopped(); public: - Test(); - ~Test(); + Test() + : _fusion_runner(), + _selector(), + _fusion_spec(), + _fileHeaderContext(), + _sharedExecutor(1, 0x10000), + _threadingService(_sharedExecutor), + _ops(_fileHeaderContext, + TuneFileIndexManager(), 0, + _threadingService) + {} + ~Test() {} int Main() override; }; -Test::Test() - : _fusion_runner(), - _selector(), - _fusion_spec(), - _fileHeaderContext(), - _service(1), - _ops(_fileHeaderContext,TuneFileIndexManager(), 0, _service.write()) -{ } -Test::~Test() = default; - int Test::Main() { @@ -180,8 +180,8 @@ void Test::createIndex(const string &dir, uint32_t id, bool fusion) { Schema schema = getSchema(); DocBuilder doc_builder(schema); MemoryIndex memory_index(schema, MockFieldLengthInspector(), - _service.write().indexFieldInverter(), - _service.write().indexFieldWriter()); + _threadingService.indexFieldInverter(), + _threadingService.indexFieldWriter()); addDocument(doc_builder, memory_index, *_selector, id, id + 0, term); addDocument(doc_builder, memory_index, *_selector, id, id + 1, "bar"); addDocument(doc_builder, memory_index, *_selector, id, id + 2, "baz"); diff --git a/searchcore/src/tests/proton/index/indexmanager_test.cpp b/searchcore/src/tests/proton/index/indexmanager_test.cpp index 6cca28f5b43..1e33482b055 100644 --- a/searchcore/src/tests/proton/index/indexmanager_test.cpp +++ b/searchcore/src/tests/proton/index/indexmanager_test.cpp @@ -2,7 +2,7 @@ #include <vespa/fastos/file.h> #include <vespa/searchcore/proton/index/indexmanager.h> -#include <vespa/searchcore/proton/test/transport_helper.h> +#include <vespa/searchcore/proton/server/executorthreadingservice.h> #include <vespa/searchcorespi/index/index_manager_stats.h> #include <vespa/searchcorespi/index/indexcollection.h> #include <vespa/searchcorespi/index/indexflushtarget.h> @@ -24,6 +24,7 @@ #include <vespa/vespalib/util/destructor_callbacks.h> #include <vespa/vespalib/util/gate.h> #include <vespa/vespalib/util/size_literals.h> +#include <vespa/vespalib/util/threadstackexecutor.h> #include <vespa/vespalib/util/time.h> #include <set> #include <thread> @@ -52,6 +53,7 @@ using search::memoryindex::FieldIndexCollection; using search::queryeval::Source; using std::set; using std::string; +using vespalib::ThreadStackExecutor; using vespalib::makeLambdaTask; using std::chrono::duration_cast; @@ -106,7 +108,8 @@ struct IndexManagerTest : public ::testing::Test { SerialNum _serial_num; IndexManagerDummyReconfigurer _reconfigurer; DummyFileHeaderContext _fileHeaderContext; - TransportAndExecutorService _service; + vespalib::ThreadStackExecutor _sharedExecutor; + ExecutorThreadingService _writeService; std::unique_ptr<IndexManager> _index_manager; Schema _schema; DocBuilder _builder; @@ -115,7 +118,8 @@ struct IndexManagerTest : public ::testing::Test { : _serial_num(0), _reconfigurer(), _fileHeaderContext(), - _service(1), + _sharedExecutor(1, 0x10000), + _writeService(_sharedExecutor), _index_manager(), _schema(getSchema()), _builder(_schema) @@ -126,13 +130,13 @@ struct IndexManagerTest : public ::testing::Test { } ~IndexManagerTest() { - _service.shutdown(); + _writeService.shutdown(); } template <class FunctionType> inline void runAsMaster(FunctionType &&function) { vespalib::Gate gate; - _service.write().master().execute(makeLambdaTask([&gate,function = std::move(function)]() { + _writeService.master().execute(makeLambdaTask([&gate,function = std::move(function)]() { function(); gate.countDown(); })); @@ -141,7 +145,7 @@ struct IndexManagerTest : public ::testing::Test { template <class FunctionType> inline void runAsIndex(FunctionType &&function) { vespalib::Gate gate; - _service.write().index().execute(makeLambdaTask([&gate,function = std::move(function)]() { + _writeService.index().execute(makeLambdaTask([&gate,function = std::move(function)]() { function(); gate.countDown(); })); @@ -206,7 +210,7 @@ IndexManagerTest::resetIndexManager() { _index_manager.reset(); _index_manager = std::make_unique<IndexManager>(index_dir, IndexConfig(), getSchema(), 1, - _reconfigurer, _service.write(), _service.shared(), + _reconfigurer, _writeService, _sharedExecutor, TuneFileIndexManager(), TuneFileAttributes(), _fileHeaderContext); } diff --git a/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp b/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp index 34bc9ea13ed..b4193b0e0b2 100644 --- a/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp +++ b/searchcore/src/tests/proton/proton_config_fetcher/proton_config_fetcher_test.cpp @@ -64,8 +64,8 @@ struct DoctypeFixture { }; struct ConfigTestFixture { - const std::string configId; - Transport transport; + const std::string configId; + TransportMgr transport; ProtonConfigBuilder protonBuilder; DocumenttypesConfigBuilder documenttypesBuilder; FiledistributorrpcConfigBuilder filedistBuilder; diff --git a/searchcore/src/tests/proton/proton_disk_layout/proton_disk_layout_test.cpp b/searchcore/src/tests/proton/proton_disk_layout/proton_disk_layout_test.cpp index 05d993a33e0..08b9a55746b 100644 --- a/searchcore/src/tests/proton/proton_disk_layout/proton_disk_layout_test.cpp +++ b/searchcore/src/tests/proton/proton_disk_layout/proton_disk_layout_test.cpp @@ -16,7 +16,7 @@ using search::transactionlog::client::TransLogClient; using search::transactionlog::TransLogServer; using proton::DocTypeName; using proton::ProtonDiskLayout; -using proton::Transport; +using proton::TransportMgr; static constexpr unsigned int tlsPort = 9018; @@ -31,7 +31,7 @@ struct FixtureBase struct DiskLayoutFixture { DummyFileHeaderContext _fileHeaderContext; - Transport _transport; + TransportMgr _transport; TransLogServer _tls; vespalib::string _tlsSpec; ProtonDiskLayout _diskLayout; @@ -45,7 +45,7 @@ struct DiskLayoutFixture { } } void createDomains(const std::set<vespalib::string> &domains) { - TransLogClient tlc(_transport.transport(), _tlsSpec); + TransLogClient tlc(_tlsSpec); for (const auto &domain : domains) { ASSERT_TRUE(tlc.create(domain)); } @@ -53,7 +53,7 @@ struct DiskLayoutFixture { std::set<vespalib::string> listDomains() { std::vector<vespalib::string> domainVector; - TransLogClient tlc(_transport.transport(), _tlsSpec); + TransLogClient tlc(_tlsSpec); ASSERT_TRUE(tlc.listDomains(domainVector)); std::set<vespalib::string> domains; for (const auto &domain : domainVector) { @@ -97,7 +97,7 @@ DiskLayoutFixture::DiskLayoutFixture() _transport(), _tls(_transport.transport(), "tls", tlsPort, baseDir, _fileHeaderContext), _tlsSpec(vespalib::make_string("tcp/localhost:%u", tlsPort)), - _diskLayout(_transport.transport(), baseDir, _tlsSpec) + _diskLayout(baseDir, _tlsSpec) { } diff --git a/searchcore/src/tests/proton/server/disk_mem_usage_sampler/disk_mem_usage_sampler_test.cpp b/searchcore/src/tests/proton/server/disk_mem_usage_sampler/disk_mem_usage_sampler_test.cpp index 0c06d27c916..9469c8b055f 100644 --- a/searchcore/src/tests/proton/server/disk_mem_usage_sampler/disk_mem_usage_sampler_test.cpp +++ b/searchcore/src/tests/proton/server/disk_mem_usage_sampler/disk_mem_usage_sampler_test.cpp @@ -38,7 +38,7 @@ public: }; struct DiskMemUsageSamplerTest : public ::testing::Test { - Transport transport; + TransportMgr transport; std::unique_ptr<DiskMemUsageSampler> sampler; DiskMemUsageSamplerTest() : transport(), diff --git a/searchcore/src/tests/proton/server/shared_threading_service/shared_threading_service_test.cpp b/searchcore/src/tests/proton/server/shared_threading_service/shared_threading_service_test.cpp index 8f8200486d7..1b8c8d8491b 100644 --- a/searchcore/src/tests/proton/server/shared_threading_service/shared_threading_service_test.cpp +++ b/searchcore/src/tests/proton/server/shared_threading_service/shared_threading_service_test.cpp @@ -48,7 +48,7 @@ TEST(SharedThreadingServiceConfigTest, shared_threads_are_derived_from_cpu_cores class SharedThreadingServiceTest : public ::testing::Test { public: - Transport transport; + TransportMgr transport; std::unique_ptr<SharedThreadingService> service; SharedThreadingServiceTest() : transport(), |