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