From 19bc1625488b7ba4df57eb18cf8d3758b6e5a892 Mon Sep 17 00:00:00 2001 From: Sergey Yakubov <sergey.yakubov@desy.de> Date: Mon, 23 Nov 2020 11:41:49 +0100 Subject: [PATCH] fix memora bug in producer --- producer/api/cpp/src/producer_impl.cpp | 4 ++++ producer/api/python/asapo_producer.pyx.in | 1 - tests/automatic/producer/python_api/producer_api.py | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/producer/api/cpp/src/producer_impl.cpp b/producer/api/cpp/src/producer_impl.cpp index 1a384abf7..b47b45de4 100644 --- a/producer/api/cpp/src/producer_impl.cpp +++ b/producer/api/cpp/src/producer_impl.cpp @@ -100,6 +100,9 @@ Error ProducerImpl::Send(const EventHeader& event_header, bool manage_data_memory) { auto err = CheckProducerRequest(event_header, ingest_mode); if (err) { + if (!manage_data_memory) { + data.release(); + } log__->Error("error checking request - " + err->Explain()); return err; } @@ -230,6 +233,7 @@ Error ProducerImpl::SendData__(const EventHeader& event_header, FileData data_wrapped = FileData{(uint8_t*)data}; if (auto err = CheckData(ingest_mode, event_header, &data_wrapped)) { + data_wrapped.release(); return err; } diff --git a/producer/api/python/asapo_producer.pyx.in b/producer/api/python/asapo_producer.pyx.in index 1319d9439..4a958c741 100644 --- a/producer/api/python/asapo_producer.pyx.in +++ b/producer/api/python/asapo_producer.pyx.in @@ -125,7 +125,6 @@ cdef class PyProducer: Py_XINCREF(<PyObject*>data) if callback != None: Py_XINCREF(<PyObject*>callback) - return cdef EventHeader create_event_header(self,uint64_t id, exposed_path,user_meta,subset,ingest_mode): cdef EventHeader event_header diff --git a/tests/automatic/producer/python_api/producer_api.py b/tests/automatic/producer/python_api/producer_api.py index dd247424c..5b9208887 100644 --- a/tests/automatic/producer/python_api/producer_api.py +++ b/tests/automatic/producer/python_api/producer_api.py @@ -91,8 +91,8 @@ else: sys.exit(1) try: - producer.send_file(0, local_path="./not_exist", exposed_path="./whatever", - ingest_mode=asapo_producer.INGEST_MODE_TRANSFER_METADATA_ONLY, callback=callback) + producer.send_data(0, "processed/" + stream + "/" + "file6", b"hello", + ingest_mode=asapo_producer.DEFAULT_INGEST_MODE, callback=callback) except asapo_producer.AsapoWrongInputError as e: print(e) else: -- GitLab