diff --git a/.travis.yml b/.travis.yml index 48135889..2237b42d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,11 +12,6 @@ env: matrix: - TEST_CASSANDRA_VERSION=3.11.4 -stages: - - test - - build_wheel_manylinux2010 - - build_wheel_manylinux1 - before_install: - source .travis/install_openjdk8.sh @@ -40,27 +35,7 @@ addons: # command to run tests script: - - nosetests --with-coverage -v -s hecuba_py/tests/*.py - - nosetests --with-coverage -v -s hecuba_py/tests/withcassandra - -jobs: - include: - - stage: build_wheel_manylinux2010 - sudo: required - env: - - DOCKER_IMAGE=quay.io/pypa/manylinux2010_x86_64 PLAT=manylinux2010_x86_64 - install: - - docker pull $DOCKER_IMAGE - script: - - docker run --rm -e PLAT=$PLAT -v `pwd`:/io $DOCKER_IMAGE /io/.travis/build-wheels.sh - - stage: build_wheel_manylinux1 - sudo: required - env: - - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 PLAT=manylinux1_x86_64 - install: - - docker pull $DOCKER_IMAGE - script: - - docker run --rm -e PLAT=$PLAT -v `pwd`:/io $DOCKER_IMAGE /io/.travis/build-wheels.sh + - nosetests --with-coverage -v -s storage/cql_iface/tests/api_tests.py # Push the results back to codecov after_success: diff --git a/ccm/ccm b/ccm/ccm new file mode 160000 index 00000000..275699f7 --- /dev/null +++ b/ccm/ccm @@ -0,0 +1 @@ +Subproject commit 275699f79d102b5039b79cc17fa6305dccf18412 diff --git a/hecuba_core/CMakeLists.txt b/hecuba_core/CMakeLists.txt index 328aae27..763ba76d 100644 --- a/hecuba_core/CMakeLists.txt +++ b/hecuba_core/CMakeLists.txt @@ -210,8 +210,8 @@ if (NOT TBB_FOUND) ExternalProject_Add( TBB DOWNLOAD_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies - URL "https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb2017_20161128oss_src.tgz" - URL_HASH SHA1=2c451a5bcf6fc31487b98b4b29651c369874277c + URL "https://github.com/intel/tbb/archive/v2020.0.tar.gz" + URL_HASH SHA1=0b8e9db0c7672eea6207e6749e14ec80b1b4eaa7 CMAKE_COMMAND echo BUILD_COMMAND make tbb tbb_build_prefix=${build_prefix} BUILD_IN_SOURCE 1 diff --git a/hecuba_core/src/TableMetadata.cpp b/hecuba_core/src/TableMetadata.cpp index 7508bc5a..44e2d210 100644 --- a/hecuba_core/src/TableMetadata.cpp +++ b/hecuba_core/src/TableMetadata.cpp @@ -40,9 +40,7 @@ uint16_t TableMetadata::compute_size_of(const ColumnMeta &CM) const { return sizeof(int32_t); } case CASS_VALUE_TYPE_TIMESTAMP: { - //TODO - std::cerr << "Timestamp data type supported yet" << std::endl; - break; + return sizeof(int64_t); } case CASS_VALUE_TYPE_UUID: { return sizeof(uint64_t *); @@ -58,16 +56,10 @@ uint16_t TableMetadata::compute_size_of(const ColumnMeta &CM) const { break; } case CASS_VALUE_TYPE_DATE: { - std::cerr << "Date data type supported yet" << std::endl; - - //TODO - break; + return sizeof(int64_t); } case CASS_VALUE_TYPE_TIME: { - std::cerr << "Time data type supported yet" << std::endl; - //TODO - - break; + return sizeof(int64_t); } case CASS_VALUE_TYPE_SMALL_INT: { return sizeof(int16_t); diff --git a/hecuba_core/src/TupleRow.h b/hecuba_core/src/TupleRow.h index 7b0cb924..0534500c 100644 --- a/hecuba_core/src/TupleRow.h +++ b/hecuba_core/src/TupleRow.h @@ -8,7 +8,7 @@ #include #include #include - +#include #include "TableMetadata.h" @@ -35,6 +35,10 @@ class TupleRow { /* Set methods */ + inline void set_keys(std::set keys) { + this->payload->set_keys(keys); + } + inline void setNull(uint32_t position) { this->payload->setNull(position); } @@ -47,8 +51,11 @@ class TupleRow { this->payload->setTimestamp(timestamp); } - /* Get methods */ + inline const std::set get_keys() const { + return this->payload->get_keys(); + } + inline bool isNull(uint32_t position) const { return this->payload->isNull(position); } @@ -100,6 +107,7 @@ class TupleRow { size_t ptr_length; std::vector null_values; int64_t timestamp; + std::set keys; /* Constructors */ @@ -122,6 +130,11 @@ class TupleRow { * we need to access the position must be divided by 32. This is accomplished by * doing bit shifting (5 positions to the right since 2^5=32). */ + + void set_keys(std::set keys) { + this->keys = keys; + } + void setNull(uint32_t position) { if (!null_values.empty()) this->null_values[position >> 5] |= (0x1 << (position % 32)); } @@ -144,6 +157,9 @@ class TupleRow { return this->timestamp; } + std::set get_keys() const { + return this->keys; + } /* Comparators */ bool operator<(TupleRowData &rhs) { diff --git a/hecuba_core/src/TupleRowFactory.cpp b/hecuba_core/src/TupleRowFactory.cpp index 8cac605c..7734c3a4 100644 --- a/hecuba_core/src/TupleRowFactory.cpp +++ b/hecuba_core/src/TupleRowFactory.cpp @@ -206,12 +206,32 @@ int TupleRowFactory::cass_to_c(const CassValue *lhs, void *data, int16_t col) co cass_iterator_free(tuple_iterator); return 0; } + case CASS_VALUE_TYPE_DATE: { + cass_uint32_t year_month_day; + CassError rc = cass_value_get_uint32(lhs, &year_month_day); + CHECK_CASS("TupleRowFactory: Cassandra to C parse uint32 unsuccessful, column:" + std::to_string(col)); + if (rc == CASS_ERROR_LIB_NULL_VALUE) return -1; + int64_t time = (int64_t) cass_date_time_to_epoch(year_month_day, 0); + memcpy(data, &time, sizeof(int64_t *)); + return 0; + } + case CASS_VALUE_TYPE_TIME: { + CassError rc = cass_value_get_int64(lhs, reinterpret_cast(data)); + CHECK_CASS("TupleRowFactory: Cassandra to C parse int64 unsuccessful, column:" + std::to_string(col)); + if (rc == CASS_ERROR_LIB_NULL_VALUE) return -1; + return 0; + } + case CASS_VALUE_TYPE_TIMESTAMP: { + cass_int64_t time_of_day; + CassError rc = cass_value_get_int64(lhs, &time_of_day); + CHECK_CASS("TupleRowFactory: Cassandra to C parse int64 unsuccessful, column:" + std::to_string(col)); + if (rc == CASS_ERROR_LIB_NULL_VALUE) return -1; + memcpy(data, &time_of_day, sizeof(int64_t *)); + return 0; + } case CASS_VALUE_TYPE_DECIMAL: - case CASS_VALUE_TYPE_TIMESTAMP: case CASS_VALUE_TYPE_TIMEUUID: case CASS_VALUE_TYPE_INET: - case CASS_VALUE_TYPE_DATE: - case CASS_VALUE_TYPE_TIME: case CASS_VALUE_TYPE_LIST: case CASS_VALUE_TYPE_MAP: case CASS_VALUE_TYPE_SET: @@ -326,12 +346,29 @@ TupleRowFactory::bind(CassTuple *tuple, const TupleRow *row) const { CHECK_CASS("TupleRowFactory: Cassandra unsuccessful binding a new Tuple to the existing tuple"); break; } + case CASS_VALUE_TYPE_DATE: { + const time_t time = *((time_t *) element_i); + uint32_t year_month_day = cass_date_from_epoch(time); + CassError rc = cass_tuple_set_uint32(tuple, (size_t) bind_pos, year_month_day); + CHECK_CASS("TupleRowFactory: Cassandra unsuccessful binding int64 to the tuple"); + break; + } + case CASS_VALUE_TYPE_TIME: { + int64_t time = *((int64_t *) element_i); + CassError rc = cass_tuple_set_int64(tuple, (size_t) bind_pos, time); + CHECK_CASS("TupleRowFactory: Cassandra unsuccessful binding int64 to the tuple"); + break; + } + case CASS_VALUE_TYPE_TIMESTAMP: { + cass_int64_t time = *((int64_t *) element_i); + CassError rc = cass_tuple_set_int64(tuple, (size_t) bind_pos, time); + CHECK_CASS("TupleRowFactory: Cassandra unsuccessful binding int64 to the tuple"); + break; + + } case CASS_VALUE_TYPE_DECIMAL: - case CASS_VALUE_TYPE_TIMESTAMP: case CASS_VALUE_TYPE_TIMEUUID: case CASS_VALUE_TYPE_INET: - case CASS_VALUE_TYPE_DATE: - case CASS_VALUE_TYPE_TIME: case CASS_VALUE_TYPE_LIST: case CASS_VALUE_TYPE_MAP: case CASS_VALUE_TYPE_SET: @@ -353,18 +390,17 @@ TupleRowFactory::bind(CassTuple *tuple, const TupleRow *row) const { void TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t offset) const { - if (!row || !statement) throw ModuleException("Statement bind: Null tuple row or statement received"); - if (metadata->size() != row->n_elem()) throw ModuleException("Statement bind: Found " + std::to_string(row->n_elem()) + ", expected " + std::to_string(metadata->size())); - + std::set keys = row->get_keys(); for (uint16_t i = 0; i < row->n_elem(); ++i) { uint16_t bind_pos = offset + i; const void *element_i = row->get_element(i); - if (element_i != nullptr && !row->isNull(i)) { + if (element_i != nullptr && !row->isNull(i)) { //if the element is null, the bind will use the default behaviour (if the table have data, + //the bind will not touch it, if the table does not have data will insert null) switch (metadata->at(i).type) { case CASS_VALUE_TYPE_VARCHAR: case CASS_VALUE_TYPE_TEXT: @@ -373,7 +409,7 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o const char *d = reinterpret_cast(*addr); CassError rc = cass_statement_bind_string(statement, bind_pos, d); CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [text], column:" + - metadata->at(i).info.begin()->second); + metadata->at(i).info.begin()->second); break; } case CASS_VALUE_TYPE_VARINT: @@ -382,7 +418,7 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o CassError rc = cass_statement_bind_int64(statement, bind_pos, *data);//L means long long, K unsigned long long CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [bigint/varint], column:" + - metadata->at(i).info.begin()->second); + metadata->at(i).info.begin()->second); break; } case CASS_VALUE_TYPE_BLOB: { @@ -417,7 +453,7 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o const double *data = static_cast(element_i); CassError rc = cass_statement_bind_double(statement, bind_pos, *data); CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [double], column:" + - metadata->at(i).info.begin()->second); + metadata->at(i).info.begin()->second); break; } @@ -426,7 +462,7 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o CassError rc = cass_statement_bind_float(statement, bind_pos, *data); CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [float], column:" + - metadata->at(i).info.begin()->second); + metadata->at(i).info.begin()->second); break; } @@ -435,7 +471,7 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o CassError rc = cass_statement_bind_int32(statement, bind_pos, *data); CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [int32], column:" + - metadata->at(i).info.begin()->second); + metadata->at(i).info.begin()->second); break; } @@ -449,7 +485,7 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o CassError rc = cass_statement_bind_uuid(statement, bind_pos, cass_uuid); CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [UUID], column:" + - metadata->at(i).info.begin()->second); + metadata->at(i).info.begin()->second); break; } @@ -466,8 +502,7 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o const int8_t *data = static_cast(element_i); CassError rc = cass_statement_bind_int8(statement, bind_pos, *data); CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [tiny int as int8], column:" + - metadata->at(i).info.begin()->second); - + metadata->at(i).info.begin()->second); break; } case CASS_VALUE_TYPE_TUPLE: { @@ -481,12 +516,31 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o cass_tuple_free(tuple); break; } + case CASS_VALUE_TYPE_DATE: { + const time_t time = *((time_t *) element_i); + cass_uint32_t year_month_day = cass_date_from_epoch(time); + CassError rc = cass_statement_bind_uint32(statement, bind_pos, year_month_day); + CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [date as int64], column:" + + metadata->at(i).info.begin()->second); + break; + } + case CASS_VALUE_TYPE_TIME: { + int64_t time = *((int64_t *) element_i); + CassError rc = cass_statement_bind_int64(statement, bind_pos, time); + CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [time as int64], column:" + + metadata->at(i).info.begin()->second); + break; + } + case CASS_VALUE_TYPE_TIMESTAMP: { + cass_int64_t time = *((int64_t *) element_i); + CassError rc = cass_statement_bind_int64(statement, bind_pos, time); + CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [timestamp as int64], column:" + + metadata->at(i).info.begin()->second); + break; + } case CASS_VALUE_TYPE_DECIMAL: - case CASS_VALUE_TYPE_TIMESTAMP: case CASS_VALUE_TYPE_TIMEUUID: case CASS_VALUE_TYPE_INET: - case CASS_VALUE_TYPE_DATE: - case CASS_VALUE_TYPE_TIME: case CASS_VALUE_TYPE_LIST: case CASS_VALUE_TYPE_MAP: case CASS_VALUE_TYPE_SET: @@ -497,10 +551,12 @@ TupleRowFactory::bind(CassStatement *statement, const TupleRow *row, u_int16_t o throw ModuleException("Default behaviour not supported"); } } else { - //Element is a nullptr - CassError rc = cass_statement_bind_null(statement, bind_pos); - CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [Null value], column:" + - metadata->at(i).info.begin()->second); + if (keys.find(metadata->at(i).info.find("name")->second) != keys.end()) { + //Element is a nullptr + CassError rc = cass_statement_bind_null(statement, bind_pos); + CHECK_CASS("TupleRowFactory: Cassandra binding query unsuccessful [Null value], column:" + + metadata->at(i).info.begin()->second); + } } } } diff --git a/hecuba_core/src/py_interface/HCache.cpp b/hecuba_core/src/py_interface/HCache.cpp index 7f5d6283..85802837 100644 --- a/hecuba_core/src/py_interface/HCache.cpp +++ b/hecuba_core/src/py_interface/HCache.cpp @@ -52,8 +52,8 @@ static PyObject *disconnectCassandra(PyObject *self) { /*** HCACHE DATA TYPE METHODS AND SETUP ***/ static PyObject *put_row(HCache *self, PyObject *args) { - PyObject *py_keys, *py_values; - if (!PyArg_ParseTuple(args, "OO", &py_keys, &py_values)) { + PyObject *py_keys, *py_values, *py_union_k; + if (!PyArg_ParseTuple(args, "OOO", &py_keys, &py_values, &py_union_k)) { return NULL; } for (uint16_t key_i = 0; key_i < PyList_Size(py_keys); ++key_i) { @@ -63,9 +63,27 @@ static PyObject *put_row(HCache *self, PyObject *args) { return NULL; } } + std::set keys; + PyObject *elem = NULL, *format_text = NULL; + Py_ssize_t l_size; + char *permanent; + const char *l_temp; + for (uint16_t value_i = 0; value_i < PyList_Size(py_union_k); ++value_i) { + l_temp = PyUnicode_AsUTF8AndSize(PyList_GetItem(py_union_k, value_i), &l_size); + if (!l_temp) { + std::string error_msg = "PyString cannot be parsed"; + PyErr_SetString(PyExc_TypeError, error_msg.c_str()); + return NULL; + } + permanent = (char *) malloc(l_size + 1); + memcpy(permanent, l_temp, l_size); + permanent[l_size] = '\0'; + keys.insert(std::string(permanent)); + } TupleRow *k; try { k = self->keysParser->make_tuple(py_keys); + k->set_keys(keys); } catch (TypeErrorException &e) { PyErr_SetString(PyExc_TypeError, e.what()); @@ -78,6 +96,7 @@ static PyObject *put_row(HCache *self, PyObject *args) { } try { TupleRow *v = self->valuesParser->make_tuple(py_values); + v->set_keys(keys); self->T->put_crow(k, v); delete (k); delete (v); diff --git a/hecuba_core/src/py_interface/PythonParser.cpp b/hecuba_core/src/py_interface/PythonParser.cpp index 3b48ada5..a1a75f79 100644 --- a/hecuba_core/src/py_interface/PythonParser.cpp +++ b/hecuba_core/src/py_interface/PythonParser.cpp @@ -51,8 +51,6 @@ PythonParser::~PythonParser() { */ TupleRow *PythonParser::make_tuple(PyObject *obj) const { if (!PyList_Check(obj)) throw ModuleException("PythonParser: Make tuple: Expected python list"); - if (size_t(PyList_Size(obj)) != parsers.size()) - throw ModuleException("PythonParser: Got less python elements than columns configured"); uint32_t total_bytes = 0; char *buffer = nullptr; if (!metas->empty()) { diff --git a/hecuba_core/src/py_interface/UnitParser.cpp b/hecuba_core/src/py_interface/UnitParser.cpp index ab3d5541..944dff63 100644 --- a/hecuba_core/src/py_interface/UnitParser.cpp +++ b/hecuba_core/src/py_interface/UnitParser.cpp @@ -210,6 +210,133 @@ PyObject *TextParser::c_to_py(const void *payload) const { return PyUnicode_FromString(d); } +/***Timestamp parser ***/ + +TimestampParser::TimestampParser(const ColumnMeta &CM) : UnitParser(CM) { + if (CM.size != sizeof(int64_t *)) + throw ModuleException("Bad size allocated for a timestamp"); + if (!PyDateTimeAPI) PyDateTime_IMPORT; +} + +int16_t TimestampParser::py_to_c(PyObject *obj, void *payload) const { + if (obj == Py_None) return -1; + if (PyDateTime_CheckExact(obj)) { + time_t time_now; + time(&time_now); + struct tm timeinfo = {0}; //express datetime to the current timezone (tzset) + timeinfo.tm_sec = PyDateTime_DATE_GET_SECOND(obj); + timeinfo.tm_min = PyDateTime_DATE_GET_MINUTE(obj); + timeinfo.tm_hour = PyDateTime_DATE_GET_HOUR(obj); + timeinfo.tm_year = PyDateTime_GET_YEAR(obj) - 1900; + timeinfo.tm_mon = PyDateTime_GET_MONTH(obj) - 1; + timeinfo.tm_mday = PyDateTime_GET_DAY(obj); + time_t time = mktime(&timeinfo); + if(time == -1) throw ModuleException("Calendar time cannot be represented"); + auto diff = std::chrono::system_clock::from_time_t(time).time_since_epoch(); + std::time_t time_epoch = 0; + time_t timezone = -1 * std::mktime(std::gmtime(&time_epoch)); + int64_t ms = std::chrono::duration_cast(diff).count() + (timezone * 1000); + memcpy(payload, &ms, sizeof(int64_t *)); + return 0; + } + else { //if pyobject is a double it has already the exact date so is no use to call tzset + if (!PyFloat_Check(obj) && !PyLong_Check(obj)) error_parsing("PyDouble", obj); + double t; + if (!PyArg_Parse(obj, Py_DOUBLE, &t)) error_parsing("PyDouble as Double", obj); + time_t time = std::chrono::system_clock::to_time_t(std::chrono::system_clock::time_point(std::chrono::duration_cast(std::chrono::duration(t)))); + auto diff = std::chrono::system_clock::from_time_t(time).time_since_epoch(); + std::time_t time_epoch = 0; + time_t timezone = -1 * std::mktime(std::gmtime(&time_epoch)); + int64_t ms = std::chrono::duration_cast(diff).count() + (timezone * 1000); + memcpy(payload, &ms, sizeof(int64_t *)); + return 0; + } + error_parsing("PyDateTime_DateType", obj); + return -2; +} + +PyObject *TimestampParser::c_to_py(const void *payload) const { + if (!payload) throw ModuleException("Error parsing from C to Py, expected ptr to int, found NULL"); + time_t time = *(reinterpret_cast(payload)) /1000; //we convert from ms to sec (UNIX time) + struct tm * timeinfo = gmtime(&time); //gmt+0 + PyObject *timestamp_py = PyDateTime_FromDateAndTime(timeinfo->tm_year + 1900, timeinfo->tm_mon + 1, timeinfo->tm_mday, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, 0); + return timestamp_py; +} + +/***Date parser ***/ + +DateParser::DateParser(const ColumnMeta &CM) : UnitParser(CM) { + if (CM.size != sizeof(int64_t *)) + throw ModuleException("Bad size allocated for a date"); + if (!PyDateTimeAPI) PyDateTime_IMPORT; +} + +int16_t DateParser::py_to_c(PyObject *obj, void *payload) const { + if (obj == Py_None) return -1; + if (PyDate_CheckExact(obj)) { + struct tm timeinfo = {0}; //express datetime to the current timezone (tzset) + timeinfo.tm_year = PyDateTime_GET_YEAR(obj) - 1900; + timeinfo.tm_mon = PyDateTime_GET_MONTH(obj) - 1; + timeinfo.tm_mday = PyDateTime_GET_DAY(obj); + std::time_t time_epoch = 0; + time_t time = mktime(&timeinfo); + if(time == -1) throw ModuleException("Calendar time cannot be represented"); + time_t timezone = -1 * std::mktime(std::gmtime(&time_epoch)); + time += timezone; + memcpy(payload, &time, sizeof(uint32_t *)); + return 0; + } + error_parsing("PyDateTime_DateType", obj); + return -2; +} + +PyObject *DateParser::c_to_py(const void *payload) const { + if (!payload) throw ModuleException("Error parsing from C to Py, expected ptr to int, found NULL"); + const time_t *time = reinterpret_cast(payload); + std::tm *now = std::gmtime(time); + PyObject *date_py = PyDate_FromDate(now->tm_year + 1900, now->tm_mon + 1, now->tm_mday); + return date_py; +} + +/***Time parser ***/ + + + +TimeParser::TimeParser(const ColumnMeta &CM) : UnitParser(CM) { + if (CM.size != sizeof(int64_t *)) + throw ModuleException("Bad size allocated for a time"); + if (!PyDateTimeAPI) PyDateTime_IMPORT; +} + +int16_t TimeParser::py_to_c(PyObject *obj, void *payload) const { + if (obj == Py_None) return -1; + if (PyTime_CheckExact(obj)) { + int64_t date = static_cast(PyDateTime_TIME_GET_HOUR(obj)) * 3600000000000 + //time in nanoseconds + static_cast(PyDateTime_TIME_GET_MINUTE(obj)) * 60000000000 + + static_cast(PyDateTime_TIME_GET_SECOND(obj)) * 1000000000 + + PyDateTime_TIME_GET_MICROSECOND(obj) * 1000; + memcpy(payload, &date, sizeof(int64_t *)); + return 0; + } + error_parsing("PyDateTime_DateType", obj); + return -2; +} + +PyObject *TimeParser::c_to_py(const void *payload) const { + if (!payload) throw ModuleException("Error parsing from C to Py, expected ptr to int, found NULL"); + int64_t msec = *(reinterpret_cast(payload)) / 1000; //from nanoseconds to microseconds + int64_t hour = 0, min = 0, sec = 0; + hour = msec / 3600000000; + msec = msec - 3600000000 * hour; + //60000000 microseconds in a minute + min = msec / 60000000; + msec = msec - 60000000 * min; + //1000000 microseconds in a second + sec = msec / 1000000; + msec = msec - 1000000 * sec; + PyObject *time_py = PyTime_FromTime(hour, min, sec, msec); + return time_py; +} /***Bytes parser ***/ @@ -323,7 +450,7 @@ TupleParser::TupleParser(const ColumnMeta &CM) : UnitParser(CM) { int16_t TupleParser::py_to_c(PyObject *obj, void *payload) const { - if (obj == Py_None) throw ModuleException("Error parsing PyObject from py to c, expected a non-none object"); + if (obj == Py_None) return -1; if (!PyTuple_Check(obj)) throw ModuleException("Error parsing PyObject from py to c, expected a tuple object"); if (PyTuple_Size(obj) != col_meta.pointer->size()) throw ModuleException( @@ -390,7 +517,8 @@ int16_t TupleParser::py_to_c(PyObject *obj, void *payload) const { break; } case CASS_VALUE_TYPE_TIMESTAMP: { - //TODO + TimestampParser dp = TimestampParser(col_meta.pointer->at(i)); + dp.py_to_c(tuple_elem, destiny); break; } case CASS_VALUE_TYPE_UUID: { @@ -407,11 +535,13 @@ int16_t TupleParser::py_to_c(PyObject *obj, void *payload) const { break; } case CASS_VALUE_TYPE_DATE: { - + DateParser dp = DateParser(col_meta.pointer->at(i)); + dp.py_to_c(tuple_elem, destiny); break; } case CASS_VALUE_TYPE_TIME: { - //TODO + TimeParser dp = TimeParser(col_meta.pointer->at(i)); + dp.py_to_c(tuple_elem, destiny); break; } case CASS_VALUE_TYPE_SMALL_INT: { @@ -523,7 +653,10 @@ PyObject *TupleParser::c_to_py(const void *payload) const { break; } case CASS_VALUE_TYPE_TIMESTAMP: { - //TODO + TimestampParser uip = TimestampParser((col_meta.pointer->at(i))); + int64_t *p = (int64_t *) inner_data->get_element(i); + PyObject *po = uip.c_to_py(p); + PyTuple_SET_ITEM(tuple, i, po); break; } case CASS_VALUE_TYPE_UUID: { @@ -542,11 +675,17 @@ PyObject *TupleParser::c_to_py(const void *payload) const { break; } case CASS_VALUE_TYPE_DATE: { - + DateParser uip = DateParser((col_meta.pointer->at(i))); + int64_t *p = (int64_t *) inner_data->get_element(i); + PyObject *po = uip.c_to_py(p); + PyTuple_SET_ITEM(tuple, i, po); break; } case CASS_VALUE_TYPE_TIME: { - //TODO + TimeParser uip = TimeParser((col_meta.pointer->at(i))); + int64_t *p = (int64_t *) inner_data->get_element(i); + PyObject *po = uip.c_to_py(p); + PyTuple_SET_ITEM(tuple, i, po); break; } case CASS_VALUE_TYPE_SMALL_INT: { diff --git a/hecuba_core/src/py_interface/UnitParser.h b/hecuba_core/src/py_interface/UnitParser.h index 96ac0024..d61ab07a 100644 --- a/hecuba_core/src/py_interface/UnitParser.h +++ b/hecuba_core/src/py_interface/UnitParser.h @@ -12,7 +12,10 @@ #include #include #include - +#include +#include +#include +#include #include "../TupleRow.h" #include "../ModuleException.h" @@ -170,7 +173,6 @@ class UuidParser : public UnitParser { }; class TupleParser : public UnitParser { - public: TupleParser(const ColumnMeta &CM); @@ -179,10 +181,39 @@ class TupleParser : public UnitParser { virtual PyObject *c_to_py(const void *payload) const; + private: ColumnMeta col_meta; }; +class DateParser : public UnitParser { +public: + DateParser(const ColumnMeta &CM); + + virtual int16_t py_to_c(PyObject *obj, void *payload) const; + + virtual PyObject *c_to_py(const void *payload) const; +}; + +class TimeParser : public UnitParser { +public: + TimeParser(const ColumnMeta &CM); + + virtual int16_t py_to_c(PyObject *obj, void *payload) const; + + virtual PyObject *c_to_py(const void *payload) const; +}; + +class TimestampParser : public UnitParser { +public: + TimestampParser(const ColumnMeta &CM); + + virtual int16_t py_to_c(PyObject *obj, void *payload) const; + + virtual PyObject *c_to_py(const void *payload) const; + + int64_t time_from_timezone(struct tm *timeinfo) const; +}; #endif //HFETCH_UNITPARSER_H diff --git a/hecuba_py/hecuba/IStorage.py b/hecuba_py/hecuba/IStorage.py index ff8e9eb7..2928bcf9 100644 --- a/hecuba_py/hecuba/IStorage.py +++ b/hecuba_py/hecuba/IStorage.py @@ -1,38 +1,45 @@ import uuid -from . import log -from .tools import extract_ks_tab, build_remotely, storage_id_from_name, get_istorage_attrs, generate_token_ring_ranges +from collections import namedtuple +from .tools import storage_id_from_name class AlreadyPersistentError(RuntimeError): pass +class DataModelNode(object): + def __init__(self, name=None, class_name=None, args=None): + self.name = name + self.class_name = class_name + self.args = args + + class IStorage(object): + args_names = ["storage_id"] + args = namedtuple("IStorage", args_names) + _build_args = args(storage_id="") - @property - def storage_id(self): + _data_model_def = None + _data_model_id = None + + def getID(self): return self.__storage_id - @storage_id.setter - def storage_id(self, st_id): + def setID(self, st_id): if st_id is not None and not isinstance(st_id, uuid.UUID): raise TypeError("Storage ID must be an instance of UUID") self.__storage_id = st_id - def __init__(self, *args, **kwargs): - super().__init__() - self._ksp = None - self._table = None - given_name = kwargs.pop("name", None) - if given_name: - self._ksp, self._table = extract_ks_tab(given_name) - name = self._ksp + '.' + self._table - self._set_name(name) - - self.storage_id = kwargs.pop("storage_id", None) - self._built_remotely = kwargs.pop("built_remotely", False) - self._tokens = kwargs.pop("tokens", None) - self._is_persistent = False + storage_id = property(getID, setID) + + def __new__(cls, *args, **kwargs): + toret = super(IStorage, cls).__new__(cls) + toret._ksp = '' + toret._table = '' + toret._is_persistent = False + toret.__storage_id = None + toret._name = '' + return toret def __eq__(self, other): """ @@ -42,76 +49,38 @@ def __eq__(self, other): Returns: boolean (true - equals, false - not equals). """ - return self.__class__ == other.__class__ and self.storage_id == other.storage_id - - def make_persistent(self, name): - if self._is_persistent: - raise AlreadyPersistentError("This Object is already persistent [Before:{}.{}][After:{}]", - self._ksp, self._table, name) + return self.__class__ == other.__class__ and self.getID() == other.getID() - self._ksp, self._table = extract_ks_tab(name) - name = self._ksp + '.' + self._table - self._set_name(name) + @staticmethod + def _store_meta(storage_args): + pass + def make_persistent(self, name): if not self.storage_id: self.storage_id = storage_id_from_name(name) - - # If found data, replace the constructor data - if self._tokens is None: - metas = get_istorage_attrs(self.storage_id) - try: - self._tokens = metas[0].tokens - except IndexError: - self._tokens = generate_token_ring_ranges() - self._is_persistent = True + self._name = name def stop_persistent(self): - if not self._is_persistent: - raise RuntimeError("This Object is not persistent") - + self.storage_id = None self._is_persistent = False def delete_persistent(self): - if not self._is_persistent: - raise RuntimeError("This Object is not persistent") - + self.storage_id = None self._is_persistent = False - def _set_name(self, name): - if not isinstance(name, str): - raise TypeError("Name -{}- should be an instance of str".format(str(name))) - self._name = name - - def _get_name(self): - try: - return self._name - except AttributeError: - return '' - - def getID(self): - """ - Method to retrieve the storage id as string. Used by PyCOMPSs solely. - :return: Storage_id as str - """ - return str(self.storage_id) - def split(self): """ Method used to divide an object into sub-objects. Returns: a subobject everytime is called """ - from .tools import tokens_partitions - try: - tokens = self._build_args.tokens - except AttributeError as ex: - raise RuntimeError("Object {} does not have tokens".format(self._get_name())) - - for token_split in tokens_partitions(self._ksp, self._table, tokens): - storage_id = uuid.uuid4() - log.debug('assigning to {} num tokens {}'.format(str(storage_id), len(token_split))) - new_args = self._build_args._replace(tokens=token_split, storage_id=storage_id) - args_dict = new_args._asdict() - args_dict["built_remotely"] = True - yield build_remotely(args_dict) + raise NotImplemented("Split not supported yet") + + def set_name(self, name): + if not isinstance(name, str): + raise TypeError("Name -{}- should be an instance of str".format(str(name))) + self._name = name + + def get_name(self): + return self._name diff --git a/hecuba_py/hecuba/SO_tests.py b/hecuba_py/hecuba/SO_tests.py new file mode 100644 index 00000000..e18ea87b --- /dev/null +++ b/hecuba_py/hecuba/SO_tests.py @@ -0,0 +1,18 @@ +import unittest + +from hecuba import StorageObj +from datetime import time + +class TestAttributes(StorageObj): + attr1: time + +class MyTestCase(unittest.TestCase): + def test_something(self): + a = TestAttributes("test1") + a.attr1 = time(12, 10, 30) + a = TestAttributes("test1") + self.assertEqual(a.attr1, time(12, 10, 30)) + + +if __name__ == '__main__': + unittest.main() diff --git a/hecuba_py/hecuba/__init__.py b/hecuba_py/hecuba/__init__.py index 9ae57abf..85a8769c 100755 --- a/hecuba_py/hecuba/__init__.py +++ b/hecuba_py/hecuba/__init__.py @@ -1,25 +1,11 @@ -import logging -import os - from cassandra.cluster import Cluster from cassandra.policies import RetryPolicy, RoundRobinPolicy, TokenAwarePolicy -# Set default log.handler to avoid "No handler found" warnings. - -stderrLogger = logging.StreamHandler() -f = '%(filename)s: %(levelname)s: %(funcName)s(): %(lineno)d:\t%(message)s' -stderrLogger.setFormatter(logging.Formatter(f)) +from storage.cql_iface.config import log +from storage.cql_iface.tests.cassandra_cluster_manager import * -log = logging.getLogger('hecuba') -log.addHandler(stderrLogger) - -if 'DEBUG' in os.environ and os.environ['DEBUG'].lower() == "true": - log.setLevel(logging.DEBUG) -elif 'HECUBA_LOG' in os.environ: - log.setLevel(os.environ['HECUBA_LOG'].upper()) -else: - log.setLevel(logging.ERROR) +# Set default log.handler to avoid "No handler found" warnings. class _NRetry(RetryPolicy): def __init__(self, time_to_retry=5): @@ -44,13 +30,20 @@ def on_read_timeout(self, query, consistency, required_responses, received_respo return self.RETHROW, None -class Config: +class Config(object): class __Config: def __init__(self): self.configured = False instance = __Config() + @staticmethod + def execute(statement, args): + if not Config.instance.configured: + raise RuntimeError("Not configured to contact cassandra on CQL_Comm storage") + + return Config.instance.session.execute(statement, args) + def __getattr__(self, item): return getattr(Config.instance, item) @@ -213,18 +206,8 @@ def __init__(self): precision float); """, 'CREATE TYPE IF NOT EXISTS hecuba.np_meta(dims frozen>,type int,block_id int);', - """CREATE TABLE IF NOT EXISTS hecuba - .istorage (storage_id uuid, - class_name text,name text, - istorage_props map, - tokens list>>, - indexed_on list, - qbeast_random text, - qbeast_meta frozen, - numpy_meta frozen, - primary_keys list>>, - columns list>>, - PRIMARY KEY(storage_id)); + """CREATE TABLE IF NOT EXISTS hecuba.istorage (storage_id uuid,table_name text, obj_name text, + data_model blob, tokens list>>, PRIMARY KEY(storage_id)); """] for query in queries: try: @@ -238,19 +221,7 @@ def __init__(self): connectCassandra(singleton.contact_names, singleton.nodePort) -global config +# set_up_default_cassandra() config = Config() - -from .parser import Parser from .storageobj import StorageObj -from .hdict import StorageDict -from .hnumpy import StorageNumpy -from .hfilter import hfilter - -if not filter == hfilter: - import builtins - - builtins.python_filter = filter - builtins.filter = hfilter - -__all__ = ['StorageObj', 'StorageDict', 'StorageNumpy', 'Parser'] +__all__ = ['StorageObj'] \ No newline at end of file diff --git a/hecuba_py/hecuba/hdict.py b/hecuba_py/hecuba/hdict.py index 1861f1ca..e68642df 100644 --- a/hecuba_py/hecuba/hdict.py +++ b/hecuba_py/hecuba/hdict.py @@ -1,201 +1,7 @@ -import uuid -from collections import Iterable, defaultdict -from collections import Mapping -from collections import namedtuple - -import numpy as np -from . import config, log, Parser -from .storageiter import NamedItemsIterator, NamedIterator -from .hnumpy import StorageNumpy -from hfetch import Hcache - -from .IStorage import IStorage -from .tools import get_istorage_attrs, count_name_collision, build_remotely, basic_types - - -class EmbeddedSet(set): - ''' - father is the dictionary containing the set - keys are the keys names of the set in the dictionary - values is the initializing set - ''' - - def __init__(self, father, keys, values=None): - super(EmbeddedSet, self).__init__() - self._father = father - self._keys = keys - if values is not None: - if len(self) != 0: - self.clear() - if isinstance(values, set): - for value in values: - self.add(value) - else: - raise Exception("Set expected.") - - def add(self, value): - keys = self._keys[:] - if not isinstance(value, Iterable) or isinstance(value, str): - keys.append(value) - else: - keys += list(value) - return self._father.__setitem__(keys, []) - - def remove(self, value): - if value in self: - keys = self._keys[:] - if not isinstance(value, Iterable) or isinstance(value, str): - keys.append(value) - else: - keys += list(value) - return self._father.__delitem__(keys) - else: - raise KeyError - - def discard(self, value): - try: - if value in self: - keys = self._keys[:] - if not isinstance(value, Iterable) or isinstance(value, str): - keys.append(value) - else: - keys += list(value) - return self._father.__delitem__(keys) - except KeyError as ex: - pass - - def __len__(self): - query = "SELECT COUNT(*) FROM %s.%s WHERE " % (self._father._ksp, self._father._table) - query = ''.join([query, self._join_keys_query()]) - - try: - result = config.session.execute(query) - return result[0][0] - except Exception as ir: - log.error("Unable to execute %s", query) - raise ir - - def __contains__(self, value): - keys = self._keys[:] - if not isinstance(value, Iterable) or isinstance(value, str): - keys.append(value) - else: - keys += list(value) - return self._father.__contains__(keys) - - def __iter__(self): - keys_set = "" - for key in self._father._get_set_types(): - keys_set += key[0] + ", " - query = "SELECT %s FROM %s.%s WHERE " % (keys_set[:-2], self._father._ksp, self._father._table) - query = ''.join([query, self._join_keys_query()]) - - try: - result = config.session.execute(query) - if len(self._father._get_set_types()) == 1: - result = map(lambda x: x[0], result) - else: - result = map(lambda x: tuple(x), result) - return iter(result) - except Exception as ir: - log.error("Unable to execute %s", query) - raise ir - - def _join_keys_query(self): - keys = [] - for pkey, key in zip(self._father._primary_keys, self._keys): - if pkey["type"] == "text": - actual_key = "'%s'" % key - else: - actual_key = "%s" % key - keys.append(" = ".join([pkey["name"], actual_key])) - all_keys = " and ".join(keys) - - return all_keys - - def union(self, *others): - result = set() - for value in self: - result.add(value) - for other in others: - for value in other: - result.add(value) - return result - - def intersection(self, *others): - result = set() - for value in self: - in_all_others = True - for other in others: - try: - if value not in other: - in_all_others = False - break - except KeyError: - in_all_others = False - break - if in_all_others: - result.add(value) - return result - - def difference(self, *others): - result = set() - for value in self: - in_any_other = False - for other in others: - try: - if value in other: - in_any_other = True - break - except KeyError: - pass - if not in_any_other: - result.add(value) - return result - - def update(self, *others): - for other in others: - for value in other: - self.add(value) - return self - - def issubset(self, other): - if len(self) > len(other): - return False - for value in self: - if value not in other: - return False - return True - - def issuperset(self, other): - if len(self) < len(other): - return False - for value in other: - if value not in self: - return False - return True - - def __eq__(self, other): - return self._father.__eq__(other._father) and self._keys == other._keys - - def __ne__(self, other): - return not (self.__eq__(other)) - - def __lt__(self, other): - return self.__ne__(other) and self.issubset(other) - - def __le__(self, other): - return self.issubset(other) - - def __gt__(self, other): - return self.__ne__(other) and self.issuperset(other) - - def __ge__(self, other): - return self.issuperset(other) - - def clear(self): - for value in self._father[tuple(self._keys)]: - self.remove(value) +from .IStorage import IStorage, AlreadyPersistentError +from .tools import build_remotely, storage_id_from_name, transform_to_dm +import storage +from storage.cql_iface import log class StorageDict(IStorage, dict): @@ -203,279 +9,63 @@ class StorageDict(IStorage, dict): # Object used to access data from workers. # """ - args_names = ["name", "primary_keys", "columns", "tokens", "storage_id", "indexed_on", "class_name", - "built_remotely"] - args = namedtuple('StorageDictArgs', args_names) - _prepared_store_meta = config.session.prepare('INSERT INTO hecuba.istorage' - '(storage_id, class_name, name, tokens, ' - 'primary_keys, columns, indexed_on)' - 'VALUES (?,?,?,?,?,?,?)') - - @staticmethod - def _store_meta(storage_args): - """ - Method to update the info about the StorageDict in the DB metadata table - Args: - storage_args: structure with all data needed to update the metadata - """ - log.debug("StorageDict: storing metas %s", storage_args) - - try: - config.session.execute(StorageDict._prepared_store_meta, - [storage_args.storage_id, storage_args.class_name, - storage_args.name, - storage_args.tokens, storage_args.primary_keys, - storage_args.columns, storage_args.indexed_on]) - except Exception as ex: - log.error("Error creating the StorageDict metadata: %s %s", storage_args, ex) - raise ex - - def __init__(self, name='', primary_keys=None, columns=None, indexed_on=None, storage_id=None, **kwargs): + def __new__(cls, name='', *args, **kwargs): """ Creates a new StorageDict. Args: name (string): the name of the collection/table (keyspace is optional) - primary_keys (list(tuple)): a list of (key,type) primary keys (primary + clustering). - columns (list(tuple)): a list of (key,type) columns - tokens (list): list of tokens storage_id (string): the storage id identifier - indexed_on (list): values that will be used as index - kwargs: other parameters + args: arguments for base constructor + kwargs: arguments for base constructor """ - super().__init__((), name=name, storage_id=storage_id, **kwargs) - - log.debug("CREATED StorageDict(%s,%s)", primary_keys, columns) - - if self.__doc__ is not None: - self._persistent_props = self._parse_comments(self.__doc__) - self._primary_keys = self._persistent_props['primary_keys'] - self._columns = self._persistent_props['columns'] - self._indexed_on = self._persistent_props.get('indexed_on', indexed_on) - else: - self._primary_keys = primary_keys - set_pks = [] - normal_columns = [] - for column_name, column_type in columns: - if column_name.find("_set_") != -1: - set_pks.append((column_name.replace("_set_", ""), column_type)) - else: - normal_columns.append((column_name, column_type)) - if set_pks: - self._columns = [{"type": "set", "columns": set_pks}] - else: - self._columns = columns - self._indexed_on = indexed_on - - self._has_embedded_set = False - build_column = [] - columns = [] - for col in self._columns: - if isinstance(col, dict): - types = col["columns"] - if col["type"] == "set": - self._has_embedded_set = True - for t in types: - build_column.append(("_set_" + t[0], t[1])) - else: - build_column.append((col["name"], col["type"])) - columns.append(col) - else: - columns.append({"type": col[1], "name": col[0]}) - build_column.append(col) - - self._columns = columns[:] - self._primary_keys = [{"type": key[1], "name": key[0]} if isinstance(key, tuple) else key - for key in self._primary_keys] - build_keys = [(key["name"], key["type"]) for key in self._primary_keys] - - key_names = [col["name"] for col in self._primary_keys] - column_names = [col["name"] for col in self._columns] - self._item_builder = namedtuple('row', key_names + column_names) - - if len(key_names) > 1: - self._key_builder = namedtuple('row', key_names) - else: - self._key_builder = None - if self._has_embedded_set: - set_names = [colname for (colname, dt) in self._get_set_types()] - self._column_builder = namedtuple('row', set_names) - elif len(column_names) > 1: - self._column_builder = namedtuple('row', column_names) - else: - self._column_builder = None + if not cls._data_model_id: + # User data model + keys = {} + try: + cls._data_model_def = kwargs['data_model'] + except KeyError: + import typing + dms = [] + for ob in cls.__orig_bases__: + if isinstance(ob, typing.GenericMeta): + dms.append(transform_to_dm(ob)) + if len(dms) != 1: + raise ValueError("Different orig bases than expected ({})".format(len(dms))) - self._k_size = len(key_names) + cls._data_model_def = dms[0] + cls._data_model_def['type'] = cls - class_name = '%s.%s' % (self.__class__.__module__, self.__class__.__name__) + # Storage data model + #keys = {k: uuid.UUID if issubclass(v, IStorage) else v for k, v in cls._data_model_def["value_id"]} + #cols = {k: uuid.UUID if issubclass(v, IStorage) else v for k, v in cls._data_model_def["cols"]} - if build_column is None: - build_column = self._columns[:] + cls._data_model_id = storage.StorageAPI.add_data_model(cls._data_model_def) - self._build_args = self.args(self._get_name(), build_keys, build_column, self._tokens, - self.storage_id, self._indexed_on, class_name, self._built_remotely) + toret = super(StorageDict, cls).__new__(cls, kwargs) + storage_id = kwargs.get('storage_id', None) - if storage_id and not name: - name = get_istorage_attrs(storage_id)[0].name + if storage_id is None and name: + storage_id = storage_id_from_name(name) if name or storage_id: - self.make_persistent(name) - - @classmethod - def _parse_comments(self, comments): - parser = Parser("TypeSpec") - return parser._parse_comments(comments) + toret.setID(storage_id) + toret.set_name(name) + toret._is_persistent = True + storage.StorageAPI.register_persistent_object(cls._data_model_id, toret) + return toret - def __contains__(self, key): - """ - Method that checks if a given key exists in a StorageDict. - Args: - key: the position that we want to check if exists. - Returns: - boolean (true - exists, false - doesn't exist). - """ - if not self.storage_id: - return dict.__contains__(self, key) - else: - try: - # TODO we should save this value in a cache - self._hcache.get_row(self._make_key(key)) - return True - except Exception as ex: - log.warn("persistentDict.__contains__ ex %s", ex) - return False - - def _create_tables(self): - # Prepare data - persistent_keys = [(key["name"], "tuple<" + ",".join(key["columns"]) + ">") if key["type"] == "tuple" - else (key["name"], key["type"]) for key in self._primary_keys] + self._get_set_types() - persistent_values = [] - if not self._has_embedded_set: - for col in self._columns: - if col["type"] == "tuple": - persistent_values.append({"name": col["name"], "type": "tuple<" + ",".join(col["columns"]) + ">"}) - elif col["type"] not in basic_types: - persistent_values.append({"name": col["name"], "type": "uuid"}) - else: - persistent_values.append({"name": col["name"], "type": col["type"]}) - - key_names = [col[0] if isinstance(col, tuple) else col["name"] for col in persistent_keys] - - query_keyspace = "CREATE KEYSPACE IF NOT EXISTS %s WITH replication = %s" % (self._ksp, config.replication) - try: - log.debug('MAKE PERSISTENCE: %s', query_keyspace) - config.session.execute(query_keyspace) - except Exception as ex: - log.warn("Error creating the StorageDict keyspace %s, %s", (query_keyspace), ex) - raise ex - - persistent_columns = [(col["name"], col["type"]) for col in persistent_values] - - query_table = "CREATE TABLE IF NOT EXISTS %s.%s (%s, PRIMARY KEY (%s));" \ - % (self._ksp, - self._table, - ",".join("%s %s" % tup for tup in persistent_keys + persistent_columns), - str.join(',', key_names)) - try: - log.debug('MAKE PERSISTENCE: %s', query_table) - config.session.execute(query_table) - except Exception as ex: - log.warn("Error creating the StorageDict table: %s %s", query_table, ex) - raise ex - - if hasattr(self, '_indexed_on') and self._indexed_on is not None: - index_query = 'CREATE CUSTOM INDEX IF NOT EXISTS ' + self._table + '_idx ON ' - index_query += self._ksp + '.' + self._table + ' (' + str.join(',', self._indexed_on) + ') ' - index_query += "using 'es.bsc.qbeast.index.QbeastIndex';" - try: - config.session.execute(index_query) - except Exception as ex: - log.error("Error creating the Qbeast custom index: %s %s", index_query, ex) - raise ex - trigger_query = "CREATE TRIGGER IF NOT EXISTS %s%s_qtr ON %s.%s USING 'es.bsc.qbeast.index.QbeastTrigger';" % \ - (self._ksp, self._table, self._ksp, self._table) - try: - config.session.execute(trigger_query) - except Exception as ex: - log.error("Error creating the Qbeast trigger: %s %s", trigger_query, ex) - raise ex - - def _flush_data(self): - for k, v in super().items(): - self[k] = v - super().clear() - - def _setup_hcache(self): - key_names = [key["name"] for key in self._primary_keys] - key_names = key_names + [name for name, dt in self._get_set_types()] - - persistent_values = [] - if not self._has_embedded_set: - persistent_values = [{"name": col["name"]} for col in self._columns] - if self._tokens is None: - raise RuntimeError("Tokens for object {} are null".format(self._get_name())) - self._hcache_params = (self._ksp, self._table, - self.storage_id, - self._tokens, key_names, persistent_values, - {'cache_size': config.max_cache_size, - 'writer_par': config.write_callbacks_number, - 'writer_buffer': config.write_buffer_size, - 'timestamped_writes': config.timestamped_writes}) - log.debug("HCACHE params %s", self._hcache_params) - self._hcache = Hcache(*self._hcache_params) - - def _make_key(self, key): - """ - Method used to pass the key data to the StorageDict cache in a proper way. - Args: - key: the data that needs to get the correct format - """ - if isinstance(key, str) or not isinstance(key, Iterable): - if len(self._primary_keys) == 1: - return [key] - else: - raise Exception('missing a primary key') - - if isinstance(key, Iterable) and len(key) == len(self._primary_keys): - return list(key) - elif self._has_embedded_set and isinstance(key, Iterable) and len(key) == ( - len(self._primary_keys) + len(self._get_set_types())): - return list(key) - else: - raise Exception('wrong primary key') - - @staticmethod - def _make_value(value): - """ - Method used to pass the value data to the StorageDict cache in a proper way. - Args: - value: the data that needs to get the correct format - """ - if issubclass(value.__class__, IStorage): - return [value.storage_id] - elif isinstance(value, str) or not isinstance(value, Iterable) or isinstance(value, np.ndarray): - return [value] - elif isinstance(value, tuple): - return [value] - elif isinstance(value, Iterable): - val = [] - for v in value: - if isinstance(v, IStorage): - val.append(v.storage_id) - else: - val.append(v) - return val - else: - return list(value) + def __init__(self, *args, **kwargs): + super().__init__(**kwargs) def __iter__(self): """ Method that overloads the python dict basic iteration, which returns an iterator over the dictionary keys. """ - return self.keys() + return self.keys def make_persistent(self, name): """ @@ -485,41 +75,42 @@ def make_persistent(self, name): Args: name: """ - super().make_persistent(name) + if self._is_persistent: + raise AlreadyPersistentError("This StorageDict is already persistent {}", name) + # Update local StorageDict metadata - self._build_args = self._build_args._replace(storage_id=self.storage_id, name=self._ksp + "." + self._table, - tokens=self._tokens) + super().make_persistent(name) - if not self._built_remotely: - self._create_tables() + storage.StorageAPI.register_persistent_object(self.__class__._data_model_id, self) - self._setup_hcache() + keys = [] + values = [] + # Storing all in-memory values to cassandra + for i, (key, value) in enumerate(dict.items(self)): + keys.append(key) + if isinstance(value, IStorage): + if not value._is_persistent: + sd_name = name + '_' + i + value.make_persistent(sd_name) + values.append(value.getID()) + else: + values.append(value) - self._flush_data() + storage.StorageAPI.put_records(self.storage_id, keys, values) - StorageDict._store_meta(self._build_args) + super(StorageDict, self).clear() def stop_persistent(self): """ Method to turn a StorageDict into non-persistent. """ - super().stop_persistent() - log.debug('STOP PERSISTENCE: %s', self._table) - self._hcache = None - self.storage_id = None + log.debug('STOP PERSISTENCE') + for obj in self.values(): + if isinstance(obj, IStorage): + obj.stop_persistent() - def delete_persistent(self): - """ - Method to empty all data assigned to a StorageDict. - """ - super().delete_persistent() - log.debug('DELETE PERSISTENT: %s', self._table) - query = "TRUNCATE TABLE %s.%s;" % (self._ksp, self._table) - config.session.execute(query) + super().stop_persistent() - query = "DELETE FROM hecuba.istorage where storage_id={}".format(self.storage_id) - config.session.execute(query) - self.storage_id = None def __delitem__(self, key): """ @@ -529,16 +120,8 @@ def __delitem__(self, key): """ if not self.storage_id: dict.__delitem__(self, key) - elif self._has_embedded_set: - self._hcache.delete_row(key) - else: - self._hcache.delete_row([key]) - - def __create_embeddedset(self, key, val=None): - if not isinstance(key, Iterable) or isinstance(key, str): - return EmbeddedSet(self, [key], val) else: - return EmbeddedSet(self, list(key), val) + storage.StorageAPI.put_records(self.storage_id, [key], []) def __getitem__(self, key): """ @@ -552,46 +135,27 @@ def __getitem__(self, key): if not self.storage_id: return dict.__getitem__(self, key) - elif self._has_embedded_set: - return self.__create_embeddedset(key=key) - else: - # Returns always a list with a single entry for the key - persistent_result = self._hcache.get_row(self._make_key(key)) - log.debug("GET ITEM %s[%s]", persistent_result, persistent_result.__class__) - - # we need to transform UUIDs belonging to IStorage objects and rebuild them - # TODO hcache should return objects of the class uuid, not str - final_results = [] - for index, col in enumerate(self._columns): - col_type = col["type"] - element = persistent_result[index] - if col_type not in basic_types: - # element is not a built-in type - info = {"storage_id": element, "tokens": self._build_args.tokens, "class_name": col_type} - element = build_remotely(info) - - final_results.append(element) - - if self._column_builder is not None: - return self._column_builder(*final_results) - else: - return final_results[0] - - def __make_val_persistent(self, val, col=0): - if isinstance(val, list): - for index, element in enumerate(val): - val[index] = self.__make_val_persistent(element, index) - elif isinstance(val, IStorage) and not val._is_persistent: - val.storage_id = uuid.uuid4() - attribute = self._columns[col]["name"] - count = count_name_collision(self._ksp, self._table, attribute) - if count == 0: - name = self._ksp + "." + self._table + "_" + attribute - else: - name = self._ksp + "." + self._table + "_" + attribute + "_" + str(count - 1) - # new name as ksp+table+obj_class_name - val.make_persistent(name) - return val + + if not isinstance(key, list): + key = [key] + + # Returns always a list with a single entry for the key + persistent_result = storage.StorageAPI.get_records(self.storage_id, [key]) + + # we need to transform UUIDs belonging to IStorage objects and rebuild them + final_results = [] + + for i, element in enumerate(persistent_result): + col_type = self.__class__._data_model_def['cols'][i] + if issubclass(col_type, IStorage): + # element is not a built-in type + table_name = self.storage_id + '_' + str(key) + info = {"name": table_name, "storage_id": element, "class_name": col_type} + element = build_remotely(info) + + final_results.append(element) + + return final_results def __setitem__(self, key, val): """ @@ -600,28 +164,18 @@ def __setitem__(self, key, val): key: the position of the value that we want to save val: the value that we want to save in that position """ - if isinstance(val, list): - vals_istorage = [] - for element in val: - if isinstance(element, np.ndarray): - val_istorage = StorageNumpy(element) - else: - val_istorage = element - vals_istorage.append(val_istorage) - - val = vals_istorage - elif isinstance(val, np.ndarray): - val = StorageNumpy(val) - elif isinstance(val, set): - val = self.__create_embeddedset(key=key, val=val) - log.debug('SET ITEM %s->%s', key, val) - if self.storage_id is None: - dict.__setitem__(self, key, val) - elif not isinstance(val, EmbeddedSet): - # Not needed because it is made persistent and inserted to hcache when calling to self.__create_embeddedset - val = self.__make_val_persistent(val) - self._hcache.put_row(self._make_key(key), self._make_value(val)) + + if not isinstance(val, list): + val = [val] + + keys = [def_type(val[i]) for i, def_type in enumerate(self._data_model_def['value_id'].values())] + vals = [def_type(val[i]) for i, def_type in enumerate(self._data_model_def['cols'].values())] + + if not self._is_persistent: + dict.__setitem__(self, keys, vals) + else: + storage.StorageAPI.put_records(self.storage_id, [keys], [vals]) def __repr__(self): """ @@ -632,112 +186,8 @@ def __repr__(self): to_return = {} for item in self.items(): to_return[item[0]] = item[1] - if len(to_return) == config.hecuba_print_limit: + if len(to_return) == 20: return str(to_return) if len(to_return) > 0: return str(to_return) return "" - - def update(self, other=None, **kwargs): - """ - Updates the current dict with a new dictionary or set of attr,value pairs - (those must follow the current dict data model). - Args: - other: python dictionary or StorageDict. All key,val values in it will - be inserted in the current dict. - **kwargs: set of attr:val pairs, to be treated as key,val and inserted - in the current dict. - """ - if other is not None: - if isinstance(other, StorageDict): - for k, v in other.items(): - self[k] = v - else: - for k, v in other.items() if isinstance(other, Mapping) else other: - self[k] = v - for k, v in kwargs.items(): - self[k] = v - - def keys(self): - """ - Obtains the iterator for the keys of the StorageDict - Returns: - if persistent: - iterkeys(self): list of keys - if not persistent: - dict.keys(self) - """ - if self.storage_id: - ik = self._hcache.iterkeys(config.prefetch_size) - iterator = NamedIterator(ik, self._key_builder, self) - if self._has_embedded_set: - iterator = iter(set(iterator)) - - return iterator - else: - return dict.keys(self) - - def items(self): - """ - Obtains the iterator for the key,val pairs of the StorageDict - Returns: - if persistent: - NamedItemsIterator(self): list of key,val pairs - if not persistent: - dict.items(self) - """ - if self.storage_id: - ik = self._hcache.iteritems(config.prefetch_size) - iterator = NamedItemsIterator(self._key_builder, - self._column_builder, - self._k_size, - ik, - self) - if self._has_embedded_set: - d = defaultdict(set) - # iteritems has the set values in different rows, this puts all the set values in the same row - if len(self._get_set_types()) == 1: - for row in iterator: - d[row.key].add(row.value[0]) - else: - for row in iterator: - d[row.key].add(tuple(row.value)) - - iterator = d.items() - - return iterator - else: - return dict.items(self) - - def values(self): - """ - Obtains the iterator for the values of the StorageDict - Returns: - if persistent: - NamedIterator(self): list of valuesStorageDict - if not persistent: - dict.values(self) - """ - if self.storage_id: - if self._has_embedded_set: - items = self.items() - return dict(items).values() - else: - ik = self._hcache.itervalues(config.prefetch_size) - return NamedIterator(ik, self._column_builder, self) - else: - return dict.values(self) - - def get(self, key, default=None): - try: - value = self.__getitem__(key) - except KeyError: - value = default - return value - - def _get_set_types(self): - if self._has_embedded_set: - set_types = [col.get("columns", []) for col in self._columns if isinstance(col, dict)] - return sum(set_types, []) - else: - return [] diff --git a/hecuba_py/hecuba/hfilter.py b/hecuba_py/hecuba/hfilter.py deleted file mode 100644 index 7d2d31a6..00000000 --- a/hecuba_py/hecuba/hfilter.py +++ /dev/null @@ -1,257 +0,0 @@ -from collections import Iterable - -import re -import inspect -from . import config -from .qbeast import QbeastIterator, QbeastMeta - -from .IStorage import IStorage -from .storageiter import NamedItemsIterator - -magical_regex = re.compile(r'(?:\d+(?:\.\d+)?|\w|"\w+"|\'\w+\')+|[^\s\w\_]') -is_numerical = re.compile(r'\d+(\.\d+)?') - - -def func_to_str(func): - func_string = inspect.getsourcelines(func)[0][0] - start, end = func_string.find("lambda"), func_string.rfind(",") - func_string = func_string[start:end] - func_vars = func_string[7:func_string.find(':')].replace(" ", "").split(',') - clean_string = func_string[func_string.find(':') + 1:].replace("\\n", '') - return func_vars, clean_string - - -def substit_var(final_list, func_vars, dictv): - list_with_values = [] - for elem in final_list: - if not isinstance(elem, str) and isinstance(elem, Iterable): - list_with_values.append(elem) - elif (elem != 'in' and not isinstance(elem, int) and not re.match(r'[^\s\w]', elem)) and not elem.isdigit(): - i = elem.find('.') - if i > 0: - elem_var = elem[:i] - if elem_var not in func_vars: - elemm = elem[i:] - get_ele = dictv.get(str(elemm)) - if get_ele is None: - list_with_values.append(elem) - else: - list_with_values.append(dictv.get(str(elem))) - else: - list_with_values.append(elem[i + 1:]) - else: - get_elem = dictv.get(str(elem), elem) - list_with_values.append(get_elem) - else: - list_with_values.append(elem) - - return list_with_values - - -def is_float(var): - return is_numerical.match(var) is not None - - -def transform_to_correct_type(final_list, dictv): - final = [] - reverse_comparison = {">=": "<=", "<=": ">=", ">": "<", "<": ">"} - for elem in final_list: - aux = [] - for i, value in enumerate(elem): - if isinstance(value, (int, float, Iterable)) and not isinstance(value, str): - aux.append(value) - elif not value.find('"') == -1: - aux.append(value.replace('"', '')) - elif not value.find("'") == -1: - aux.append(value.replace("'", "")) - elif value.isdigit() and value not in dictv.values(): - aux.append(int(value)) - elif is_float(value) and value not in dictv.values(): - aux.append(float(value)) - elif value == "True": - aux.append(True) - elif value == "False": - aux.append(False) - else: - aux.append(value) - - if (isinstance(aux[0], str) and aux[0].isdigit()) or isinstance(aux[0], int): - aux.reverse() - aux[1] = reverse_comparison[aux[1]] - - final.append(aux) - - return final - - -def parse_lambda(func): - func_vars, clean_string = func_to_str(func) - parsed_string = magical_regex.findall(clean_string) - simplified_filter = [] - - for i, elem in enumerate(parsed_string): - if i > 0: - if elem == '=' and simplified_filter[-1] == "=": - pass - elif elem == '=' and (simplified_filter[-1] == "<" or simplified_filter[-1] == ">"): - simplified_filter[-1] = simplified_filter[-1] + "=" - elif simplified_filter[-1][-1] == ".": - simplified_filter[-1] += elem - elif elem == ".": - simplified_filter[-1] = simplified_filter[-1] + elem - else: - simplified_filter.append(elem) - else: - simplified_filter.append(elem) - - # Getting variables - dictv = {} - for i, elem in enumerate(func.__code__.co_freevars): - dictv[elem] = func.__closure__[i].cell_contents - - # Combine set or tuple - for i, elem in enumerate(simplified_filter): - if elem == "[": - index = simplified_filter[i:].index(']') - c = ''.join(simplified_filter[i:index + i + 1]) - simplified_filter[i:index + i + 1] = [eval(c)] - elif elem == '(': - index = simplified_filter[i:].index(')') - c = ''.join(simplified_filter[i:index + i + 1]) - joined_tuple = eval(c) - if len(joined_tuple) > 0: - simplified_filter[i:index + i + 1] = [joined_tuple] - else: - simplified_filter[i:index + i + 1] = [] - simplified_filter[i - 1] += "()" - - final_list = [] - while 'and' in simplified_filter: - i = simplified_filter.index('and') - sublist = simplified_filter[:i] - sublist = substit_var(sublist, func_vars, dictv) - final_list.append(sublist) - simplified_filter[:i + 1] = [] - else: - sublist = substit_var(simplified_filter, func_vars, dictv) - final_list.append(sublist) - - # Replace types for correct ones - final_list = transform_to_correct_type(final_list, dictv) - return final_list - - -def hfilter(lambda_filter, iterable): - if not isinstance(iterable, IStorage): - try: - iterable = iterable._storage_father - except AttributeError: - return python_filter(lambda_filter, iterable) - - parsed_lambda = parse_lambda(lambda_filter) - - if hasattr(iterable, '_indexed_on') and iterable._indexed_on is not None: - non_index_arguments = "" - # initialize lists of the same size as indexed_on - from_p = [None] * len(iterable._indexed_on) - to_p = [None] * len(iterable._indexed_on) - precision = None - - for expression in parsed_lambda: - if expression[0] in iterable._indexed_on: - index = iterable._indexed_on.index(expression[0]) - if expression[1] == ">": - from_p[index] = expression[2] - elif expression[1] == "<": - to_p[index] = expression[2] - elif expression[1] == "in": - raise Exception("Cannot use on a QbeastIterator") - else: - non_index_arguments += "%s %s %s AND " % (expression[0], expression[1], expression[2]) - elif expression[0].find("random") > -1: - precision = expression[2] - else: - non_index_arguments += "%s %s %s AND " % (expression[0], expression[1], expression[2]) - - if precision is None: - precision = 1.0 - name = "%s.%s" % (iterable._ksp, iterable._table) - - qbeast_meta = QbeastMeta(non_index_arguments[:-5], from_p, to_p, precision) - new_iterable = QbeastIterator(primary_keys=iterable._primary_keys, columns=iterable._columns, - indexed_on=iterable._indexed_on, name=name, qbeast_meta=qbeast_meta, - tokens=iterable._tokens) - return new_iterable - - predicate = Predicate(iterable) - for expression in parsed_lambda: - if expression[1] in (">", "<", "=", ">=", "<="): - predicate = predicate.comp(col=expression[0], comp=expression[1], value=expression[2]) - elif expression[1] == "in": - predicate = predicate.inside(col=expression[0], values=expression[2]) - else: - raise Exception("Bad expression.") - - return predicate.execute() - - -class Predicate: - def __init__(self, father): - self.father = father - self.primary_keys = [col[0] if isinstance(col, tuple) else col["name"] for col in self.father._primary_keys] - self.columns = [col[0] if isinstance(col, tuple) else col["name"] for col in self.father._columns] - self.predicate = None - - def comp(self, col, value, comp): - ''' - Select all rows where col (==, >=, <=, >, <) value - ''' - if col not in self.columns + self.primary_keys: - raise Exception("Wrong column.") - - if self.predicate is not None: - self.predicate += " AND " - else: - self.predicate = "" - - if isinstance(value, str): - value = "'{}'".format(value) - - self.predicate += " {} {} {}".format(col, comp, value) - return self - - def inside(self, col, values): - ''' - Select all rows where col in values - ''' - if col not in self.primary_keys: - raise Exception("Column not in primary key.") - - if self.predicate is not None: - self.predicate += " AND " - else: - self.predicate = "" - - self.predicate += " {} IN (".format(col) - for value in values: - if isinstance(value, str): - value = "'{}'".format(value) - self.predicate += "{}, ".format(value) - self.predicate = self.predicate[:-2] + ")" - return self - - def execute(self): - ''' - Execute the CQL query - Returns an iterator over the rows - ''' - conditions = self.predicate + " ALLOW FILTERING" - - hiter = self.father._hcache.iteritems({'custom_select': conditions, 'prefetch_size': config.prefetch_size}) - iterator = NamedItemsIterator(self.father._key_builder, - self.father._column_builder, - self.father._k_size, - hiter, - self.father) - - return iterator diff --git a/hecuba_py/hecuba/hnumpy.py b/hecuba_py/hecuba/hnumpy.py deleted file mode 100644 index 330609a2..00000000 --- a/hecuba_py/hecuba/hnumpy.py +++ /dev/null @@ -1,198 +0,0 @@ -from collections import namedtuple - -import numpy as np -from . import config, log -from hfetch import HNumpyStore - -from .IStorage import IStorage -from .tools import extract_ks_tab, get_istorage_attrs - - -class StorageNumpy(IStorage, np.ndarray): - class np_meta(object): - def __init__(self, shape, dtype, block_id): - self.dims = shape - self.type = dtype - self.block_id = block_id - - _build_args = None - _prepared_store_meta = config.session.prepare('INSERT INTO hecuba.istorage' - '(storage_id, class_name, name, numpy_meta)' - 'VALUES (?,?,?,?)') - - args_names = ["storage_id", "class_name", "name", "shape", "dtype", "block_id", "built_remotely"] - args = namedtuple('StorageNumpyArgs', args_names) - - def __new__(cls, input_array=None, storage_id=None, name=None, built_remotely=False, **kwargs): - if name: - name = name + '_numpies' - elif storage_id: - metas = get_istorage_attrs(storage_id) - name = metas[0].name - if input_array is None and name and storage_id is not None: - result = cls.load_array(storage_id, name) - input_array = result[0] - obj = np.asarray(input_array).view(cls) - (obj._ksp, obj._table) = extract_ks_tab(name) - obj._hcache = result[1] - # obj.storage_id = storage_id - # obj._is_persistent = True - elif not name and storage_id is not None: - raise RuntimeError("hnumpy received storage id but not a name") - elif (input_array is not None and name and storage_id is not None) \ - or (storage_id is None and name): - obj = np.asarray(input_array).view(cls) - obj.storage_id = storage_id - obj._is_persistent = False - else: - obj = np.asarray(input_array).view(cls) - obj.storage_id = storage_id - obj._is_persistent = storage_id is not None - # Finally, we must return the newly created object: - obj._block_id = -1 - obj._built_remotely = built_remotely - obj._class_name = '%s.%s' % (cls.__module__, cls.__name__) - return obj - - def __init__(self, input_array=None, storage_id=None, name=None, **kwargs): - IStorage.__init__(self, storage_id=storage_id, name=name, **kwargs) - if input_array is not None and (name or storage_id): - self.make_persistent(name) - - # used as copy constructor - def __array_finalize__(self, obj): - if obj is None: - return - - @staticmethod - def _create_tables(name): - (ksp, table) = extract_ks_tab(name) - query_keyspace = "CREATE KEYSPACE IF NOT EXISTS %s WITH replication = %s" % (ksp, config.replication) - config.session.execute(query_keyspace) - - config.session.execute( - 'CREATE TABLE IF NOT EXISTS ' + ksp + '.' + table + '(storage_id uuid , ' - 'cluster_id int, ' - 'block_id int, ' - 'payload blob, ' - 'PRIMARY KEY((storage_id,cluster_id),block_id))') - - @staticmethod - def _create_hcache(storage_id, name): - (ksp, table) = extract_ks_tab(name) - hcache_params = (ksp, table, - {'cache_size': config.max_cache_size, - 'writer_par': config.write_callbacks_number, - 'write_buffer': config.write_buffer_size, - 'timestamped_writes': config.timestamped_writes}) - - return HNumpyStore(*hcache_params) - - @staticmethod - def _store_meta(storage_args): - """ - Saves the information of the object in the istorage table. - Args:. - storage_args (object): contains all data needed to restore the object from the workers - """ - log.debug("StorageObj: storing media %s", storage_args) - try: - config.session.execute(StorageNumpy._prepared_store_meta, - [storage_args.storage_id, storage_args.class_name, - storage_args.name, StorageNumpy.np_meta(storage_args.shape, storage_args.dtype, - storage_args.block_id)]) - - except Exception as ex: - log.warn("Error creating the StorageNumpy metadata with args: %s" % str(storage_args)) - raise ex - - @staticmethod - def load_array(storage_id, name): - hcache = StorageNumpy._create_hcache(storage_id, name) - result = hcache.get_numpy([storage_id]) - if len(result) == 1: - return [result[0], hcache] - else: - raise KeyError - - def make_persistent(self, name): - if not name.endswith("_numpies"): - name = name + '_numpies' - - super().make_persistent(name) - - self._build_args = self.args(self.storage_id, self._class_name, self._ksp + '.' + self._table, - self.shape, self.dtype.num, self._block_id, self._built_remotely) - - if not self._built_remotely: - self._create_tables(name) - - if not getattr(self, '_hcache', None): - self._hcache = self._create_hcache(self.storage_id, name) - - if len(self.shape) != 0: - self._hcache.save_numpy([self.storage_id], [self]) - StorageNumpy._store_meta(self._build_args) - - def stop_persistent(self): - super().stop_persistent() - - self.storage_id = None - - def delete_persistent(self): - """ - Deletes the Cassandra table where the persistent StorageObj stores data - """ - super().delete_persistent() - query = "DELETE FROM %s.%s WHERE storage_id = %s;" % (self._ksp, self._table, self.storage_id) - query2 = "DELETE FROM hecuba.istorage WHERE storage_id = %s;" % self.storage_id - log.debug("DELETE PERSISTENT: %s", query) - config.session.execute(query) - config.session.execute(query2) - self.storage_id = None - - def __iter__(self): - return iter(self.view(np.ndarray)) - - def __contains__(self, item): - return item in self.view(np.ndarray) - - def __array_ufunc__(self, ufunc, method, *inputs, **kwargs): - args = [] - for input_ in inputs: - if isinstance(input_, StorageNumpy): - args.append(input_.view(np.ndarray)) - else: - args.append(input_) - - outputs = kwargs.pop('out', None) - if outputs: - out_args = [] - for output in outputs: - if isinstance(output, StorageNumpy): - out_args.append(output.view(np.ndarray)) - else: - out_args.append(output) - kwargs['out'] = tuple(out_args) - else: - outputs = (None,) * ufunc.nout - - results = super(StorageNumpy, self).__array_ufunc__(ufunc, method, - *args, **kwargs) - if results is NotImplemented: - return NotImplemented - - if method == 'at': - return - - if self.storage_id and len(self.shape): - self._hcache.save_numpy([self.storage_id], [self]) - - if ufunc.nout == 1: - results = (results,) - - results = tuple((result - if output is None else output) - for result, output in zip(results, outputs)) - - return results[0] if len(results) == 1 else results diff --git a/hecuba_py/hecuba/parser.py b/hecuba_py/hecuba/parser.py deleted file mode 100644 index e8201caa..00000000 --- a/hecuba_py/hecuba/parser.py +++ /dev/null @@ -1,313 +0,0 @@ -import re -from itertools import count - -from .tools import process_path - -_conversions = {'atomicint': 'counter', - 'str': 'text', - 'bool': 'boolean', - 'decimal': 'decimal', - 'float': 'float', - 'int': 'int', - 'tuple': 'tuple', - 'list': 'list', - 'generator': 'list', - 'frozenset': 'set', - 'set': 'set', - 'dict': 'map', - 'long': 'bigint', - 'buffer': 'blob', - 'bytearray': 'blob', - 'counter': 'counter', - 'double': 'double', - 'StorageDict': 'dict', - 'ndarray': 'hecuba.hnumpy.StorageNumpy', - 'numpy.ndarray': 'hecuba.hnumpy.StorageNumpy'} - - -class Parser(object): - args_names = ["type_parser"] - split_dtypes_regex = re.compile('^(tuple|set)<(.*)>$') - - def _append_values_to_list_after_replace(self, vals): - """ - Receives a list of data types. Strips the outermost data type. - Returns: - typev: list of the outer data types, with the keyword "simple" if not found - finalvars: list of the corresponding internal data types - """ - typev = [] - finalvars = [] - for var in vals: - res = self.split_dtypes_regex.search(var) - if res: - typev.append(res.group(1)) - finalvars.append(res.group(2)) - else: - typev.append("simple") - finalvars.append(var) - return typev, finalvars - - def _get_str_primary_keys_values(self, pk): - pk = pk.replace("dict", "", 1).strip() - - # Find point to split keys from values - n_brackets = 0 - pos = 0 - for pos, c in enumerate(pk): - if c == '<': - n_brackets = n_brackets + 1 - elif c == '>': - n_brackets = n_brackets - 1 - if n_brackets == 1: - break - - keys = pk[2:pos] - values = pk[pos + 2:len(pk) - 1] - - if not keys: - raise SyntaxError("Can't detect the keys in the TypeSpec") - - # We get the variables - - varsk = re.findall(r"\w+:", keys) # var keys - varsv = re.findall(r"\w+:", values) # var values - - # Now we clean the variables - - varskc = [v.replace(':', '') for v in varsk] - varsvc = [v.replace(':', '') for v in varsv] - - # We get the valuesk - - for var in varsk: - keys = keys.replace(var, ' ') - - valsc = keys[1:].split(', ') # all valuesk separated by comma - - typevk, finalvarsk = self._append_values_to_list_after_replace(valsc) - - for var in varsv: - values = values.replace(var, ' ', 1) - - valsc1 = values[1:].split(', ') # all valuesk separated by comma - - typevv, finalvarsv = self._append_values_to_list_after_replace(valsc1) - return varskc, varsvc, finalvarsk, finalvarsv, typevk, typevv - - def _set_or_tuple(self, type, pk_col, t, t1): - string_str = "" - t = t.split(',') - converted_primary_keys = ", ".join([_conversions.get(w, w) for w in t]) - converted_primary_keys = converted_primary_keys.split(',') - converted_primary_keys = [w.replace(' ', '') for w in converted_primary_keys] - aux_list = [] # stores ((var_1, val),(var_2, val),...) - if len(converted_primary_keys) > 1: - counter = count(0) - for type_val in converted_primary_keys: - if type == "set": - aux_list.append((t1 + '_' + str(next(counter)), type_val)) - else: - aux_list.append(type_val) - # string_str = ',{"name": "%s", "type": "%s", "%s": ["%s"]}' % (t1, type, pk_col, '","'.join(aux_list)) - string_str = ',{"name": "%s", "type": "%s", "%s": %s}' % (t1, type, pk_col, aux_list) - else: - aux_list.append((t1, converted_primary_keys[0])) - string_str = ',{"name": "%s", "type": "%s", "%s": %s}' % (t1, type, pk_col, aux_list) - return string_str - - def _get_dict_str(self, varsk, cleank, typek): - concatenated_keys = "" - values = "" - string_str = "" - for t, t1, t2 in zip(cleank, varsk, typek): # first keys - if t2 == 'set': - string_str = self._set_or_tuple('set', 'columns', t, t1) - elif t2 == 'tuple': - string_str = self._set_or_tuple('tuple', 'columns', t, t1) - else: - if t not in _conversions: - route = t - cname, module = process_path(route) - try: - mod = __import__(module, globals(), locals(), [cname], 0) - except (ImportError, ValueError) as ex: - raise ImportError("Can't import class {} from module {}".format(cname, module)) - string_str = ',("%s", "%s")' % (t1, t) - else: - type = _conversions[t] - string_str = ',("%s", "%s")' % (t1, type) - concatenated_keys = concatenated_keys + string_str - concatenated_keys = concatenated_keys[1:] - return concatenated_keys - - def _parse_dict(self, line, this): - split_line = line.split() - if len(split_line) == 2: - pk = split_line[1] - table = None - else: - pk = split_line[2] - table = split_line[1] - varsk, varsv, cleank, cleanv, typek, typevv = self._get_str_primary_keys_values(pk) - pks = self._get_dict_str(varsk, cleank, typek) - values = self._get_dict_str(varsv, cleanv, typevv) - if table == None: - - final_dict = '{"primary_keys": [%s], "columns": [%s], "type": "StorageDict"}' % (pks, values) - else: - final_dict = '{"%s": {"primary_keys": [%s], "columns": [%s], "type": "StorageDict"}}' % (table, pks, values) - final_dict = eval(final_dict) - aux = '{"primary_keys": [%s], "columns": [%s], "type": "StorageDict"}' % (pks, values) - if table in this: - this[table].update(eval(aux)) - return this - return final_dict - - def _parse_set_or_tuple(self, type, line, pk_or_col, this): - split_line = line.split() - table = split_line[1] - line = re.sub('[<>, ]', ' ', split_line[2].replace(str(type), "")) - primary_keys = line.split() - converted_primary_keys = ", ".join([_conversions.get(w, w) for w in primary_keys]) - if len(primary_keys) == 1: - string_str = '{"%s":{"%s": "%s","type": "%s"}}' % (table, pk_or_col, converted_primary_keys, str(type)) - final_string = eval(string_str) - aux = '{"%s": "%s","type": "%s"}' % (pk_or_col, converted_primary_keys, str(type)) - else: - string_str = '{"%s":{"%s": "%s","type": "%s"}}' % (table, pk_or_col, converted_primary_keys, str(type)) - final_string = eval(string_str) - aux = '{"%s": {"%s"},"type": "%s"}' % (pk_or_col, converted_primary_keys, str(type)) - if table in this: - this[table].update(eval(aux)) - return this - return final_string - - def _parse_index(self, line, this): - '''Def: parses index declaration, checking for the introduced vars. - Returns: a dict structure with the parsed dict.''' - - if self.type_parser == "TypeSpec": - table = "indexed_on" - atributes = line.split(' ', 2) - atributes = atributes[1].replace(" ", '') - else: - table = line.split()[1] - atributes = line.split(' ', 2) - atributes = atributes[2].replace(" ", '') - - atributes = atributes.split(',') - converted_atributes = ", ".join([_conversions.get(w, w) for w in atributes]) - converted_atributes = converted_atributes.split(',') - converted_atributes = [w.replace(" ", "") for w in converted_atributes] - - if self.type_parser == "TypeSpec": - this[table] = converted_atributes - else: - if table in this: - this[table].update({'indexed_on': converted_atributes}) - else: - this[table] = {'indexed_on': converted_atributes} - - return this - - def _parse_file(self, line, new): - '''Def: Checks if the file declaration is correct. - Returns: the file declaration with a dict structure''' - line = line.split(" ") - output = {} - table_name = line[1] - route = line[2] - cname, module = process_path(route) - try: - mod = __import__(module, globals(), locals(), [cname], 0) - except (ImportError, ValueError) as ex: - raise ImportError("Can't import class {} from module {}".format(cname, module)) - output["type"] = str(route) - if table_name in new: - new[table_name].update(output) - else: - new[table_name] = output - return new - - def _parse_set_tuple_list(self, line, this): - if line.count('set') > 0: - return self._parse_set_or_tuple('set', line, 'primary_keys', this) - elif line.count('tuple') > 0: - return self._parse_set_or_tuple('tuple', line, 'columns', this) - elif line.count('list') > 0: - return self._parse_set_or_tuple('list', line, 'columns', this) - - def _parse_simple(self, line, this): - split_line = line.split() - table = split_line[1] - type = _conversions[split_line[2]] - simple = '{"%s":{"type":"%s"}}' % (table, type) - simple = eval(simple) - if table in this: - this[table].update(simple) - return simple - - def _input_type(self, line, this): - if line.count('<') == 1: # is tuple, set, list - aux = self._parse_set_tuple_list(line, this) - elif line.count('<') == 0 and line.count('Index_on') == 0 and line.count('.') == 0 or ( - line.count('numpy.ndarray') and line.count('dict') == 0): # is simple type - aux = self._parse_simple(line, this) - elif line.count('Index_on') == 1: - aux = self._parse_index(line, this) - elif line.count('.') > 0 and line.count('dict') == 0: - aux = self._parse_file(line, this) - else: # is dict - aux = self._parse_dict(line, this) - return aux - - def _remove_spaces_from_line(self, line): - '''Def: Remove all the spaces of the line splitted from comments - Returns: same line with no spaces.''' - line = re.sub(' +', '*', line) - if line.find('@Index_on') == -1: - line = line[line.find(self.type_parser):] - - if line.count('tuple') == 1 and line.count('dict') == 0: - pos = re.search(r'\b(tuple)\b', line) - pos = pos.start() - elif line.count('set') == 1 and line.count('dict') == 0: - pos = re.search(r'\b(set)\b', line) - pos = pos.start() - elif line.count('@Index_on') == 1: - pos = line.find('@Index_on') - line = line[pos:] - return line.replace('*', ' ') - elif line.count('dict') > 0: - pos = re.search(r'\b(dict)\b', line) - pos = pos.start() - elif line.count('list') > 0: - pos = re.search(r'\b(list)\b', line) - pos = pos.start() - else: - return line.replace('*', ' ') - - line = line[0:pos].replace('*', ' ') + line[pos:].replace("*", '') - return line - - def _parse_comments(self, comments): - '''Def: Parses the comments param to a ClassField or TypeSpec type and checks if the comments are in the correct - format. - Returns: an structure with all the parsed comments.''' - this = {} - '''Erasing first and last line''' - str_splitted = comments.split('\n', 1)[-1] - lines = str_splitted.rsplit('\n', 1)[0] - '''''' - if self.type_parser == "TypeSpec": - for line in lines.split('\n'): - this = self._input_type(self._remove_spaces_from_line(line), this) - if self.type_parser == "ClassField": - for line in lines.split('\n'): - this.update(self._input_type(self._remove_spaces_from_line(line), this)) - return this - - def __init__(self, type_parser): - '''Initializes the Parser class with the type_parser that can be @ClassField or @TypeSpec.''' - self.type_parser = type_parser diff --git a/hecuba_py/hecuba/qbeast.py b/hecuba_py/hecuba/qbeast.py deleted file mode 100644 index 80bd0738..00000000 --- a/hecuba_py/hecuba/qbeast.py +++ /dev/null @@ -1,173 +0,0 @@ -import random -import string -import uuid -from collections import namedtuple - -from hfetch import Hcache - -from . import config, log -from .IStorage import IStorage -from .storageiter import NamedItemsIterator - - -class QbeastMeta(object): - def __init__(self, mem_filter, from_point, to_point, precision): - self.precision = precision - self.from_point = from_point - self.to_point = to_point - self.mem_filter = mem_filter - - -config.cluster.register_user_type('hecuba', 'q_meta', QbeastMeta) - - -class QbeastIterator(IStorage): - """ - Object used to access data from workers. - """ - - args_names = ['primary_keys', 'columns', 'indexed_on', 'name', 'qbeast_meta', 'qbeast_random', - 'storage_id', 'tokens', 'class_name', 'built_remotely'] - _building_args = namedtuple('QbeastArgs', args_names) - _prepared_store_meta = config.session.prepare('INSERT INTO hecuba.istorage' - '(primary_keys, columns, indexed_on, name, qbeast_meta,' - ' qbeast_random, storage_id, tokens, class_name)' - 'VALUES (?,?,?,?,?,?,?,?,?)') - _prepared_set_qbeast_meta = config.session.prepare('INSERT INTO hecuba.istorage (storage_id, qbeast_meta) ' - 'VALUES (?,?)') - - @staticmethod - def _store_meta(storage_args): - log.debug("QbeastIterator: storing metas %s", '') - - try: - config.session.execute(QbeastIterator._prepared_store_meta, - [storage_args.primary_keys, - storage_args.columns, - storage_args.indexed_on, - storage_args.name, - storage_args.qbeast_meta, - storage_args.qbeast_random, - storage_args.storage_id, - storage_args.tokens, - storage_args.class_name]) - except Exception as ex: - log.error("Error creating the StorageDictIx metadata: %s %s", storage_args, ex) - raise ex - - def __init__(self, primary_keys, columns, indexed_on, name, qbeast_meta=None, qbeast_random=None, - storage_id=None, tokens=None, **kwargs): - """ - Creates a new block. - Args: - primary_keys (list(tuple)): a list of (key,type) primary keys (primary + clustering). - columns (list(tuple)): a list of (key,type) columns - indexed_on (list(str)): a list of the names of the indexed columns - name (string): keyspace.table of the Cassandra collection - qbeast_random (str): qbeast random string, when selecting in different nodes this must have the same value - storage_id (uuid): the storage id identifier - tokens (list): list of tokens - """ - super().__init__((), name=name, storage_id=storage_id, **kwargs) - - log.debug("CREATED QbeastIterator(%s,%s,%s,%s)", storage_id, tokens, ) - - self._qbeast_meta = qbeast_meta - self._primary_keys = primary_keys - self._columns = columns - self._indexed_on = indexed_on - - if qbeast_random is None: - self._qbeast_random = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(5)) - else: - self._qbeast_random = qbeast_random - - class_name = '%s.%s' % (self.__class__.__module__, self.__class__.__name__) - - self._primary_keys = [{"type": key[1], "name": key[0]} if isinstance(key, tuple) else key - for key in self._primary_keys] - self._columns = [{"type": col[1], "name": col[0]} if isinstance(col, tuple) else col - for col in self._columns] - - key_names = [col["name"] for col in self._primary_keys] - column_names = [col["name"] for col in self._columns] - if len(key_names) > 1: - self._key_builder = namedtuple('row', key_names) - else: - self._key_builder = None - if len(column_names) > 1: - self._column_builder = namedtuple('row', column_names) - else: - self._column_builder = None - - self._k_size = len(primary_keys) - - build_keys = [(key["name"], key["type"]) for key in self._primary_keys] - build_columns = [(col["name"], col["type"]) for col in self._columns] - - self._build_args = self._building_args( - build_keys, - build_columns, - self._indexed_on, - self._ksp + "." + self._table, - self._qbeast_meta, - self._qbeast_random, - self.storage_id, - self._tokens, - class_name, - self._built_remotely) - - if name or storage_id: - self.make_persistent(name) - - def make_persistent(self, name): - # Update local QbeastIterator metadata - super().make_persistent(name) - self._build_args = self._build_args._replace(storage_id=self.storage_id, name=self._ksp + "." + self._table, - tokens=self._tokens) - - self._setup_hcache() - - QbeastIterator._store_meta(self._build_args) - - def _setup_hcache(self): - key_names = [key["name"] for key in self._primary_keys] - persistent_values = [{"name": col["name"]} for col in self._columns] - - if self._tokens is None: - raise RuntimeError("Tokens for object {} are null".format(self._get_name())) - - self._hcache_params = (self._ksp, self._table, - self.storage_id, - self._tokens, key_names, persistent_values, - {'cache_size': config.max_cache_size, - 'writer_par': config.write_callbacks_number, - 'writer_buffer': config.write_buffer_size, - 'timestamped_writes': config.timestamped_writes}) - log.debug("HCACHE params %s", self._hcache_params) - self._hcache = Hcache(*self._hcache_params) - - def _set_qbeast_meta(self, qbeast_meta): - self._qbeast_meta = qbeast_meta - self._build_args = self._build_args._replace(qbeast_meta=qbeast_meta) - config.session.execute(QbeastIterator._prepared_set_qbeast_meta, [self.storage_id, qbeast_meta]) - - def __len__(self): - return len([row for row in self.__iter__()]) - - def __iter__(self): - if hasattr(self, "_qbeast_meta") and self._qbeast_meta is not None: - conditions = "" - for index, (from_p, to_p) in enumerate(zip(self._qbeast_meta.from_point, self._qbeast_meta.to_point)): - conditions += "{0} > {1} AND {0} < {2} AND ".format(self._indexed_on[index], from_p, to_p) - - conditions = conditions[:-5] + self._qbeast_meta.mem_filter - - conditions += " AND expr(%s_idx, 'precision=%s:%s') ALLOW FILTERING" \ - % (self._table, self._qbeast_meta.precision, self._qbeast_random) - - hiter = self._hcache.iteritems({'custom_select': conditions, 'prefetch_size': config.prefetch_size}) - else: - hiter = self._hcache.iteritems(config.prefetch_size) - - return NamedItemsIterator(self._key_builder, self._column_builder, self._k_size, hiter, self) diff --git a/hecuba_py/hecuba/storageiter.py b/hecuba_py/hecuba/storageiter.py deleted file mode 100644 index ffdefcc1..00000000 --- a/hecuba_py/hecuba/storageiter.py +++ /dev/null @@ -1,49 +0,0 @@ -from collections import namedtuple - - -class NamedIterator: - # Class that allows to iterate over the keys or the values of a dict - def __init__(self, hiterator, builder, father): - self.hiterator = hiterator - self.builder = builder - self._storage_father = father - - def __iter__(self): - return self - - def __next__(self): - n = self.hiterator.get_next() - if self.builder is not None: - if self._storage_father._get_set_types() is not None: - nkeys = len(n) - len(self._storage_father._get_set_types()) - n = n[:nkeys] - return self.builder(*n) - else: - return n[0] - - -class NamedItemsIterator: - # Class that allows to iterate over the keys and the values of a dict - builder = namedtuple('row', 'key, value') - - def __init__(self, key_builder, column_builder, k_size, hiterator, father): - self.key_builder = key_builder - self.k_size = k_size - self.column_builder = column_builder - self.hiterator = hiterator - self._storage_father = father - - def __iter__(self): - return self - - def __next__(self): - n = self.hiterator.get_next() - if self.key_builder is None: - k = n[0] - else: - k = self.key_builder(*n[0:self.k_size]) - if self.column_builder is None: - v = n[self.k_size] - else: - v = self.column_builder(*n[self.k_size:]) - return self.builder(k, v) diff --git a/hecuba_py/hecuba/storageobj.py b/hecuba_py/hecuba/storageobj.py index 1eca0b28..4226208b 100644 --- a/hecuba_py/hecuba/storageobj.py +++ b/hecuba_py/hecuba/storageobj.py @@ -1,127 +1,53 @@ -from collections import namedtuple - import numpy as np -from . import config, log, Parser - -from .hnumpy import StorageNumpy -from .IStorage import IStorage - -from .tools import count_name_collision, get_istorage_attrs, build_remotely, storage_id_from_name, basic_types, \ - valid_types +from .IStorage import IStorage, AlreadyPersistentError +from .tools import storage_id_from_name, transform_to_dm +import uuid +import storage +from storage.cql_iface.config import log class StorageObj(IStorage): - args_names = ["name", "tokens", "storage_id", "class_name", "built_remotely"] - args = namedtuple('StorageObjArgs', args_names) - _prepared_store_meta = config.session.prepare('INSERT INTO hecuba.istorage' - '(storage_id, class_name, name, tokens) ' - ' VALUES (?,?,?,?)') - """ This class is where information will be stored in Hecuba. The information can be in memory, stored in a python dictionary or local variables, or saved in a DB(Cassandra), depending on if it's persistent or not. """ - @staticmethod - def _store_meta(storage_args): - """ - Saves the information of the object in the istorage table. - Args: - storage_args (object): contains all data needed to restore the object from the workers - """ - log.debug("StorageObj: storing media %s", storage_args) - try: + def __new__(cls, name='', *args, **kwargs): + if not cls._data_model_id: + cls._data_model_def = dict() + cls._data_model_def['type'] = cls + cls._data_model_def['value_id'] = {'k': uuid.UUID} + cls._data_model_def['fields'] = transform_to_dm(cls) + cls._data_model_id = storage.StorageAPI.add_data_model(cls._data_model_def) - config.session.execute(StorageObj._prepared_store_meta, - [storage_args.storage_id, - storage_args.class_name, - storage_args.name, - storage_args.tokens]) - except Exception as ex: - log.warn("Error creating the StorageDict metadata: %s, %s", str(storage_args), ex) - raise ex + toret = super(StorageObj, cls).__new__(cls) + storage_id = kwargs.get('storage_id', None) + if storage_id is None and name: + storage_id = storage_id_from_name(name) - @classmethod - def _parse_comments(cls, comments): - parser = Parser("ClassField") - return parser._parse_comments(comments) + if name or storage_id: + + toret.setID(storage_id) + toret.set_name(name) + toret._is_persistent = True + storage.StorageAPI.register_persistent_object(cls._data_model_id, toret) + return toret - def __init__(self, name='', storage_id=None, *args, **kwargs): + def __init__(self, *args, **kwargs): """ Creates a new storageobj. Args: name (string): the name of the Cassandra Keyspace + table where information can be found tokens (list of tuples): token ranges assigned to the new StorageObj storage_id (string): an unique storageobj identifier + istorage_props dict(string,string): a map with the storage id of each contained istorage object. kwargs: more optional parameters """ - # Assign private attributes - self._persistent_props = StorageObj._parse_comments(self.__doc__) - self._persistent_attrs = self._persistent_props.keys() - self._class_name = '%s.%s' % (self.__class__.__module__, self.__class__.__name__) - - super().__init__(*args, **kwargs) - - self._build_args = self.args('', [], None, self._class_name, self._built_remotely) - - if storage_id and not name: - name = get_istorage_attrs(storage_id)[0].name - - if name or storage_id: - self.make_persistent(name) - log.debug("CREATED StorageObj(%s)", self._get_name()) - - def __eq__(self, other): - return self.__class__ == other.__class__ and self.getID() == other.getID() - - def _persist_attributes(self): - """ - Persist in-memory attributes to the data store - """ - for attribute in self._persistent_props.keys(): - try: - val = super().__getattribute__(attribute) - setattr(self, attribute, val) - except AttributeError: - pass - - def _build_is_attribute(self, attribute, persistence_name, storage_id): - # Build the IStorage obj - info = {"tokens": self._tokens, "storage_id": storage_id} - info.update(self._persistent_props[attribute]) - info["built_remotely"] = self._built_remotely - info['name'] = persistence_name - return build_remotely(info) - - def _create_tables(self): - """ - Setups the python structures used to communicate with the backend. - Creates the necessary tables on the backend to store the object data. - """ - - log.info("CREATING KEYSPACE AND TABLE %s %s", self._ksp, self._table) - - query_keyspace = "CREATE KEYSPACE IF NOT EXISTS %s WITH replication = %s" % (self._ksp, config.replication) - config.session.execute(query_keyspace) - - query_simple = 'CREATE TABLE IF NOT EXISTS ' + self._ksp + '.' + self._table + \ - '( storage_id uuid PRIMARY KEY, ' - for key, entry in self._persistent_props.items(): - query_simple += str(key) + ' ' - if entry['type'] != 'dict' and entry['type'] in valid_types: - if entry['type'] == 'list' or entry['type'] == 'tuple': - query_simple += entry['type'] + '<' + entry['columns'] + '>, ' - else: - query_simple += entry['type'] + ', ' - else: - query_simple += 'uuid, ' - try: - config.session.execute(query_simple[:-2] + ' )') - except Exception as ir: - log.error("Unable to execute %s", query_simple) - raise ir + # if self._is_persistent: + # self._load_attributes() + super(StorageObj, self).__init__() def make_persistent(self, name): """ @@ -133,66 +59,58 @@ def make_persistent(self, name): Args: name (string): name with which the table in the DB will be created """ - # Update name + if self._is_persistent: + raise AlreadyPersistentError("This StorageObj is already persistent {}", name) super().make_persistent(name) - self._table = self.__class__.__name__.lower() - - # Arguments used to build objects remotely - self._build_args = self.args(self._get_name(), - self._tokens, - self.storage_id, - self._class_name, - self._built_remotely) - - # If never existed, must create the tables and register - if not self._built_remotely: - self._create_tables() + storage.StorageAPI.register_persistent_object(self.__class__._data_model_id, self) + # defined_attrs = [attr for attr in self._data_model_def.keys() if attr in list(set(dir(self)))] - # Iterate over the objects the user has requested to be persistent - # retrieve them from memory and make them persistent - self._persist_attributes() + attrs = [] + values = [] + for obj_name, obj_type in self._data_model_def["cols"].items(): + try: + pd = object.__getattribute__(self, obj_name) + except AttributeError: + # Attribute unset, no action needed + continue + attrs.append(obj_name) + if isinstance(pd, IStorage): + if not pd._is_persistent: + sd_name = name + "_" + obj_name + pd.make_persistent(sd_name) + values.append(pd.getID()) + else: + values.append(pd) - StorageObj._store_meta(self._build_args) + storage.StorageAPI.put_records(self.storage_id, attrs, values) def stop_persistent(self): """ The StorageObj stops being persistent, but keeps the information already stored in Cassandra """ log.debug("STOP PERSISTENT") - - for obj_name in self._persistent_attrs: - try: - attr = object.__getattribute__(self, obj_name) - except AttributeError: - attr = None - + for obj_name in self._data_model_def.keys(): + attr = getattr(self, obj_name, None) if isinstance(attr, IStorage): attr.stop_persistent() super().stop_persistent() - self.storage_id = None def delete_persistent(self): """ Deletes the Cassandra table where the persistent StorageObj stores data """ - log.debug("DELETE PERSISTENT: %s", self._table) - - for obj_name in self._persistent_attrs: + log.debug('DELETE PERSISTENT') + for obj_name in self._data_model_def.keys(): attr = getattr(self, obj_name, None) if isinstance(attr, IStorage): attr.delete_persistent() - query = "TRUNCATE TABLE %s.%s;" % (self._ksp, self._table) - config.session.execute(query) - - query = "DELETE FROM hecuba.istorage where storage_id={}".format(self.storage_id) - config.session.execute(query) + storage.StorageAPI.delete_persistent_object(self.storage_id) super().delete_persistent() - self.storage_id = None def __getattr__(self, attribute): """ @@ -204,69 +122,36 @@ def __getattr__(self, attribute): Returns: value: obtained value """ - if attribute.startswith('_') or attribute not in self._persistent_attrs: - return super().__getattribute__(attribute) - - if not self.storage_id: - if self._persistent_props[attribute]["type"] not in basic_types: - value = self._build_is_attribute(attribute, persistence_name='', storage_id=None) - super().__setattr__(attribute, value) - return super().__getattribute__(attribute) - - ''' - StorageObj is persistent. - If the attribute is not a built-in object, we might have it in memory. - Since python works using references any modification from another reference will affect this attribute, - which is the expected behaviour. Therefore, is safe to store in-memory the Hecuba objects. - ''' try: - return super().__getattribute__(attribute) + return object.__getattribute__(self, attribute) except AttributeError as ex: - # Not present in memory, we will need to rebuild it - pass - - query = "SELECT %s FROM %s.%s WHERE storage_id = %s;" % (attribute, self._ksp, self._table, self.storage_id) - log.debug("GETATTR: %s", query) - try: - result = config.session.execute(query) - except Exception as ex: - log.warn("GETATTR ex %s", ex) - raise ex + if attribute.startswith('_') or attribute not in self._data_model_def['fields'].keys(): + raise ex - is_istorage_attr = self._persistent_props[attribute]["type"] not in basic_types + value_info = self._data_model_def['fields'][attribute] - try: - value = result[0][0] - # if exists but is set to None, the current behaviour is raising AttributeError - if not is_istorage_attr and value is None: - raise AttributeError('value not found') - except IndexError as ex: - if not is_istorage_attr: - raise AttributeError('value not found') - value = None - except TypeError as ex: - log.warn("ERROR ON QUERY RESULT {}".format(str(result))) - raise ex - - if is_istorage_attr: - # Value is uuid or None, because it was not found - - attr_name = attribute.lower() - my_name = self._get_name() - trailing_name = my_name[my_name.rfind('.') + 1:] + if not self.storage_id: + if not issubclass(value_info, IStorage): + raise AttributeError + else: + # We build the object, because Hecuba allows accessing attributes without previous initialization + value = value_info(data_model=self._data_model_def["fields"][attribute], build_remotely=True) + object.__setattr__(self, attribute, value) + return value - count = count_name_collision(self._ksp, trailing_name, attr_name) - attr_name = self._ksp + '.' + trailing_name + '_' + attr_name - if count > 1: - attr_name += '_' + str(count - 2) + assert self._is_persistent - if value is None: - value = storage_id_from_name(attr_name) + attr = storage.StorageAPI.get_record(self.storage_id, {'k': self.storage_id}) - value = self._build_is_attribute(attribute, persistence_name=attr_name, storage_id=value) + if issubclass(value_info, IStorage): + # Build the IStorage obj + attr = value_info(name=self.get_name() + '_' + attribute, storage_id=attr, + data_model=self._data_model_def["fields"][attribute], build_remotely=True) + elif not attr: + raise AttributeError('Value not found for {}'.format(attribute)) - super().__setattr__(attribute, value) - return value + object.__setattr__(self, attribute, attr) + return attr def __setattr__(self, attribute, value): """ @@ -277,60 +162,41 @@ def __setattr__(self, attribute, value): attribute: name of the value that we want to set value: value that we want to save """ - if attribute[0] is '_' or attribute not in self._persistent_attrs: - super().__setattr__(attribute, value) + if attribute[0] is '_' or attribute not in self._data_model_def["fields"].keys(): + object.__setattr__(self, attribute, value) return # Transform numpy.ndarrays and python dicts to StorageNumpy and StorageDicts if not isinstance(value, IStorage): if isinstance(value, np.ndarray): - value = StorageNumpy(value) + pass + #value = StorageNumpy(value) elif isinstance(value, dict): - per_dict = self._persistent_props[attribute] - info = {"name": '', "tokens": self._build_args.tokens, "storage_id": None, - "built_remotely": self._built_remotely} - info.update(per_dict) - new_value = build_remotely(info) - new_value.update(value) - value = new_value + obj_class = self._data_model_defDataModelId["fields"][attribute]["type"] + value = obj_class(data_model=self._data_model_def["fields"][attribute], build_remotely=False) if self.storage_id: # Write attribute to the storage if isinstance(value, IStorage): if not value.storage_id: - attr_name = attribute.lower() - my_name = self._get_name() - trailing_name = my_name[my_name.rfind('.')+1:] - - count = count_name_collision(self._ksp, trailing_name, attr_name) - attr_name = self._ksp + '.' + trailing_name + '_' + attr_name - if count != 0: - attr_name += '_' + str(count - 1) + attr_name = self._name + '_' + attribute + attr_id = storage_id_from_name(attr_name) value.make_persistent(attr_name) - # We store the storage_id when the object belongs to an Hecuba class - values = [self.storage_id, value.storage_id] - # We store the IStorage object in memory, to avoid rebuilding when it is not necessary + storage.StorageAPI.put_records(self.storage_id, [attribute], [attr_id]) + else: + storage.StorageAPI.put_records(self.storage_id, [attribute], [value.storage_id]) else: - values = [self.storage_id, value] - - query = "INSERT INTO %s.%s (storage_id,%s)" % (self._ksp, self._table, attribute) - query += " VALUES (%s,%s)" - - log.debug("SETATTR: " + query) - config.session.execute(query, values) + storage.StorageAPI.put_record(self.storage_id, {'k': self.storage_id}, {attribute: value}) # We store all the attributes in memory - super().__setattr__(attribute, value) + object.__setattr__(self, attribute, value) - def __delattr__(self, name): + def __delattr__(self, item): """ Method that deletes a given attribute from a StorageObj Args: item: the name of the attribute to be deleted """ - super().__delattr__(name) - - if self.storage_id and name in self._persistent_attrs: - query = "UPDATE %s.%s SET %s = null WHERE storage_id = %s" % ( - self._ksp, self._table, name, self.storage_id) - config.session.execute(query) + if self.storage_id and item in self._data_model_def["cols"].keys(): + storage.StorageAPI.put_records(self.storage_id, [item], []) + object.__delattr__(self, item) diff --git a/hecuba_py/hecuba/tools.py b/hecuba_py/hecuba/tools.py index b75893a2..37d60ff2 100644 --- a/hecuba_py/hecuba/tools.py +++ b/hecuba_py/hecuba/tools.py @@ -1,11 +1,8 @@ import uuid -from . import config - -valid_types = ['counter', 'text', 'boolean', 'decimal', 'double', 'int', 'list', 'set', 'map', 'bigint', 'blob', - 'tuple', 'dict', 'float', 'numpy.ndarray'] - -basic_types = valid_types[:-1] - +import typing +from collections import OrderedDict +import hecuba +from storage.cql_iface import config def storage_id_from_name(name): return uuid.uuid3(uuid.NAMESPACE_DNS, name) @@ -184,22 +181,90 @@ def build_remotely(args): if obj_type is None: raise TypeError("Trying to build an IStorage obj without giving the type") - # Import the class defined by obj_type - cname, module = process_path(obj_type) - - ''' - if obj_type == str(StorageNumpy.__class__): - return StorageNumpy(name=args["name"], storage_id=args["storage_id"]) - ''' - try: - mod = __import__(module, globals(), locals(), [cname], 0) - except ValueError: - raise ValueError("Can't import class {} from module {}".format(cname, module)) - - imported_class = getattr(mod, cname) + imported_class = obj_type args = {k: v for k, v in args.items() if k in imported_class.args_names} args.pop('class_name', None) args["built_remotely"] = built_remotely return imported_class(**args) + + +def import_class(module_path): + """ + Method to obtain module and class_name from a module path + Args: + module_path(String): path in the format module.class_name + Returns: + tuple containing class_name and module + """ + class_name, mod = process_path(module_path) + + try: + mod = __import__(mod, globals(), locals(), [class_name], 0) + except ValueError: + raise ValueError("Can't import class {} from module {}".format(class_name, mod)) + + imported_class = getattr(mod, class_name) + return imported_class + + +def build_data_model(description): + res = {} + for k, v in description.items(): + dt = update_type(v["type"]) + try: + keys = build_data_model(v["primary_keys"]) + values = build_data_model(v["columns"]) + res[k] = {"keys": keys, "cols": values, "type": dt} + except KeyError: + res[k] = dt + return res + # {k: update_type(v['type']) for k, v in persistent_props.items()} + + +def update_type(d): + if d == 'text': + return str + res = import_class(d) + return res + + +def transform_to_dm(ob, depth=0): + """ + + :param ob: + :return: List or dict + """ + if issubclass(ob, hecuba.IStorage.IStorage) and depth>0: + return ob + elif issubclass(ob, typing.Dict): + fields = {} + + keys = transform_to_dm(ob.__args__[0], depth+1) # Keys + cols = transform_to_dm(ob.__args__[1], depth+1) # Cols + + if isinstance(keys, list): + keys = {"key{}".format(i): transform_to_dm(v, depth+1) for i, v in enumerate(keys)} + if isinstance(cols, list): + cols = {"col{}".format(i): transform_to_dm(v,depth+1) for i, v in enumerate(cols)} + + fields["value_id"] = keys + fields["cols"] = cols + return fields + + elif hasattr(ob, '__annotations__'): + annot = ob.__annotations__ + if isinstance(annot, OrderedDict): + return {k: transform_to_dm(v, depth+1) for k,v in annot.items()} + elif isinstance(annot, dict): + return {k: transform_to_dm(v, depth+1) for k,v in annot.items()} + else: + raise NotImplemented + + elif hasattr(ob, '__args__'): + if issubclass(ob, typing.Tuple): + t = [transform_to_dm(cl, depth+1) for cl in ob.__args__ if cl != ()] + return tuple(t) + return [transform_to_dm(cl, depth+1) for cl in ob.__args__ if cl != ()] + return ob diff --git a/hecuba_py/tests/withcassandra/embeddedset_tests.py b/hecuba_py/tests/withcassandra/embeddedset_tests.py deleted file mode 100644 index c2ceb46a..00000000 --- a/hecuba_py/tests/withcassandra/embeddedset_tests.py +++ /dev/null @@ -1,607 +0,0 @@ -import time -import unittest - -from hecuba import StorageDict -from hecuba import config -from hecuba.IStorage \ - import build_remotely - - -class DictSet(StorageDict): - ''' - @TypeSpec dict<, s1:set> - ''' - - -class DictSet2(StorageDict): - ''' - @TypeSpec dict<, s1:set> - ''' - - -class DictSet3(StorageDict): - ''' - @TypeSpec dict<, s1:set> - ''' - - -class DictSet4(StorageDict): - ''' - @TypeSpec dict<, s1:set> - ''' - - -class EmbeddedSetTest(unittest.TestCase): - def testAddRemove(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet2("pruebas0.dictset") - d["1", 1] = {"1"} - d["2", 2] = {"1", "2", "3"} - - self.assertTrue("1" in d["1", 1]) - for i in range(1, 4): - self.assertTrue(str(i) in d["2", 2]) - - d["2", 2].remove("2") - self.assertEqual(False, d["2", 2].__contains__("2")) - - d["2", 2].add("2") - self.assertTrue("2" in d["2", 2]) - self.assertEqual(1, len(d["1", 1])) - self.assertEqual(3, len(d["2", 2])) - - def testDoNotCollide(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet2("pruebas0.dictset") - d["1", 1] = {"1"} - d["2", 2] = {"1", "2", "3"} - - self.assertTrue("1" in d["1", 1]) - for i in range(1, 4): - self.assertTrue(str(i) in d["2", 2]) - - del d - d2 = DictSet2("pruebas0.dictset") - self.assertTrue("1" in d2["1", 1]) - for i in range(1, 4): - self.assertTrue(str(i) in d2["2", 2]) - - def testDoNotCollideEmptySet(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet2("pruebas0.dictset") - d["1", 1] = {"1", "2", "3"} - d["2", 2] = {"4", "5", "6"} - - del d - d2 = DictSet2("pruebas0.dictset") - - d2["1", 1].add("4") - d2["2", 2].add("7") - self.assertTrue("4" in d2["1", 1]) - self.assertTrue("7" in d2["2", 2]) - - d2["1", 1] = {"1"} - d2["2", 2] = {"1", "2", "3"} - self.assertTrue("1" in d2["1", 1]) - for i in range(1, 4): - self.assertTrue(str(i) in d2["2", 2]) - - self.assertEqual(len(d2["1", 1]), 1) - self.assertEqual(len(d2["2", 2]), 3) - - def testAddRemove2(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet4("pruebas0.dictset") - d["10"] = {1} - d["20"] = {1, 2, 3} - - self.assertTrue(1 in d["10"]) - for i in range(1, 4): - self.assertTrue(i in d["20"]) - - d["20"].remove(2) - self.assertEqual(False, d["20"].__contains__("2")) - - d["20"].add(2) - self.assertTrue(2 in d["20"]) - self.assertEqual(1, len(d["10"])) - self.assertEqual(3, len(d["20"])) - - def testAddRemoveInt(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet3("pruebas0.dictset") - d["1", 1] = {1} - d["2", 2] = {1, 2, 3} - - self.assertTrue(1 in d["1", 1]) - for i in range(1, 4): - self.assertTrue(i in d["2", 2]) - - d["2", 2].remove(2) - - self.assertEqual(False, d["2", 2].__contains__(2)) - - d["2", 2].add(2) - self.assertTrue(2 in d["2", 2]) - self.assertEqual(1, len(d["1", 1])) - self.assertEqual(3, len(d["2", 2])) - - def testIter(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet2("pruebas0.dictset") - - d["2", 2] = set() - for i in range(0, 10): - d["2", 2].add(str(i)) - time.sleep(1) - l = [] - for value in d["2", 2]: - l.append(value) - for i in range(0, 10): - self.assertTrue(str(i) in l) - - self.assertEqual(len(l), len(d["2", 2])) - - def testAddRemoveTuple(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet("pruebas0.dictset") - d["1", 1] = {(1, 1)} - d["2", 2] = {(1, 1), (2, 2), (3, 3)} - - self.assertTrue((1, 1) in d["1", 1]) - for i in range(1, 4): - self.assertTrue((i, i) in d["2", 2]) - - d["2", 2].remove((2, 2)) - self.assertEqual(False, d["2", 2].__contains__((2, 2))) - - d["2", 2].add((2, 2)) - self.assertTrue((2, 2) in d["2", 2]) - self.assertEqual(1, len(d["1", 1])) - self.assertEqual(3, len(d["2", 2])) - - def testIterTuple(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset") - d = DictSet("pruebas0.dictset") - - d["2", 2] = set() - for i in range(0, 10): - d["2", 2].add((i, i)) - time.sleep(1) - l = [] - for value in d["2", 2]: - l.append(value) - for i in range(0, 10): - self.assertTrue((i, i) in l) - - self.assertEqual(len(l), len(d["2", 2])) - - def testUnion(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet2("pruebas0.dictset1") - d2 = DictSet2("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - for i in range(10, 20): - d2["1", 1].add(str(i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet2("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].union(d2["1", 1]) - time.sleep(3) - for i in range(0, 20): - self.assertTrue(str(i) in d3["2", 2]) - self.assertEqual(20, len(d3["2", 2])) - - def testIntersection(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet2("pruebas0.dictset1") - d2 = DictSet2("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - if i < 5: - d2["1", 1].add(str(i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet2("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].intersection(d2["1", 1]) - for i in range(0, 5): - self.assertTrue(str(i) in d3["2", 2]) - self.assertEqual(5, len(d3["2", 2])) - - def testDifference(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet2("pruebas0.dictset1") - d2 = DictSet2("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - if i < 5: - d2["1", 1].add(str(i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet2("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].difference(d2["1", 1]) - for i in range(5, 10): - self.assertTrue(str(i) in d3["2", 2]) - self.assertEqual(5, len(d3["2", 2])) - - def testUnionWithTuples(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet("pruebas0.dictset1") - d2 = DictSet("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add((i, i)) - for i in range(10, 20): - d2["1", 1].add((i, i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].union(d2["1", 1]) - time.sleep(3) - for i in range(0, 20): - self.assertTrue((i, i) in d3["2", 2]) - self.assertEqual(20, len(d3["2", 2])) - - def testIntersectionWithTuples(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet("pruebas0.dictset1") - d2 = DictSet("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add((i, i)) - if i < 5: - d2["1", 1].add((i, i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].intersection(d2["1", 1]) - for i in range(0, 5): - self.assertTrue((i, i) in d3["2", 2]) - self.assertEqual(5, len(d3["2", 2])) - - def testDifferenceWithTuples(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet("pruebas0.dictset1") - d2 = DictSet("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add((i, i)) - if i < 5: - d2["1", 1].add((i, i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].difference(d2["1", 1]) - for i in range(5, 10): - self.assertTrue((i, i) in d3["2", 2]) - self.assertEqual(5, len(d3["2", 2])) - - def testUnionWithSet(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet2("pruebas0.dictset1") - - d1["0", 0] = set() - s1 = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - s1.add(str(i + 10)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet2("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].union(s1) - time.sleep(3) - for i in range(0, 20): - self.assertTrue(str(i) in d3["2", 2]) - self.assertEqual(20, len(d3["2", 2])) - - def testIntersectionWithSet(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet2("pruebas0.dictset1") - - d1["0", 0] = set() - s1 = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - if i < 5: - s1.add(str(i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet2("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].intersection(s1) - for i in range(0, 5): - self.assertTrue(str(i) in d3["2", 2]) - self.assertEqual(5, len(d3["2", 2])) - - def testDifferenceWithSet(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet2("pruebas0.dictset1") - - d1["0", 0] = set() - s1 = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - if i < 5: - s1.add(str(i)) - - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset3") - d3 = DictSet2("pruebas0.dictset3") - d3["2", 2] = d1["0", 0].difference(s1) - for i in range(5, 10): - self.assertTrue(str(i) in d3["2", 2]) - self.assertEqual(5, len(d3["2", 2])) - - def testIterKeys(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet3("pruebas0.dictset1") - - d1["0", 0] = {1, 2, 3, 4} - d1["0", 1] = {1, 2, 3, 4} - d1["1", 0] = {1, 2, 3, 4} - d1["1", 1] = {1, 2, 3, 4} - time.sleep(1) - l = list() - for keys in d1.keys(): - l.append(keys) - - self.assertTrue(("0", 0) in l) - self.assertTrue(("0", 1) in l) - self.assertTrue(("1", 0) in l) - self.assertTrue(("1", 1) in l) - self.assertEqual(4, len(l)) - - def testItems(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet3("pruebas0.dictset1") - - d1["0", 0] = {1, 2, 3, 4} - d1["0", 1] = {1, 2, 3, 4} - d1["1", 0] = {1, 2, 3, 4} - d1["1", 1] = {1, 2, 3, 4} - time.sleep(1) - d = dict() - for keys, value in d1.items(): - d[keys] = value - self.assertTrue(("0", 0) in d) - self.assertTrue(("0", 1) in d) - self.assertTrue(("1", 0) in d) - self.assertTrue(("1", 1) in d) - self.assertEqual(4, len(d)) - self.assertEqual({1, 2, 3, 4}, d["0", 0]) - self.assertEqual({1, 2, 3, 4}, d["0", 1]) - self.assertEqual({1, 2, 3, 4}, d["1", 0]) - self.assertEqual({1, 2, 3, 4}, d["1", 1]) - - def testIterValues(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet3("pruebas0.dictset1") - - d1["0", 0] = {1, 2, 3, 4} - d1["0", 1] = {5, 6, 7, 8} - d1["1", 0] = {8, 7, 6, 5} - d1["1", 1] = {4, 3, 2, 1} - time.sleep(1) - l = list() - for value in d1.values(): - l.append(value) - - self.assertEqual(4, len(l)) - self.assertTrue({1, 2, 3, 4} in l) - self.assertTrue({5, 6, 7, 8} in l) - self.assertTrue({8, 7, 6, 5} in l) - self.assertTrue({4, 3, 2, 1} in l) - - def testItemsWithTuples(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet("pruebas0.dictset1") - - d1["key0", 15] = {(0, 1), (2, 3), (4, 5)} - d1["key1", 30] = {(10, 11), (12, 13), (14, 15)} - time.sleep(1) - d = dict() - for keys, value in d1.items(): - d[keys] = value - self.assertTrue(("key0", 15) in d) - self.assertTrue(("key1", 30) in d) - self.assertEqual(2, len(d)) - self.assertEqual({(0, 1), (2, 3), (4, 5)}, d["key0", 15]) - self.assertEqual({(10, 11), (12, 13), (14, 15)}, d["key1", 30]) - - def testUpdate(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet2("pruebas0.dictset1") - d2 = DictSet2("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - for i in range(5, 20): - d2["1", 1].add(str(i)) - - time.sleep(2) - d1["0", 0].update(d2["1", 1]) - time.sleep(3) - for i in range(0, 20): - self.assertTrue(str(i) in d1["0", 0]) - self.assertEqual(20, len(d1["0", 0])) - - def testIsSubset(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet2("pruebas0.dictset1") - d2 = DictSet2("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - d2["1", 1].add(str(i)) - for i in range(10, 20): - d2["1", 1].add(str(i)) - - b = d1["0", 0].issubset(d2["1", 1]) - self.assertTrue(b) - - b = d2["1", 1].issubset(d1["0", 0]) - self.assertFalse(b) - - def testIsSuperset(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset2") - d1 = DictSet2("pruebas0.dictset1") - d2 = DictSet2("pruebas0.dictset2") - - d1["0", 0] = set() - d2["1", 1] = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - d2["1", 1].add(str(i)) - for i in range(10, 20): - d2["1", 1].add(str(i)) - - time.sleep(2) - b = d2["1", 1].issuperset(d1["0", 0]) - self.assertTrue(b) - - b = d1["0", 0].issuperset(d2["1", 1]) - self.assertFalse(b) - - def testIsSubsetWithSet(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet2("pruebas0.dictset1") - - d1["0", 0] = set() - s = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - s.add(str(i)) - for i in range(10, 20): - s.add(str(i)) - - b = d1["0", 0].issubset(s) - self.assertTrue(b) - - b = s.issubset(d1["0", 0]) - self.assertFalse(b) - - def testIsSupersetWithSet(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet2("pruebas0.dictset1") - - d1["0", 0] = set() - s = set() - for i in range(0, 10): - d1["0", 0].add(str(i)) - s.add(str(i)) - for i in range(10, 20): - s.add(str(i)) - - b = s.issuperset(d1["0", 0]) - self.assertTrue(b) - - b = d1["0", 0].issuperset(s) - self.assertFalse(b) - - def testRemoveKeyError(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet2("pruebas0.dictset1") - - d1["0", 0] = {"0", "1", "2"} - d1["0", 0].remove("0") - self.assertRaises(Exception, d1["0", 0].remove, "3") - self.assertTrue("1" in d1["0", 0]) - self.assertTrue("2" in d1["0", 0]) - self.assertEqual(False, d1["0", 0].__contains__("0")) - - def testDiscard(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet2("pruebas0.dictset1") - - d1["0", 0] = {"0", "1", "2"} - d1["0", 0].discard("0") - d1["0", 0].discard("3") - self.assertTrue("1" in d1["0", 0]) - self.assertTrue("2" in d1["0", 0]) - self.assertEqual(False, d1["0", 0].__contains__("0")) - - def testClear(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d1 = DictSet3("pruebas0.dictset1") - - d1["0", 0] = {1, 2} - time.sleep(1) - self.assertEqual(2, len(d1["0", 0])) - d1["0", 0].clear() - self.assertEqual(0, len(d1["0", 0])) - - def testSplit(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d = DictSet3("pruebas0.dictset1") - for i in range(0, 10): - for j in range(0, 3): - d[str(i), j] = {0, 1, 2, 3, 4, 5} - - d2 = dict() - for partition in d.split(): - for ((key0, key1), val) in partition.items(): - d2[key0, key1] = val - - for i in range(0, 10): - for j in range(0, 3): - self.assertEqual(d2[str(i), j], {0, 1, 2, 3, 4, 5}) - - def testBuildRemotely(self): - config.session.execute("DROP TABLE IF EXISTS pruebas0.dictset1") - d = DictSet("pruebas0.dictset1") - for i in range(0, 10): - d[str(i), i] = {(0, 0), (1, 1), (2, 2)} - - self.assertEqual('dictset1', d._table) - self.assertEqual('pruebas0', d._ksp) - - res = config.session.execute( - 'SELECT storage_id, primary_keys, columns, class_name, name, tokens, istorage_props,indexed_on ' + - 'FROM hecuba.istorage WHERE storage_id = %s', [d.storage_id])[0] - - self.assertEqual(res.storage_id, d.storage_id) - self.assertEqual(res.class_name, DictSet.__module__ + "." + DictSet.__name__) - self.assertEqual(res.name, 'pruebas0.dictset1') - - rebuild = build_remotely(res._asdict()) - self.assertEqual(rebuild._built_remotely, True) - self.assertEqual('dictset1', rebuild._table) - self.assertEqual('pruebas0', rebuild._ksp) - self.assertEqual(res.storage_id, rebuild.storage_id) - - self.assertEqual(d._is_persistent, rebuild._is_persistent) - - for i in range(0, 10): - # rebuild[str(i), i] does not return data, we must iterate over it - self.assertEqual({i for i in rebuild[str(i), i]}, {(0, 0), (1, 1), (2, 2)}) - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/hfetch_flush_tests.py b/hecuba_py/tests/withcassandra/hfetch_flush_tests.py deleted file mode 100644 index 0631c200..00000000 --- a/hecuba_py/tests/withcassandra/hfetch_flush_tests.py +++ /dev/null @@ -1,90 +0,0 @@ -import unittest - -from hecuba import config -from hecuba.hdict import StorageDict - - -class StorageDictTest(unittest.TestCase): - @staticmethod - def setUpClass(): - config.session.execute( - "CREATE KEYSPACE IF NOT EXISTS ksp WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};") - - def test_flush_items_100(self): - config.session.execute("DROP TABLE IF EXISTS ksp.tb1") - config.session.execute("CREATE TABLE ksp.tb1(pk1 int, val1 text,PRIMARY KEY(pk1))") - pd = StorageDict('ksp.tb1', [('pk1', 'int')], [('val1', 'text')]) - num_inserts = 100 - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - del pd # To force hfetch to flush data - import gc - gc.collect() - count, = config.session.execute("SELECT count(*) FROM ksp.tb1")[0] - - self.assertEqual(count, num_inserts) - - def test_flush_items_10K(self): - config.session.execute("DROP TABLE IF EXISTS ksp.tb1") - config.session.execute("CREATE TABLE ksp.tb1(pk1 int, val1 text,PRIMARY KEY(pk1))") - pd = StorageDict('ksp.tb1', [('pk1', 'int')], [('val1', 'text')]) - num_inserts = 10000 - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - del pd # To force hfetch to flush data - import gc - gc.collect() - count, = config.session.execute("SELECT count(*) FROM ksp.tb1 LIMIT " + str(num_inserts + 1))[0] - self.assertEqual(count, num_inserts) - - ''' - def test_flush_items_1M(self): - config.session.execute("DROP KEYSPACE IF EXISTS ksp") - config.session.execute("CREATE KEYSPACE ksp WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};") - config.session.execute("CREATE TABLE ksp.tb1(pk1 int, val1 text,PRIMARY KEY(pk1))") - pd = StorageDict('ksp.tb1', [('pk1', 'int')], [('val1', 'text')]) - num_inserts = 1000000 - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - del pd # To force hfetch to flush data - count, = config.session.execute("SELECT count(*) FROM ksp.tb1")[0] - - self.assertEqual(count, num_inserts) - ''' - - def test_write_and_then_read(self): - config.session.execute("DROP TABLE IF EXISTS ksp.tb1") - config.session.execute("CREATE TABLE ksp.tb1(pk1 int, val1 text,PRIMARY KEY(pk1))") - pd = StorageDict('ksp.tb1', [('pk1', 'int')], [('val1', 'text')]) - for i in range(100): - pd[i] = 'ciao' + str(i) - del pd # To force hfetch to flush data - import gc - gc.collect() - count, = config.session.execute("SELECT count(*) FROM ksp.tb1")[0] - - self.assertEqual(count, 100) - pd = StorageDict('ksp.tb1', [('pk1', 'int')], [('val1', 'text')]) - for i in range(100): - self.assertEqual(pd[i], u'ciao' + str(i)) - - def test_write_and_then_read_named_tuple(self): - config.session.execute("DROP TABLE IF EXISTS ksp.tb1") - config.session.execute("CREATE TABLE ksp.tb1(pk1 int, name text,age int,PRIMARY KEY(pk1))") - pd = StorageDict('ksp.tb1', [('pk1', 'int')], [('name', 'text'), ('age', 'int')]) - for i in range(100): - pd[i] = ['ciao' + str(i), i] - del pd # To force hfetch to flush data - import gc - gc.collect() - count, = config.session.execute("SELECT count(*) FROM ksp.tb1")[0] - - self.assertEqual(count, 100) - pd = StorageDict('ksp.tb1', [('pk1', 'int')], [('name', 'text'), ('age', 'int')]) - for i in range(100): - name, age = pd[i] - self.assertEqual(name, u'ciao' + str(i)) - self.assertEqual(age, i) - - self.assertEqual(pd[i].name, u'ciao' + str(i)) - self.assertEqual(pd[i].age, i) diff --git a/hecuba_py/tests/withcassandra/hfetch_tests.py b/hecuba_py/tests/withcassandra/hfetch_tests.py deleted file mode 100644 index fd7bf4f1..00000000 --- a/hecuba_py/tests/withcassandra/hfetch_tests.py +++ /dev/null @@ -1,32 +0,0 @@ -import unittest - -from hecuba import config, StorageDict - - -class ConcurrentDict(StorageDict): - ''' - @TypeSpec <,value:int> - ''' - - -class HfetchTests(unittest.TestCase): - def test_timestamped_writes(self): - previous_cfg = config.timestamped_writes - config.timestamped_writes = "True" - - my_dict = ConcurrentDict("concurrent_dict") - last_value = 1000 - for value in range(last_value): - my_dict[0] = value - - del my_dict - import gc - gc.collect() - - my_dict = ConcurrentDict("concurrent_dict") - - retrieved = my_dict[0] - - config.timestamped_writes = previous_cfg - - self.assertEqual(retrieved, last_value - 1) diff --git a/hecuba_py/tests/withcassandra/hfilter_tests.py b/hecuba_py/tests/withcassandra/hfilter_tests.py deleted file mode 100644 index cd77c105..00000000 --- a/hecuba_py/tests/withcassandra/hfilter_tests.py +++ /dev/null @@ -1,194 +0,0 @@ -import time -import unittest -from hecuba import StorageDict, config - - -class SimpleDict(StorageDict): - ''' - @TypeSpec dict<, val0:int> - ''' - - -class ComplexDict(StorageDict): - ''' - @TypeSpec dict<, val0:str, val1:int, val2:float, val3:bool> - ''' - - -class LambdaParserTest(unittest.TestCase): - - def test_simple_filter(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - res = filter(lambda x: x.key0 == 5, simple_dict.items()) - res = [i for i in res] - self.assertEqual(0, len(res)) - - def test_greater(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - for i in range(0, 10): - simple_dict[i] = i - time.sleep(1) - - res = filter(lambda x: x.key0 > 5, simple_dict.items()) - res = [i for i in res] - self.assertEqual(4, len(res)) - self.assertTrue((6, 6) in res) - self.assertTrue((7, 7) in res) - self.assertTrue((8, 8) in res) - self.assertTrue((9, 9) in res) - - def test_column_not_exist(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - - def filter_nonexisting_key(): - return filter(lambda x: x.key1 == 5, simple_dict.items()) - - self.assertRaises(Exception, filter_nonexisting_key) - - def test_not_persistent_object(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict() - for i in range(0, 10): - simple_dict[i] = i - - res = filter(lambda x: x[0] > 5, simple_dict.items()) - res = [i for i in res] - self.assertEqual(4, len(res)) - self.assertTrue((6, 6) in res) - self.assertTrue((7, 7) in res) - self.assertTrue((8, 8) in res) - self.assertTrue((9, 9) in res) - - def test_filter_equal(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - for i in range(0, 10): - simple_dict[i] = i - time.sleep(1) - - res = filter(lambda x: x.key0 == 5, simple_dict.items()) - res = [i for i in res] - self.assertEqual(1, len(res)) - self.assertEqual((5, 5), res[0]) - - def test_filter_inside(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - for i in range(0, 10): - simple_dict[i] = i - time.sleep(1) - - res = filter(lambda x: x.key0 in [1, 3], simple_dict.items()) - res = [i for i in res] - self.assertEqual(2, len(res)) - self.assertTrue((1, 1) in res) - self.assertTrue((3, 3) in res) - - def test_different_columns(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - for i in range(0, 10): - simple_dict[i] = i - time.sleep(1) - - res = filter(lambda x: x.key0 in [1, 2, 3, 5, 6, 9] and x.val0 >= 0 and x.val0 <= 5, simple_dict.items()) - res = [i for i in res] - self.assertEqual(4, len(res)) - self.assertTrue((1, 1) in res) - self.assertTrue((2, 2) in res) - self.assertTrue((3, 3) in res) - self.assertTrue((5, 5) in res) - - def test_complex_filter(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.complexdict") - complex_dict = ComplexDict("hfilter_tests.complexdict") - for i in range(0, 20): - complex_dict[str(i), i] = [str(i), i, float(i), True] - time.sleep(2) - - res = filter(lambda x: x.key0 in ["1", "2", "3", "4", "5"] and x.val1 >= 1 and x.val1 <= 5 and x.val2 >= 1.0 and x.val2 <= 4.0 and x.val3 == True, complex_dict.items()) - res = [tuple(i) for i in res] - self.assertEqual(4, len(res)) - self.assertTrue((("1", 1), ("1", 1, 1.0, True)) in res) - self.assertTrue((("2", 2), ("2", 2, 2.0, True)) in res) - self.assertTrue((("3", 3), ("3", 3, 3.0, True)) in res) - self.assertTrue((("4", 4), ("4", 4, 4.0, True)) in res) - - def test_bad_type(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - for i in range(0, 10): - simple_dict[i] = i - time.sleep(1) - - def execute_bad_type(): - res = filter(lambda x: x.key0 == "1", simple_dict.items()) - - self.assertRaises(Exception, execute_bad_type) - - def test_several_operators(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - for i in range(0, 10): - simple_dict[i] = i - time.sleep(1) - - res = filter(lambda x: x.key0 < 5 and x.key0 >= 3, simple_dict.items()) - res = [i for i in res] - self.assertEqual(2, len(res)) - self.assertTrue((3, 3) in res) - self.assertTrue((4, 4) in res) - - def test_reversed_operations(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - for i in range(0, 10): - simple_dict[i] = i - time.sleep(1) - - res = filter(lambda x: 5 > x.key0 and 3 <= x.key0, simple_dict.items()) - res = [i for i in res] - self.assertEqual(2, len(res)) - self.assertTrue((3, 3) in res) - self.assertTrue((4, 4) in res) - - def test_non_hecuba_filter(self): - l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - res = list(filter(lambda x: x >= 5, l)) - self.assertEqual(res, [5, 6, 7, 8, 9]) - - def test_split_filter(self): - config.session.execute("DROP TABLE IF EXISTS hfilter_tests.simpledict") - simple_dict = SimpleDict("hfilter_tests.simpledict") - what_should_be = dict() - for i in range(0, 10): - what_should_be[i] = i - simple_dict[i] = i - time.sleep(1) - - filtered = [] - normal_filtered = list(python_filter(lambda x: x[0] > 3, simple_dict.items())) - - i = 0 - for partition in simple_dict.split(): - # aggregation of filtering on each partition should be equal to a filter on the whole object - res = filter(lambda x: x.key0 > 3, partition.items()) - for row in res: - filtered.append(row) - - for k, v in partition.items(): - # self.assertTrue((tuple(row.key), list(row.value)) in f2) - self.assertEqual(what_should_be[k], v) - i += 1 - - self.assertEqual(len(what_should_be), i) - self.assertEqual(len(filtered), len(normal_filtered)) - for row in filtered: - self.assertTrue(row in normal_filtered) - - -if __name__ == "__main__": - unittest.main() diff --git a/hecuba_py/tests/withcassandra/istorage_split_locality.py b/hecuba_py/tests/withcassandra/istorage_split_locality.py deleted file mode 100644 index c85d4a35..00000000 --- a/hecuba_py/tests/withcassandra/istorage_split_locality.py +++ /dev/null @@ -1,146 +0,0 @@ -import unittest - -from collections import defaultdict - -from hecuba import config -from hecuba.tools import tokens_partitions, discrete_token_ranges - -from .. import test_config - - -@unittest.skip("Disabled until token partition gets fixed") -class IStorageSplitLocalityTest(unittest.TestCase): - @classmethod - def setUpClass(cls): - config.session.execute("CREATE KEYSPACE IF NOT EXISTS test_ksp WITH replication = " - "{'class': 'SimpleStrategy', 'replication_factor': 1};") - - config.session.execute("CREATE TABLE IF NOT EXISTS test_ksp.tab(k int PRIMARY KEY,v int)") - - def test_enough_token(self): - original_cfg = config.__dict__ - config.__dict__.update(splits_per_node=10, token_range_size=None, target_token_range_size=64 * 1024 * 1024) - all_tokens = discrete_token_ranges(list(map(lambda a: a.value, config.cluster.metadata.token_map.ring))) - tkns_p = list(tokens_partitions("test_ksp", "tab", all_tokens)) - self.check_all(tkns_p, 10, 20) - config.__dict__ = original_cfg - - def test_too_little_tokens(self): - original_cfg = config.__dict__ - config.__dict__.update(splits_per_node=1000, token_range_size=None, target_token_range_size=64 * 1024) - all_tokens = discrete_token_ranges(list(map(lambda a: a.value, config.cluster.metadata.token_map.ring))) - tkns_p = list(tokens_partitions("test_ksp", "tab", all_tokens)) - self.check_all(tkns_p, 1000, 1000) - config.__dict__ = original_cfg - - def test_splitting_tokens(self): - original_cfg = config.__dict__ - config.__dict__.update(splits_per_node=1, - token_range_size=int((2 ** 64) / 1000), - target_token_range_size=None) - all_tokens = discrete_token_ranges(list(map(lambda a: a.value, config.cluster.metadata.token_map.ring))) - tkns_p = list(tokens_partitions("test_ksp", "tab", all_tokens)) - self.check_all(tkns_p, 1, 1000) - config.__dict__ = original_cfg - - def test_using_size_estimates(self): - for i in range(100000): - config.session.execute("INSERT INTO test_ksp.tab(k,v) values(%s,%s)", [i, i]) - original_cfg = config.__dict__ - config.__dict__.update(splits_per_node=1, - token_range_size=None, - target_token_range_size=64) - test_config.ccm_cluster.flush() - test_config.ccm_cluster.compact() - all_tokens = discrete_token_ranges(list(map(lambda a: a.value, config.cluster.metadata.token_map.ring))) - tkns_p = list(tokens_partitions("test_ksp", "tab", all_tokens)) - config.__dict__ = original_cfg - # self.check_all(tkns_p, 1, 1000) - - def check_all(self, tkns_p, split_per_node, expected_total_tkns): - self.assertGreaterEqual(len(tkns_p), len(test_config.ccm_cluster.nodes) * split_per_node) - self.assertGreaterEqual(sum(map(len, tkns_p)), expected_total_tkns) - self.check_full_range([i for split_tokens in tkns_p for i in split_tokens]) - - hosts = [self.checkToken(worker_partition) for worker_partition in tkns_p] - self.assertEqual(len(set(hosts)), len(test_config.ccm_cluster.nodes)) - self.ensure_balance(tkns_p) - - def check_full_range(self, list_of_ranges): - list_of_ranges.sort() - start = list(map(lambda a: a[0], list_of_ranges)) - counts = list(filter(lambda size: size[1] > 1, map(lambda number: (number, start.count(number)), start))) - self.assertEqual(0, len(counts), "duplicated starts") - end = list(map(lambda a: a[0], list_of_ranges)) - counts = list(filter(lambda size: size[1] > 1, map(lambda number: (number, end.count(number)), end))) - self.assertEqual(0, len(counts), "duplicated ends") - - first, last = list_of_ranges[0] - self.assertEqual(-(2 ** 63), first, "first token should always be -2^63") - for s, e in list_of_ranges[1:]: - self.assertEqual(last, s, "broken range %d -> %d" % (last, s)) - last = e - self.assertEqual((2 ** 63) - 1, last, "last token should always be (2^63)-1") - - def ensure_balance(self, tokens_per_split): - from cassandra.metadata import Token - tm = config.cluster.metadata.token_map - node_loads = defaultdict(int) - for split in tokens_per_split: - for f, t in split: - host = tm.get_replicas("test_ksp", Token(f))[0] - node_loads[host] += t - f - - print(node_loads) - node_loads = node_loads.values() - avg_delta = sum(node_loads) // len(node_loads) - max_delta = max(node_loads) - min_delta = min(node_loads) - self.assertLessEqual(max_delta, avg_delta * 2) - self.assertGreaterEqual(min_delta, avg_delta / 2) - - def checkToken(self, tokens): - # type : (List[Long]) -> Host - from cassandra.metadata import Token - tm = config.cluster.metadata.token_map - hosts = set(map(lambda token: tm.get_replicas("test_ksp", token)[0], - map(lambda a: Token(a[0]), tokens))) - self.assertEqual(len(hosts), 1, "A token range is local in 2 nodes") - return list(hosts)[0] - - -class IStorageSplitLocalityTestVnodes(IStorageSplitLocalityTest): - @classmethod - def setUpClass(cls): - from hfetch import disconnectCassandra - disconnectCassandra() - from .. import set_ccm_cluster - test_config.ccm_cluster.clear() - set_ccm_cluster() - from .. import TEST_DEBUG - try: - test_config.ccm_cluster.populate(3, use_vnodes=True).start() - except Exception as ex: - if not TEST_DEBUG: - raise ex - - import hfetch - import hecuba - import importlib - importlib.reload(hfetch) - import importlib - importlib.reload(hecuba) - super(IStorageSplitLocalityTest, cls).setUpClass() - - @classmethod - def tearDownClass(cls): - from hfetch import disconnectCassandra - disconnectCassandra() - - test_config.ccm_cluster.clear() - from .. import set_up_default_cassandra - set_up_default_cassandra() - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/istorage_tests.py b/hecuba_py/tests/withcassandra/istorage_tests.py deleted file mode 100644 index b85c3c89..00000000 --- a/hecuba_py/tests/withcassandra/istorage_tests.py +++ /dev/null @@ -1,113 +0,0 @@ -import unittest - -from hecuba import config, StorageDict -from hecuba.IStorage import IStorage - - -class PersistentDict(StorageDict): - ''' - @TypeSpec dict<, value:double> - ''' - - -class IStorageTests(unittest.TestCase): - def stop_persistent_method_test(self): - from hecuba.tools import storage_id_from_name - config.session.execute( - "DROP TABLE IF EXISTS test.istorage_pers;") - config.session.execute( - "DELETE FROM hecuba.istorage WHERE storage_id = {}".format(storage_id_from_name("test.istorage_pers"))) - - key = 123 - value = 456 - name = 'test.istorage_pers' - - base_dict = PersistentDict() - - def check_stop_pers(): - assert (isinstance(base_dict, IStorage)) - base_dict.stop_persistent() - - self.assertRaises(RuntimeError, check_stop_pers) - # PyCOMPSs requires uuid of type str - - base_dict.make_persistent(name) - - base_dict[key] = value - - base_dict.stop_persistent() - - self.assertIsNone(base_dict.storage_id) - self.assertIsNone(base_dict.storage_id) - - self.assertRaises(RuntimeError, check_stop_pers) - - base_dict.make_persistent(name) - - self.assertEqual(base_dict[key], value) - - base_dict.stop_persistent() - - self.assertRaises(RuntimeError, check_stop_pers) - - external_dict = PersistentDict(name) - self.assertEqual(external_dict[key], value) - - def delete_persistent_method_test(self): - from hecuba.tools import storage_id_from_name - config.session.execute( - "DROP TABLE IF EXISTS test.istorage_pers;") - config.session.execute( - "DELETE FROM hecuba.istorage WHERE storage_id = {}".format(storage_id_from_name("test.istorage_pers"))) - - key = 123 - value = 456 - name = 'test.istorage_pers' - - base_dict = PersistentDict() - - def check_stop_pers(): - assert (isinstance(base_dict, IStorage)) - base_dict.stop_persistent() - - def check_del_pers(): - assert (isinstance(base_dict, IStorage)) - base_dict.delete_persistent() - - self.assertRaises(RuntimeError, check_del_pers) - # PyCOMPSs requires uuid of type str - - base_dict.make_persistent(name) - - base_dict[key] = value - - base_dict.delete_persistent() - - self.assertIsNone(base_dict.storage_id) - self.assertIsNone(base_dict.storage_id) - - self.assertRaises(RuntimeError, check_del_pers) - self.assertRaises(RuntimeError, check_stop_pers) - - base_dict.make_persistent(name) - - def get_key(): - res = base_dict[key] - - self.assertRaises(KeyError, get_key) - - base_dict.delete_persistent() - - self.assertRaises(RuntimeError, check_del_pers) - self.assertRaises(RuntimeError, check_stop_pers) - - external_dict = PersistentDict(name) - - def get_key_ext(): - res = external_dict[key] - - self.assertRaises(KeyError, get_key_ext) - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/storage_api_tests.py b/hecuba_py/tests/withcassandra/storage_api_tests.py deleted file mode 100644 index 9e8bd375..00000000 --- a/hecuba_py/tests/withcassandra/storage_api_tests.py +++ /dev/null @@ -1,49 +0,0 @@ -import unittest - -from storage.api import getByID -from ..app.words import Words -from hecuba import config, StorageDict - - -class ApiTestSDict(StorageDict): - ''' - @TypeSpec dict<, value:double> - ''' - - -class StorageApi_Tests(unittest.TestCase): - def class_type_test(self): - base_dict = ApiTestSDict('test.api_sdict') - # PyCOMPSs requires uuid of type str - storage_id = str(base_dict.storage_id) - del base_dict - - rebuild_dict = getByID(storage_id) - self.assertTrue(isinstance(rebuild_dict, ApiTestSDict)) - - def object_id_is_str_test(self): - memory_obj = ApiTestSDict() - - self.assertTrue(hasattr(memory_obj, 'getID')) - self.assertIsInstance(memory_obj.getID(), str, "PyCOMPSs specs states that getID should return a string") - - pers_dict = ApiTestSDict('test.api_id_str') - self.assertTrue(hasattr(pers_dict, 'getID')) - self.assertIsInstance(pers_dict.getID(), str, "PyCOMPSs specs states that getID should return a string") - - def test_getByID_block(self): - # ki = KeyIter('testspace', 'tt', 'app.words.Words', 'fake-id', ['position']) - from hecuba import config - config.session.execute("DROP TABLE IF EXISTS my_app.so") - config.session.execute("DROP TABLE IF EXISTS my_app.so_0") - config.session.execute("DROP TABLE IF EXISTS my_app.so_1") - SO = Words('so') - b = next(SO.split()) - new_block = getByID(b.storage_id) - self.assertEqual(b.storage_id, new_block.storage_id) - self.assertEqual(b, new_block) - - def test_getByID_storage_obj(self): - b = Words('testspace.tt') - new_block = getByID(b.storage_id) - self.assertEqual(b, new_block) diff --git a/hecuba_py/tests/withcassandra/storagedict_split_tests.py b/hecuba_py/tests/withcassandra/storagedict_split_tests.py deleted file mode 100644 index e2bdfa5f..00000000 --- a/hecuba_py/tests/withcassandra/storagedict_split_tests.py +++ /dev/null @@ -1,354 +0,0 @@ -import unittest - -from hecuba import config -from hecuba.hdict import StorageDict -from hecuba.storageobj import StorageObj - - -class SObj_Basic(StorageObj): - ''' - @ClassField attr1 int - @ClassField attr2 double - @ClassField attr3 str - ''' - - -class SDict_SimpleTypeSpec(StorageDict): - ''' - @TypeSpec dict<, info:str> - ''' - - -class SDict_ComplexTypeSpec(StorageDict): - ''' - @TypeSpec dict<, state:tests.withcassandra.storagedict_split_tests.SObj_Basic> - ''' - - -class SObj_SimpleClassField(StorageObj): - ''' - @ClassField attr1 int - @ClassField mydict dict<, value:double> - @ClassField attr3 double - ''' - - -class SObj_ComplexClassField(StorageObj): - ''' - @ClassField attr1 int - @ClassField mydict dict<, val:tests.withcassandra.storagedict_split_tests.SObj_Basic> - @ClassField attr3 double - ''' - - -class StorageDictSplitTestbase(unittest.TestCase): - @classmethod - def setUpClass(cls): - config.session.execute("DROP KEYSPACE IF EXISTS my_app", timeout=60) - config.session.execute( - "CREATE KEYSPACE IF NOT EXISTS my_app WITH " - "replication = {'class': 'SimpleStrategy', 'replication_factor': 1};", - timeout=60) - - def test_simple_iterkeys_split(self): - config.session.execute( - "CREATE TABLE IF NOT EXISTS my_app.tab30(position int, value text, PRIMARY KEY(position))") - tablename = "tab30" - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - num_inserts = 10000 - what_should_be = set() - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - what_should_be.add(i) - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab30')[0] - self.assertEqual(count, num_inserts) - - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - - count = 0 - res = set() - for partition in pd.split(): - for val in partition.keys(): - res.add(val) - count += 1 - self.assertEqual(count, num_inserts) - self.assertEqual(what_should_be, res) - - def test_remote_build_iterkeys_split(self): - config.session.execute( - "CREATE TABLE IF NOT EXISTS my_app.tab_b0(position int, value text, PRIMARY KEY(position))") - tablename = "tab_b0" - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - num_inserts = 10000 - what_should_be = set() - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - what_should_be.add(i) - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab_b0')[0] - self.assertEqual(count, num_inserts) - - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - - count = 0 - res = set() - for partition in pd.split(): - id = partition.storage_id - from storage.api import getByID - rebuild = getByID(id) - for val in rebuild.keys(): - res.add(val) - count += 1 - self.assertEqual(count, num_inserts) - self.assertEqual(what_should_be, res) - - def test_composed_iteritems(self): - config.session.execute( - "CREATE TABLE IF NOT EXISTS my_app.tab_b1(pid int,time int, value text,x float,y float,z float, PRIMARY KEY(pid,time))") - tablename = "tab_b1" - pd = StorageDict(tablename, - [('pid', 'int'), ('time', 'int')], - [('value', 'text'), ('x', 'double'), ('y', 'double'), ('z', 'double')]) - num_inserts = 10000 - what_should_be = {} - for i in range(num_inserts): - pd[i, i + 100] = ['ciao' + str(i), i * 0.1, i * 0.2, i * 0.3] - what_should_be[i, i + 100] = ('ciao' + str(i), i * 0.1, i * 0.2, i * 0.3) - - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab_b1')[0] - self.assertEqual(count, num_inserts) - pd = StorageDict(tablename, - [('pid', 'int'), ('time', 'int')], - [('value', 'text'), ('x', 'float'), ('y', 'float'), ('z', 'float')]) - count = 0 - res = {} - for partition in pd.split(): - for key, val in partition.items(): - res[key] = val - count += 1 - self.assertEqual(count, num_inserts) - delta = 0.0001 - for i in range(num_inserts): - a = what_should_be[i, i + 100] - b = res[i, i + 100] - self.assertEqual(a[0], b.value) - self.assertAlmostEquals(a[1], b.x, delta=delta) - self.assertAlmostEquals(a[2], b.y, delta=delta) - self.assertAlmostEquals(a[3], b.z, delta=delta) - - def computeItems(self, SDict): - counter = 0 - for item in SDict.keys(): - counter = counter + 1 - # self.assertEqual(counter, expected) - return counter - - def test_split_type_spec_basic(self): - nitems = 1000 - mybook = SDict_SimpleTypeSpec("test_records") - for id in range(0, nitems): - mybook[id] = 'someRandomText' + str(id) - - del mybook - import gc - gc.collect() - # verify all data has been written - myotherbook = SDict_SimpleTypeSpec("test_records") - self.assertEqual(nitems, self.computeItems(myotherbook)) - # we don't want anything in memory - del myotherbook - - myfinalbook = SDict_SimpleTypeSpec("test_records") - # split the dict and assert all the dicts generated contain the expected data - acc = 0 - nsplits = 0 - for b in myfinalbook.split(): # this split fails - acc = acc + self.computeItems(b) - nsplits = nsplits + 1 - - self.assertEqual(acc, nitems) - - def test_split_type_spec_complex(self): - config.session.execute("DROP TABLE IF EXISTS my_app.SObj_ComplexClassField") - nitems = 10 - mybook = SDict_ComplexTypeSpec("experimentx") - for id in range(0, nitems): - mybook[id] = SObj_Basic() - mybook[id].attr1 = id - mybook[id].attr2 = id / nitems - mybook[id].attr3 = "basicobj" + str(id) - - del mybook - - # verify all data has been written - myotherbook = SDict_ComplexTypeSpec("experimentx") - self.assertEqual(nitems, self.computeItems(myotherbook)) - # we don't want anything in memory - del myotherbook - - myfinalbook = SDict_ComplexTypeSpec("experimentx") - # split the dict and assert all the dicts generated contain the expected data - acc = 0 - nsplits = 0 - for b in myfinalbook.split(): # this split fails - acc = acc + self.computeItems(b) - nsplits = nsplits + 1 - - self.assertEqual(acc, nitems) - - def test_split_class_field_simple(self): - config.session.execute("DROP TABLE IF EXISTS my_app.SObj_SimpleClassField") - nitems = 80 - mybook = SObj_SimpleClassField("so_split_dict_simple") - mybook.attr1 = nitems - mybook.attr3 = nitems / 100 - for id in range(0, nitems): - key_text = 'so_split_dict_simple' + str(id) - mybook.mydict[key_text] = id / nitems - - del mybook - - # verify all data has been written - myotherbook = SObj_SimpleClassField("so_split_dict_simple") - self.assertEqual(nitems, self.computeItems(myotherbook.mydict)) - # we don't want anything in memory - del myotherbook - - myfinalbook = SObj_SimpleClassField("so_split_dict_simple") - # split the dict and assert all the dicts generated contain the expected data - acc = 0 - nsplits = 0 - for b in myfinalbook.mydict.split(): # this split fails - acc = acc + self.computeItems(b) - nsplits = nsplits + 1 - - self.assertEqual(acc, nitems) - - def test_split_class_field_complex(self): - nitems = 50 - mybook = SObj_ComplexClassField("so_split_dict_complex") - mybook.attr1 = nitems - mybook.attr3 = nitems / 100 - for id in range(0, nitems): - key_text = 'so_split_dict_simple' + str(id) - so = SObj_Basic() - so.attr1 = id - so.attr2 = id / nitems - so.attr3 = 'someInnerRandomText' + str(id) - mybook.mydict[key_text] = so - - del mybook - - # verify all data has been written - myotherbook = SObj_ComplexClassField("so_split_dict_complex") - self.assertEqual(nitems, self.computeItems(myotherbook.mydict)) - # we don't want anything in memory - del myotherbook - - myfinalbook = SObj_ComplexClassField("so_split_dict_complex") - # split the dict and assert all the dicts generated contain the expected data - acc = 0 - nsplits = 0 - for b in myfinalbook.mydict.split(): # this split fails - acc = acc + self.computeItems(b) - nsplits = nsplits + 1 - - self.assertEqual(acc, nitems) - - ''' - def test_remote_build_composed_iteritems(self): - config.session.execute( - "CREATE TABLE IF NOT EXISTS my_app.tab_b2(pid int,time int, value text,x float,y float,z float, PRIMARY KEY(pid,time))") - tablename = "tab_b2" - pd = StorageDict(tablename, - [('pid', 'int'), ('time', 'int')], - [('value', 'text'), ('x', 'float'), ('y', 'float'), ('z', 'float')]) - - what_should_be = {} - for i in range(10000): - pd[i, i + 100] = ('ciao' + str(i), i * 0.1, i * 0.2, i * 0.3) - what_should_be[i, i + 100] = ('ciao' + str(i), i * 0.1, i * 0.2, i * 0.3) - - del pd - - count, = config.session.execute('SELECT count(*) FROM my_app.tab_b2')[0] - self.assertEqual(count, 10000) - pd = StorageDict(tablename, - [('pid', 'int'), ('time', 'int')], - [('value', 'text'), ('x', 'float'), ('y', 'float'), ('z', 'float')]) - count = 0 - res = {} - for partition in pd.split(): - id = partition.storage_id - from storage.api import getByID - rebuild = getByID(id) - for key, val in rebuild.items(): - res[key] = val - count += 1 - self.assertEqual(count, 10000) - delta = 0.0001 - for i in range(10000): - a = what_should_be[i, i + 100] - b = res[i, i + 100] - self.assertEqual(a[0], b.value) - self.assertAlmostEquals(a[1], b.x, delta=delta) - self.assertAlmostEquals(a[2], b.y, delta=delta) - self.assertAlmostEquals(a[3], b.z, delta=delta) - ''' - - -class StorageDictSlitTestVnodes(StorageDictSplitTestbase): - @classmethod - def setUpClass(cls): - from hfetch import disconnectCassandra - disconnectCassandra() - from .. import test_config, set_ccm_cluster - test_config.ccm_cluster.clear() - set_ccm_cluster() - from .. import TEST_DEBUG - try: - test_config.ccm_cluster.populate(3, use_vnodes=True).start() - except Exception as ex: - if not TEST_DEBUG: - raise ex - - import hfetch - import hecuba - import importlib - importlib.reload(hfetch) - import importlib - importlib.reload(hecuba) - config.session.execute("DROP KEYSPACE IF EXISTS my_app") - config.session.execute( - "CREATE KEYSPACE IF NOT EXISTS my_app WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};") - super(StorageDictSplitTestbase, cls).setUpClass() - - @classmethod - def tearDownClass(cls): - from .. import test_config - from hfetch import disconnectCassandra - disconnectCassandra() - - test_config.ccm_cluster.clear() - from .. import set_up_default_cassandra - set_up_default_cassandra() - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/storagedict_tests.py b/hecuba_py/tests/withcassandra/storagedict_tests.py deleted file mode 100644 index 4a40a183..00000000 --- a/hecuba_py/tests/withcassandra/storagedict_tests.py +++ /dev/null @@ -1,1126 +0,0 @@ -import unittest - -from hecuba import config, StorageObj, StorageDict -from hecuba.IStorage import build_remotely -from ..app.words import Words -import uuid -import time - - -class MyStorageDict(StorageDict): - ''' - @TypeSpec dict<, val:int> - ''' - pass - - -class MyStorageDict2(StorageDict): - ''' - @TypeSpec dict<, val:int> - ''' - pass - - -class MyStorageDict3(StorageDict): - ''' - @TypeSpec dict<, val:int> - ''' - - -class MyStorageObjC(StorageObj): - ''' - @ClassField mona dict<, b:int> - ''' - - -class MyStorageDictA(StorageDict): - ''' - @TypeSpec dict<, b:int> - ''' - - -class mydict(StorageDict): - ''' - @TypeSpec dict<, val0:tests.withcassandra.storagedict_tests.myobj2> - ''' - - -class myobj2(StorageObj): - ''' - @ClassField attr1 int - @ClassField attr2 str - ''' - - -class DictWithTuples(StorageDict): - ''' - @TypeSpec dict<, val:tuple> - ''' - - -class DictWithTuples2(StorageDict): - ''' - @TypeSpec dict<, key1:int>, val:str> - ''' - - -class DictWithTuples3(StorageDict): - ''' - @TypeSpec dict<, val0:int, val1:tuple, val2:str, val3:tuple> - ''' - - -class MultiTuples(StorageDict): - ''' - @TypeSpec dict<, m_cloudfract:tuple, m_humidity:tuple, m_icewater:tuple, m_liquidwate:tuple, m_ozone:tuple, m_pot_vorticit:tuple, m_rain:tuple, m_snow:tuple> - ''' - - -class Test2StorageObj(StorageObj): - ''' - @ClassField name str - @ClassField age int - ''' - pass - - -class TestDictOfStorageObj(StorageDict): - ''' - @TypeSpec dict<, val:tests.withcassandra.storageobj_tests.Test2StorageObj> - ''' - - -class StorageDictTest(unittest.TestCase): - def test_init_empty(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab1") - tablename = "ksp.tab1" - tokens = [(1, 2), (2, 3), (3, 4)] - nopars = StorageDict(tablename, - [('position', 'int')], - [('value', 'int')], - tokens=tokens) - self.assertEqual("tab1", nopars._table) - self.assertEqual("ksp", nopars._ksp) - - res = config.session.execute( - 'SELECT storage_id, primary_keys, columns, class_name, name, tokens, istorage_props,indexed_on ' + - 'FROM hecuba.istorage WHERE storage_id = %s', [nopars.storage_id])[0] - - self.assertEqual(uuid.uuid3(uuid.NAMESPACE_DNS, tablename), nopars.storage_id) - self.assertEqual(nopars.__class__.__module__, 'hecuba.hdict') - self.assertEqual(nopars.__class__.__name__, 'StorageDict') - - rebuild = build_remotely(res._asdict()) - self.assertEqual(rebuild._built_remotely, True) - self.assertEqual('tab1', rebuild._table) - self.assertEqual("ksp", rebuild._ksp) - self.assertEqual(uuid.uuid3(uuid.NAMESPACE_DNS, tablename), rebuild.storage_id) - - self.assertEqual(nopars.storage_id, rebuild.storage_id) - - def test_init_empty_def_keyspace(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab1") - tablename = "tab1" - tokens = [(1, 2), (2, 3), (3, 4)] - nopars = StorageDict(tablename, - [('position', 'int')], - [('value', 'int')], - tokens=tokens) - self.assertEqual("tab1", nopars._table) - self.assertEqual(config.execution_name, nopars._ksp) - - res = config.session.execute( - 'SELECT storage_id, primary_keys, columns, class_name, name, tokens, istorage_props,indexed_on ' + - 'FROM hecuba.istorage WHERE storage_id = %s', [nopars.storage_id])[0] - - self.assertEqual(uuid.uuid3(uuid.NAMESPACE_DNS, config.execution_name + '.' + tablename), nopars.storage_id) - self.assertEqual(nopars.__class__.__module__, 'hecuba.hdict') - self.assertEqual(nopars.__class__.__name__, 'StorageDict') - - rebuild = build_remotely(res._asdict()) - self.assertEqual(rebuild._built_remotely, True) - self.assertEqual('tab1', rebuild._table) - self.assertEqual(config.execution_name, rebuild._ksp) - self.assertEqual(uuid.uuid3(uuid.NAMESPACE_DNS, config.execution_name + '.' + tablename), rebuild.storage_id) - - self.assertEqual(nopars.storage_id, rebuild.storage_id) - - def test_simple_insertions(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab10") - tablename = "tab10" - tokens = [(1, 2), (2, 3), (3, 4)] - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')], - tokens=tokens) - - for i in range(100): - pd[i] = 'ciao' + str(i) - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab10')[0] - self.assertEqual(count, 100) - - def test_dict_print(self): - tablename = "tab10" - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - - self.assertEquals(pd.__repr__(), "") - - pd[0] = 'a' - self.assertEquals(pd.__repr__(), "{0: 'a'}") - - pd[1] = 'b' - self.assertEquals(pd.__repr__(), "{1: 'b', 0: 'a'}") - - for i in range(1100): - pd[i] = str(i) - self.assertEquals(pd.__repr__().count(':'), 1000) - - def test_get_strs(self): - tablename = "tab10" - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - pd[0] = 'str1' - self.assertEquals(pd[0], 'str1') - ''' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'list')]) - pd[0] = ['str1', 'str2'] - self.assertEquals(pd[0], ['str1', 'str2']) - - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'tuple')]) - pd[0] = 'str1', 'str2' - self.assertEquals(pd[0], 'str1', 'str2') - ''' - - def test_make_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.t_make") - config.session.execute("DROP TABLE IF EXISTS my_app.t_make_words") - nopars = Words() - self.assertIsNone(nopars.storage_id) - nopars.ciao = 1 - nopars.ciao2 = "1" - nopars.ciao3 = [1, 2, 3] - nopars.ciao4 = (1, 2, 3) - for i in range(10): - nopars.words[i] = 'ciao' + str(i) - - count, = config.session.execute( - "SELECT count(*) FROM system_schema.tables WHERE keyspace_name = 'my_app' and table_name = 'Words_words'")[ - 0] - self.assertEqual(0, count) - - nopars.make_persistent("t_make") - - del nopars - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.t_make_words')[0] - self.assertEqual(10, count) - - def test_none_value(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Words") - config.session.execute("DROP TABLE IF EXISTS my_app.Words_words") - mydict = MyStorageDict('somename') - mydict[0] = None - self.assertEqual(mydict[0], None) - config.session.execute("DROP TABLE IF EXISTS my_app.Words") - config.session.execute("DROP TABLE IF EXISTS my_app.Words_words") - - def test_none_keys(self): - config.session.execute("DROP TABLE IF EXISTS my_app.somename") - mydict = MyStorageDict('somename') - - def set_none_key(): - mydict[None] = 1 - - self.assertRaises(TypeError, set_none_key) - config.session.execute("DROP TABLE IF EXISTS my_app.somename") - - def test_paranoid_setitem_nonpersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.mydict") - pd = StorageDict("mydict", - [('position', 'int')], - [('value', 'text')]) - pd[0] = 'bla' - self.assertEquals(pd[0], 'bla') - - def set_wrong_val_1(): - pd[0] = 1 - - self.assertRaises(TypeError, set_wrong_val_1) - - def set_wrong_val_2(): - pd['bla'] = 'bla' - - self.assertRaises(TypeError, set_wrong_val_2) - - def test_paranoid_setitem_multiple_nonpersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.mydict") - pd = StorageDict("mydict", - [('position1', 'int'), ('position2', 'text')], - [('value1', 'text'), ('value2', 'int')]) - pd[0, 'pos1'] = ['bla', 1] - self.assertEquals(pd[0, 'pos1'], ('bla', 1)) - - def set_wrong_val_1(): - pd[0, 'pos1'] = [1, 'bla'] - - self.assertRaises(TypeError, set_wrong_val_1) - - def set_wrong_val_2(): - pd['pos1', 0] = ['bla', 1] - - self.assertRaises(TypeError, set_wrong_val_2) - - def test_paranoid_setitem_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a1") - pd = StorageDict("tab_a1", - [('position', 'int')], - [('value', 'text')]) - pd[0] = 'bla' - result = config.session.execute('SELECT value FROM my_app.tab_a1 WHERE position = 0') - for row in result: - self.assertEquals(row.value, 'bla') - - def set_wrong_val_test(): - pd[0] = 1 - - self.assertRaises(TypeError, set_wrong_val_test) - - def test_paranoid_setitem_multiple_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a2") - pd = StorageDict("tab_a2", - [('position1', 'int'), ('position2', 'text')], - [('value1', 'text'), ('value2', 'int')]) - pd[0, 'pos1'] = ['bla', 1] - for result in pd.values(): - self.assertEquals(result.value1, 'bla') - self.assertEquals(result.value2, 1) - - def set_wrong_val(): - pd[0, 'pos1'] = ['bla', 'bla1'] - - self.assertRaises(TypeError, set_wrong_val) - - def set_wrong_key(): - pd['bla', 'pos1'] = ['bla', 1] - - self.assertRaises(TypeError, set_wrong_key) - - def test_paranoid_setitemdouble_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a3") - pd = StorageDict("tab_a3", - [('position', 'int')], - [('value', 'double')]) - pd[0] = 2.0 - result = config.session.execute('SELECT value FROM my_app.tab_a3 WHERE position = 0') - for row in result: - self.assertEquals(row.value, 2.0) - - def set_wrong_val_test(): - pd[0] = 1 - - set_wrong_val_test() - - def test_paranoid_setitemdouble_multiple_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a4") - pd = StorageDict("tab_a4", - [('position1', 'int'), ('position2', 'text')], - [('value1', 'text'), ('value2', 'double')]) - pd[0, 'pos1'] = ['bla', 1.0] - time.sleep(2) - self.assertEquals(pd[0, 'pos1'], ('bla', 1.0)) - - def test_empty_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.wordsso") - config.session.execute("DROP TABLE IF EXISTS my_app.wordsso_words") - so = Words() - so.make_persistent("wordsso") - so.ciao = "an attribute" - so.another = 123 - config.batch_size = 1 - config.cache_activated = False - for i in range(10): - so.words[i] = str.join(',', map(lambda a: "ciao", range(i))) - - del so - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.wordsso_words')[0] - self.assertEqual(10, count) - - so = Words("wordsso") - so.delete_persistent() - - def delete_already_deleted(): - so.words.delete_persistent() - - self.assertRaises(RuntimeError, delete_already_deleted) - - count, = config.session.execute('SELECT count(*) FROM my_app.wordsso_words')[0] - self.assertEqual(0, count) - - def test_simple_items_test(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a1") - - pd = StorageDict("tab_a1", - [('position', 'int')], - [('value', 'text')]) - - what_should_be = {} - for i in range(100): - pd[i] = 'ciao' + str(i) - what_should_be[i] = 'ciao' + str(i) - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab_a1')[0] - self.assertEqual(count, 100) - pd = StorageDict("tab_a1", - [('position', 'int')], - [('value', 'text')]) - count = 0 - res = {} - for key, val in pd.items(): - res[key] = val - count += 1 - self.assertEqual(count, 100) - self.assertEqual(what_should_be, res) - - def test_simple_values_test(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a2") - tablename = "tab_a2" - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - - what_should_be = set() - for i in range(100): - pd[i] = 'ciao' + str(i) - what_should_be.add('ciao' + str(i)) - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab_a2')[0] - - self.assertEqual(count, 100) - - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - count = 0 - res = set() - for val in pd.values(): - res.add(val) - count += 1 - self.assertEqual(count, 100) - self.assertEqual(what_should_be, res) - - def test_simple_keys_test(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a3") - tablename = "tab_a3" - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - - what_should_be = set() - for i in range(100): - pd[i] = 'ciao' + str(i) - what_should_be.add(i) - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab_a3')[0] - self.assertEqual(count, 100) - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - count = 0 - res = set() - for val in pd.keys(): - res.add(val) - count += 1 - self.assertEqual(count, 100) - self.assertEqual(what_should_be, res) - - def test_simple_contains(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a4") - tablename = "tab_a4" - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - - for i in range(100): - pd[i] = 'ciao' + str(i) - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab_a4')[0] - self.assertEqual(count, 100) - - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - for i in range(100): - self.assertTrue(i in pd) - - def test_deleteitem_nonpersistent(self): - pd = StorageDict(None, - [('position', 'int')], - [('value', 'text')]) - pd[0] = 'to_delete' - del pd[0] - - def del_val(): - val = pd[0] - - self.assertRaises(KeyError, del_val) - - pd = StorageDict(None, - [('position', 'text')], - [('value', 'int')]) - pd['pos0'] = 0 - del pd['pos0'] - - def del_val(): - val = pd['pos0'] - - self.assertRaises(KeyError, del_val) - - def test_deleteitem_persistent(self): - tablename = "tab_a5" - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - pd[0] = 'to_delete' - del pd[0] - - def del_val(): - val = pd[0] - - self.assertRaises(KeyError, del_val) - - tablename = "tab_a6" - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - pd = StorageDict(tablename, - [('position', 'text')], - [('value', 'int')]) - pd['pos1'] = 0 - del pd['pos1'] - - def del_val(): - val = pd['pos1'] - - self.assertRaises(KeyError, del_val) - - def test_composed_items_test(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab12") - tablename = "tab12" - pd = StorageDict(tablename, - primary_keys=[('pid', 'int'), ('time', 'int')], - columns=[('value', 'text'), ('x', 'double'), ('y', 'double'), ('z', 'double')]) - - what_should_be = {} - for i in range(100): - pd[i, i + 100] = ['ciao' + str(i), i * 0.1, i * 0.2, i * 0.3] - what_should_be[i, i + 100] = ['ciao' + str(i), i * 0.1, i * 0.2, i * 0.3] - - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab12')[0] - self.assertEqual(count, 100) - pd = StorageDict(tablename, - [('pid', 'int'), ('time', 'int')], - [('value', 'text'), ('x', 'double'), ('y', 'double'), ('z', 'double')]) - count = 0 - res = {} - for key, val in pd.items(): - res[key] = val - count += 1 - self.assertEqual(count, 100) - delta = 0.000001 - for i in range(100): - a = what_should_be[i, i + 100] - b = res[i, i + 100] - self.assertEqual(a[0], b.value) - self.assertAlmostEquals(a[1], b.x, delta=delta) - self.assertAlmostEquals(a[2], b.y, delta=delta) - self.assertAlmostEquals(a[3], b.z, delta=delta) - - def test_composed_key_return_list_items_test(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab13") - tablename = "tab13" - pd = StorageDict(tablename, - primary_keys=[('pid', 'int'), ('time', 'double')], - columns=[('value', 'text'), ('x', 'double'), ('y', 'double'), ('z', 'double')]) - - what_should_be = {} - for i in range(100): - pd[i, i + 100.0] = ['ciao' + str(i), i * 0.1, i * 0.2, i * 0.3] - what_should_be[i, i + 100.0] = ['ciao' + str(i), i * 0.1, i * 0.2, i * 0.3] - - del pd - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.tab13')[0] - self.assertEqual(count, 100) - pd = StorageDict(tablename, - [('pid', 'int')], - [('time', 'double'), ('value', 'text'), ('x', 'double'), ('y', 'double'), ('z', 'double')]) - count = 0 - res = {} - for key, val in pd.items(): - self.assertTrue(isinstance(key, int)) - self.assertTrue(isinstance(val[0], float)) - res[key] = val - count += 1 - self.assertEqual(count, 100) - # casting to avoid 1.0000001 float python problem - data = set([(key, int(val.time), val.value, int(val.x), int(val.y), int(val.z)) for key, val in pd.items()]) - data2 = set([(key[0], int(key[1]), val[0], int(val[1]), int(val[2]), int(val[3])) for key, val in - what_should_be.items()]) - self.assertEqual(data, data2) - - def test_storagedict_newinterface_localmemory(self): - config.session.execute("DROP TABLE IF EXISTS my_app.my_dict") - - my_dict = MyStorageDict() - my_dict[0] = 1 - error = False - try: - result = config.session.execute('SELECT * FROM my_app.my_dict')[0] - except Exception as e: - error = True - self.assertEquals(True, error) - - def test_storagedict_newinterface_memorytopersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.my_dict") - - my_dict = MyStorageDict() - my_dict[0] = 1 - error = False - try: - result = config.session.execute('SELECT * FROM my_app.my_dict')[0] - except Exception as e: - error = True - self.assertEquals(True, error) - - my_dict.make_persistent('my_dict') - - del my_dict - import gc - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.my_dict')[0] - self.assertEquals(1, count) - - def test_storagedict_newinterface_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.my_dict") - - my_dict = MyStorageDict() - my_dict[0] = 1 - my_dict.make_persistent('my_dict') - time.sleep(1) - count, = config.session.execute('SELECT count(*) FROM my_app.my_dict')[0] - self.assertEquals(1, count) - - my_dict[1] = 2 - time.sleep(1) - count, = config.session.execute('SELECT count(*) FROM my_app.my_dict')[0] - self.assertEquals(2, count) - - my_dict2 = MyStorageDict('my_dict') - self.assertEquals(1, my_dict2[0]) - self.assertEquals(2, my_dict2[1]) - - def test_update(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a4") - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a5") - tablename = "tab_a4" - pd = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - pd[0] = 'prev_a' - pd[1] = 'prev_b' - self.assertEquals(pd[0], 'prev_a') - self.assertEquals(pd[1], 'prev_b') - pd.update({0: 'a', 1: 'b'}) - time.sleep(1) - self.assertEquals(pd[0], 'a') - self.assertEquals(pd[1], 'b') - pd.update({2: 'c', 3: 'd'}) - time.sleep(1) - self.assertEquals(pd[0], 'a') - self.assertEquals(pd[1], 'b') - self.assertEquals(pd[2], 'c') - self.assertEquals(pd[3], 'd') - tablename = "tab_a5" - pd2 = StorageDict(tablename, - [('position', 'int')], - [('value', 'text')]) - pd2[0] = 'final_a' - pd2[4] = 'final_4' - pd.update(pd2) - time.sleep(1) - self.assertEquals(pd[0], 'final_a') - self.assertEquals(pd[4], 'final_4') - - def test_update_kwargs(self): - config.session.execute("DROP TABLE IF EXISTS my_app.tab_a6") - tablename = "tab_a6" - pd = StorageDict(tablename, - [('position', 'text')], - [('value', 'text')]) - pd['val1'] = 'old_a' - pd['val2'] = 'old_b' - time.sleep(2) - self.assertEquals(pd['val1'], 'old_a') - self.assertEquals(pd['val2'], 'old_b') - pd.update(val1='new_a', val2='new_b') - time.sleep(2) - self.assertEquals(pd['val1'], 'new_a') - self.assertEquals(pd['val2'], 'new_b') - - def test_get_persistent(self): - table_name = 'tab_a7' - config.session.execute("DROP TABLE IF EXISTS my_app." + table_name) - my_text = MyStorageDict3('my_app.' + table_name) - self.assertEquals(0, my_text.get('word', 0)) - my_text['word'] = my_text.get('word', 0) + 1 - time.sleep(2) - self.assertEquals(1, my_text.get('word', 0)) - - def test_get_notpersistent(self): - my_text = MyStorageDict3() - self.assertEquals(0, my_text.get('word', 0)) - my_text['word'] = my_text.get('word', 0) + 1 - time.sleep(2) - self.assertEquals(1, my_text.get('word', 0)) - - def test_keys(self): - config.session.execute("DROP TABLE IF EXISTS my_app.test_keys") - my_dict = MyStorageDict2('test_keys') - # int,text - int - nitems = 100 - # write nitems to the dict - for id in range(0, nitems): - text_id = 'someText' - # force some clash on second keys - if id % 2 == 0: - text_id = 'someText' + str(id) - my_dict[(id, text_id)] = id - - del my_dict # force sync - my_dict = MyStorageDict2('test_keys') - total_items = list(my_dict.items()) - - self.assertEqual(len(total_items), nitems) - - # del my_dict - - my_second_dict = MyStorageDict2() - - for id in range(nitems, 2 * nitems): - text_id = 'someText' - # force some clash on second keys - if id % 2 == 0: - text_id = 'someText' + str(id) - my_second_dict[(id, text_id)] = id - - my_second_dict.make_persistent('test_keys') - del my_second_dict # force sync - my_second_dict = MyStorageDict2() - my_second_dict.make_persistent('test_keys') - - total_items = list(my_second_dict.items()) - self.assertEqual(len(total_items), 2 * nitems) - del my_dict - del my_second_dict - - my_third_dict = MyStorageDict2('test_keys') - total_items = list(my_third_dict.items()) - self.assertEqual(len(total_items), 2 * nitems) - - del my_third_dict - config.session.execute("DROP TABLE IF EXISTS my_app.test_keys") - - def test_values(self): - config.session.execute("DROP TABLE IF EXISTS my_app.test_values") - my_dict = MyStorageDict2('test_values') - # int,text - int - nitems = 100 - # write nitems to the dict - for id in range(0, nitems): - text_id = 'someText' - # force some clash on second keys - if id % 2 == 0: - text_id = 'someText' + str(id) - my_dict[(id, text_id)] = id - - del my_dict # force sync - my_dict = MyStorageDict2('test_values') - total_items = my_dict.items() - - self.assertEqual(len(list(total_items)), nitems) - - # del my_dict - - my_second_dict = MyStorageDict2() - - for id in range(nitems, 2 * nitems): - text_id = 'someText' - # force some clash on second keys - if id % 2 == 0: - text_id = 'someText' + str(id) - my_second_dict[(id, text_id)] = id - - my_second_dict.make_persistent('test_values') - del my_second_dict # force sync - my_second_dict = MyStorageDict2() - my_second_dict.make_persistent('test_values') - - total_items = list(my_second_dict.items()) - self.assertEqual(len(total_items), 2 * nitems) - del my_dict - del my_second_dict - - my_third_dict = MyStorageDict2('test_values') - total_items = list(my_third_dict.items()) - self.assertEqual(len(total_items), 2 * nitems) - - del my_third_dict - config.session.execute("DROP TABLE IF EXISTS my_app.test_values") - - def test_items(self): - config.session.execute("DROP TABLE IF EXISTS my_app.test_items") - my_dict = MyStorageDict2('test_items') - # int,text - int - nitems = 100 - # write nitems to the dict - for id in range(0, nitems): - text_id = 'someText' - # force some clash on second keys - if id % 2 == 0: - text_id = 'someText' + str(id) - my_dict[(id, text_id)] = id - - del my_dict # force sync - my_dict = MyStorageDict2('test_items') - total_items = list(my_dict.items()) - - self.assertEqual(len(total_items), nitems) - - # del my_dict - - my_second_dict = MyStorageDict2() - - for id in range(nitems, 2 * nitems): - text_id = 'someText' - # force some clash on second keys - if id % 2 == 0: - text_id = 'someText' + str(id) - my_second_dict[(id, text_id)] = id - - my_second_dict.make_persistent('test_items') - del my_second_dict # force sync - my_second_dict = MyStorageDict2() - my_second_dict.make_persistent('test_items') - - total_items = list(my_second_dict.items()) - self.assertEqual(len(total_items), 2 * nitems) - del my_dict - del my_second_dict - - my_third_dict = MyStorageDict2('test_items') - total_items = list(my_third_dict.items()) - self.assertEqual(len(total_items), 2 * nitems) - - del my_third_dict - config.session.execute("DROP TABLE IF EXISTS my_app.test_items") - - def test_iterator_sync(self): - ''' - check that the prefetch returns the exact same number of elements as inserted - ''' - config.session.execute("DROP TABLE IF EXISTS my_app.test_iterator_sync") - my_dict = MyStorageDict2('test_iterator_sync') - # int,text - int - nitems = 5000 - # write nitems to the dict - for id in range(0, nitems): - text_id = 'someText' - # force some clash on second keys - if id % 2 == 0: - text_id = 'someText' + str(id) - my_dict[(id, text_id)] = id - - total_items = list(my_dict.items()) - - self.assertEqual(len(total_items), nitems) - del my_dict - config.session.execute("DROP TABLE IF EXISTS my_app.test_iterator_sync") - - def test_assign_and_replace(self): - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC") - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC_mona") - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC_mona_0") - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC_mona_1") - config.session.execute("DROP TABLE IF EXISTS my_app.second_name") - - first_storagedict = MyStorageDictA() - my_storageobj = MyStorageObjC("first_name") - self.assertIsNotNone(my_storageobj.mona.storage_id) - self.assertTrue(isinstance(my_storageobj.mona.storage_id, uuid.UUID)) - - # Creates the 'my_app.mystorageobjc_mona' table - my_storageobj.mona['uno'] = 123 - - # empty dict no persistent assigned to persistent object - # creates the 'my_app.mystorageobjc_mona_0' table - my_storageobj.mona = first_storagedict - - self.assertIsNotNone(my_storageobj.mona.storage_id) - self.assertTrue(isinstance(my_storageobj.mona.storage_id, uuid.UUID)) - nitems = list(my_storageobj.mona.items()) - self.assertEqual(len(nitems), 0) - # it was assigned to a persistent storage obj, it should be persistent - self.assertIsNotNone(first_storagedict.storage_id) - self.assertTrue(isinstance(first_storagedict.storage_id, uuid.UUID)) - # create another non persistent dict - my_storagedict = MyStorageDictA() - my_storagedict['due'] = 12341321 - # store the second non persistent dict into the StorageObj attribute - my_storageobj.mona = my_storagedict - # contents should not be merged, the contents should be the same as in the last storage_dict - elements = list(my_storageobj.mona.items()) - self.assertEqual(len(elements), 1) - my_storagedict = MyStorageDictA('second_name') - last_key = 'some_key' - last_value = 123 - - my_storagedict[last_key] = last_value - # my_storageobj.mona - my_storageobj.mona = my_storagedict - self.assertTrue(last_key in my_storageobj.mona) - - last_items = list(my_storageobj.mona.items()) - self.assertEqual(len(last_items), 1) - self.assertEqual(my_storagedict[last_key], last_value) - - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC") - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC_mona") - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC_mona_0") - config.session.execute("DROP TABLE IF EXISTS my_app.MyStorageObjC_mona_1") - config.session.execute("DROP TABLE IF EXISTS my_app.second_name") - - def test_make_persistent_with_persistent_obj(self): - o2 = myobj2("obj") - o2.attr1 = 1 - o2.attr2 = "2" - - d = mydict() - d[0] = o2 - try: - d.make_persistent("dict") - except Exception as ex: - self.fail("Raised exception unexpectedly.\n" + str(ex)) - - def test_int_tuples(self): - config.session.execute("DROP TABLE IF EXISTS my_app.dictwithtuples") - d = DictWithTuples("my_app.dictwithtuples") - - what_should_be = dict() - for i in range(0, 10): - what_should_be[i] = (i, i + 10) - d[i] = (i, i + 10) - - time.sleep(1) - for i in range(0, 10): - self.assertEqual(d[i], (i, i + 10)) - - self.assertEqual(len(list(d.keys())), 10) - - res = dict() - count = 0 - for key, item in d.items(): - res[key] = item - count += 1 - - self.assertEqual(count, len(what_should_be)) - self.assertEqual(what_should_be, res) - - def test_values_tuples(self): - # @TypeSpec dict<, val0:int, val1:tuple, val2:str, val3:tuple> - config.session.execute("DROP TABLE IF EXISTS my_app.dictwithtuples3") - d = DictWithTuples3("my_app.dictwithtuples3") - - what_should_be = set() - for i in range(0, 20): - what_should_be.add((i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5)))) - d[i] = [i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5))] - - time.sleep(1) - res = set() - count = 0 - for item in d.values(): - res.add(tuple(item)) - count += 1 - - self.assertEqual(count, len(what_should_be)) - self.assertEqual(what_should_be, res) - self.assertEqual(what_should_be, res) - - def test_tuples_in_key(self): - config.session.execute("DROP TABLE IF EXISTS my_app.dictwithtuples2") - d = DictWithTuples2("my_app.dictwithtuples2") - - for i in range(0, 10): - d[(i, i), i + 1] = str(i) - - time.sleep(1) - for i in range(0, 10): - self.assertEqual(d[(i, i), i + 1], str(i)) - - self.assertEqual(len(list(d.keys())), 10) - - def test_keys_tuples(self): - config.session.execute("DROP TABLE IF EXISTS my_app.dictwithtuples2") - d = DictWithTuples2("my_app.dictwithtuples2") - - what_should_be = set() - for i in range(0, 10): - what_should_be.add(((i, i), i + 1)) - d[(i, i), i + 1] = str(i) - - time.sleep(1) - - res = set() - count = 0 - for key in d.keys(): - res.add(tuple(key)) - count += 1 - - self.assertEqual(count, len(what_should_be)) - self.assertEqual(what_should_be, res) - - def test_multiple_tuples(self): - config.session.execute("DROP TABLE IF EXISTS my_app.dictmultipletuples") - d = DictWithTuples3("my_app.dictmultipletuples") - - what_should_be = dict() - for i in range(0, 10): - what_should_be[i] = [i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5))] - d[i] = [i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5))] - - time.sleep(2) - for i in range(0, 10): - self.assertEqual(list(d[i]), [i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5))]) - self.assertEqual(len(list(d.keys())), 10) - - res = dict() - count = 0 - for key, item in d.items(): - res[key] = list(item) - count += 1 - - self.assertEqual(count, len(what_should_be)) - self.assertEqual(what_should_be, res) - - def test_int_tuples_null_values(self): - config.session.execute("DROP TABLE IF EXISTS my_app.dictwithtuples") - d = DictWithTuples("my_app.dictwithtuples") - - for i in range(0, 10): - if i % 2 == 0: - d[i] = (None, i + 10) - else: - d[i] = (i, i + 10) - - d = DictWithTuples("my_app.dictwithtuples") - for i in range(0, 10): - if i % 2 == 0: - self.assertEqual(d[i], (None, i + 10)) - else: - self.assertEqual(d[i], (i, i + 10)) - - def test_multi_tuples(self): - config.session.execute("DROP TABLE IF EXISTS my_app.multituples") - d = MultiTuples("my_app.multituples") - what_should_be = dict() - - for i in range(0, 10): - d[(i, i, i, i)] = [(i, i, i, i), (i, i, i, i), (i, i, i, i), (i, i, i, i), (i, i, i, i), (i, i, i, i), - (i, i, i, i), (i, i, i, i)] - what_should_be[(i, i, i, i)] = [(i, i, i, i), (i, i, i, i), (i, i, i, i), (i, i, i, i), (i, i, i, i), - (i, i, i, i), - (i, i, i, i), (i, i, i, i)] - for i in range(0, 10): - self.assertEqual(list(d[(i, i, i, i)]), - [(float(i), float(i), float(i), i), (float(i), float(i), float(i), i), - (float(i), float(i), float(i), i), (float(i), float(i), float(i), i), - (float(i), float(i), float(i), i), (float(i), float(i), float(i), i), - (float(i), float(i), float(i), i), (float(i), float(i), float(i), i)]) - - def test_multiple_tuples_NULL(self): - config.session.execute("DROP TABLE IF EXISTS my_app.dictmultipletuples") - d = DictWithTuples3("my_app.dictmultipletuples") - - what_should_be = dict() - for i in range(0, 10): - if i % 2 == 0: - what_should_be[i] = [i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5))] - d[i] = [i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5))] - else: - what_should_be[i] = [i, (5500000000000000, None), "hola", (None, (i + 20.5))] - d[i] = [i, (5500000000000000, None), "hola", (None, (i + 20.5))] - - d = DictWithTuples3("my_app.dictmultipletuples") - for i in range(0, 10): - if i % 2 == 0: - self.assertEqual(list(d[i]), [i, (5500000000000000, i + 10), "hola", ("adios", (i + 20.5))]) - else: - self.assertEqual(list(d[i]), [i, (5500000000000000, None), "hola", (None, (i + 20.5))]) - - self.assertEqual(len(list(d.keys())), 10) - - res = dict() - count = 0 - for key, item in d.items(): - res[key] = list(item) - count += 1 - - self.assertEqual(count, len(what_should_be)) - self.assertEqual(what_should_be, res) - - def test_storagedict_objs_same_table(self): - config.session.execute("DROP TABLE IF EXISTS my_app.my_dict") - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - d = TestDictOfStorageObj("my_app.my_dict") - for i in range(0, 10): - o = Test2StorageObj() - o.name = "adri" + str(i) - o.age = i - d[i] = o - - n = len(d) - for i in range(0, n): - self.assertEqual(d[i]._ksp, "my_app") - self.assertEqual(d[i]._table, "Test2StorageObj") - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/storagenumpy_tests.py b/hecuba_py/tests/withcassandra/storagenumpy_tests.py deleted file mode 100644 index 76f325c9..00000000 --- a/hecuba_py/tests/withcassandra/storagenumpy_tests.py +++ /dev/null @@ -1,130 +0,0 @@ -import unittest - -from hecuba import config, StorageNumpy -import uuid -import numpy as np - - -class StorageNumpyTest(unittest.TestCase): - table = 'numpy_test' - ksp = 'my_app' - - def test_init_empty(self): - tablename = None - - base_array = np.arange(4096).reshape((64, 64)) - storage_id = None - - basic_init = StorageNumpy(base_array) - self.assertTrue(np.array_equal(basic_init, base_array)) - - complete_init = StorageNumpy(base_array, storage_id, tablename) - self.assertTrue(np.array_equal(complete_init, base_array)) - - def test_types(self): - base_array = np.arange(256) - storage_id = None - tablename = None - - for typecode in np.typecodes['Integer']: - typed_array = StorageNumpy(base_array.astype(typecode), storage_id, tablename) - self.assertTrue(np.array_equal(typed_array, base_array.astype(typecode))) - - for typecode in np.typecodes['UnsignedInteger']: - typed_array = StorageNumpy(base_array.astype(typecode), storage_id, tablename) - self.assertTrue(np.array_equal(typed_array, base_array.astype(typecode))) - - def test_types_persistence(self): - base_array = np.arange(256) - tablename = self.ksp + '.' + self.table - - for typecode in np.typecodes['Integer']: - if typecode == 'p': - # TODO For now skip arrays made of pointers - pass - storage_id = uuid.uuid3(uuid.NAMESPACE_DNS, tablename + typecode) - typed_array = StorageNumpy(base_array.astype(typecode), storage_id, tablename) - self.assertTrue(np.array_equal(typed_array, base_array.astype(typecode))) - import gc - del typed_array - gc.collect() - typed_array = StorageNumpy(None, storage_id, tablename) - self.assertTrue(np.array_equal(typed_array, base_array.astype(typecode))) - - for typecode in np.typecodes['UnsignedInteger']: - if typecode == 'P': - # TODO For now skip arrays made of pointers - pass - storage_id = uuid.uuid3(uuid.NAMESPACE_DNS, tablename + typecode) - typed_array = StorageNumpy(base_array.astype(typecode), storage_id, tablename) - self.assertTrue(np.array_equal(typed_array, base_array.astype(typecode))) - typed_array = None - typed_array = StorageNumpy(None, storage_id, tablename) - self.assertTrue(np.array_equal(typed_array, base_array.astype(typecode))) - - def test_explicit_construct(self): - # From an explicit constructor - e.g. InfoArray(): - # obj is None - # (we're in the middle of the InfoArray.__new__ - # constructor, and self.info will be set when we return to - # InfoArray.__new__) - - basic_init = StorageNumpy() - - def test_view_cast(self): - # From view casting - e.g arr.view(InfoArray): - # obj is arr - # (type(obj) can be InfoArray) - - base_array = np.arange(4096).reshape((64, 64)) - view_cast = base_array.view(StorageNumpy) - - def test_new_from_template(self): - # From new-from-template - e.g infoarr[:3] - # type(obj) is InfoArray - base_array = np.arange(4096).reshape((64, 64)) - basic_init = StorageNumpy(base_array) - new_from_template = basic_init[:32] - - def test_explicit_construct(self): - # From an explicit constructor - e.g. InfoArray(): - # obj is None - # (we're in the middle of the InfoArray.__new__ - # constructor, and self.info will be set when we return to - # InfoArray.__new__) - - basic_init = StorageNumpy() - - def test_view_cast(self): - # From view casting - e.g arr.view(InfoArray): - # obj is arr - # (type(obj) can be InfoArray) - - base_array = np.arange(4096).reshape((64, 64)) - view_cast = base_array.view(StorageNumpy) - - def test_new_from_template(self): - # From new-from-template - e.g infoarr[:3] - # type(obj) is InfoArray - base_array = np.arange(4096).reshape((64, 64)) - basic_init = StorageNumpy(base_array) - new_from_template = basic_init[:32] - - def test_read_all(self): - nelem = 2 ** 21 - elem_dim = 2 ** 7 - - storage_id = uuid.uuid3(uuid.NAMESPACE_DNS, "first_test") - base_array = np.arange(nelem).reshape((elem_dim, elem_dim, elem_dim)) - casted = StorageNumpy(input_array=base_array, name="testing_arrays.first_test", storage_id=storage_id) - import gc - del casted - gc.collect() - test_numpy = np.arange(nelem).reshape((elem_dim, elem_dim, elem_dim)) - casted = StorageNumpy(name="testing_arrays.first_test", storage_id=storage_id) - chunk = casted[slice(None, None, None)] - self.assertTrue(np.allclose(chunk.view(np.ndarray), test_numpy)) - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/storageobj_split_tests.py b/hecuba_py/tests/withcassandra/storageobj_split_tests.py deleted file mode 100644 index 5df6b2bb..00000000 --- a/hecuba_py/tests/withcassandra/storageobj_split_tests.py +++ /dev/null @@ -1,171 +0,0 @@ -import unittest -import gc - -from hecuba import config -from hecuba.storageobj import StorageObj - - -class TestSimple(StorageObj): - ''' - @ClassField words dict<,value:str> - ''' - pass - - -N_CASS_NODES = 2 - - -class StorageObjSplitTest(unittest.TestCase): - def test_simple_keys_split_test(self): - tablename = "tab30" - config.session.execute("DROP TABLE IF EXISTS my_app.{}".format(tablename)) - config.session.execute("DROP TABLE IF EXISTS my_app.{}_words".format(tablename)) - sto = TestSimple(tablename) - pd = sto.words - num_inserts = 1000 - what_should_be = set() - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - what_should_be.add(i) - del pd, sto - - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.{}_words'.format(tablename))[0] - self.assertEqual(count, num_inserts) - - sto = TestSimple(tablename) - pd = sto.words - - count = 0 - res = set() - splits = 0 - for partition in pd.split(): - splits += 1 - for val in partition.keys(): - res.add(val) - count += 1 - pd.delete_persistent() - del pd - self.assertTrue(splits >= config.splits_per_node * N_CASS_NODES) - self.assertEqual(count, num_inserts) - self.assertEqual(what_should_be, res) - - def test_build_remotely_keys_split_test(self): - tablename = 'tab30' - config.session.execute('DROP TABLE IF EXISTS my_app.{}'.format(tablename)) - config.session.execute('DROP TABLE IF EXISTS my_app.{}_words'.format(tablename)) - sto = TestSimple(tablename) - pd = sto.words - num_inserts = 1000 - - what_should_be = set() - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - what_should_be.add(i) - del pd, sto - - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.{}_words'.format(tablename))[0] - self.assertEqual(count, num_inserts) - - sto = TestSimple(tablename) - pd = sto.words - - count = 0 - res = set() - splits = 0 - for partition in pd.split(): - id = partition.storage_id - from storage.api import getByID - rebuild = getByID(id) - splits += 1 - for val in rebuild.keys(): - res.add(val) - count += 1 - pd.delete_persistent() - del pd - self.assertTrue(splits >= config.splits_per_node * N_CASS_NODES) - self.assertEqual(count, num_inserts) - self.assertEqual(what_should_be, res) - - def test_simple_keys_split_fromSO_test(self): - tablename = "tab31" - config.session.execute('DROP TABLE IF EXISTS my_app.{}'.format(tablename)) - config.session.execute('DROP TABLE IF EXISTS my_app.{}_words'.format(tablename)) - sto = TestSimple(tablename) - pd = sto.words - num_inserts = 1000 - what_should_be = set() - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - what_should_be.add(i) - del pd, sto - - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.{}_words'.format(tablename))[0] - self.assertEqual(count, num_inserts) - - sto = TestSimple(tablename) - count = 0 - res = set() - splits = 0 - for partition in sto.split(): - splits += 1 - for val in partition.words.keys(): - res.add(val) - count += 1 - sto.delete_persistent() - del sto - self.assertTrue(splits >= config.splits_per_node * N_CASS_NODES) - self.assertEqual(count, num_inserts) - self.assertEqual(what_should_be, res) - - def test_build_remotely_keys_split_fromSO_test(self): - tablename = "tab32" - config.session.execute('DROP TABLE IF EXISTS my_app.{}'.format(tablename)) - config.session.execute('DROP TABLE IF EXISTS my_app.{}_words'.format(tablename)) - sto = TestSimple(tablename) - pd = sto.words - num_inserts = 1000 - what_should_be = set() - for i in range(num_inserts): - pd[i] = 'ciao' + str(i) - what_should_be.add(i) - del pd, sto - - gc.collect() - count, = config.session.execute('SELECT count(*) FROM my_app.{}_words'.format(tablename))[0] - self.assertEqual(count, num_inserts) - - sto = TestSimple(tablename) - count = 0 - res = set() - splits = 0 - for partition in sto.split(): - splits += 1 - id = partition.storage_id - from storage.api import getByID - rebuild = getByID(id) - for val in rebuild.words.keys(): - res.add(val) - count += 1 - sto.delete_persistent() - del sto - self.assertTrue(splits >= config.splits_per_node * N_CASS_NODES) - self.assertEqual(count, num_inserts) - self.assertEqual(what_should_be, res) - - def test_split_with_different_storage_ids(self): - tablename = "tab33" - config.session.execute('DROP TABLE IF EXISTS my_app.{}'.format(tablename)) - config.session.execute('DROP TABLE IF EXISTS my_app.{}_words'.format(tablename)) - sto = TestSimple(tablename) - pd = sto.words - - ids = len(set(map(lambda x: x.storage_id, pd.split()))) - self.assertTrue(ids >= config.splits_per_node * N_CASS_NODES) - sto.delete_persistent() - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/storageobj_tests.py b/hecuba_py/tests/withcassandra/storageobj_tests.py deleted file mode 100644 index a59af19d..00000000 --- a/hecuba_py/tests/withcassandra/storageobj_tests.py +++ /dev/null @@ -1,1281 +0,0 @@ -import time -import unittest -import uuid - -import cassandra -import numpy as np -from hecuba import config -from hecuba.tools import discrete_token_ranges -from hecuba.storageobj import StorageObj -from storage.api import getByID -from hecuba.IStorage import build_remotely - -from ..app.words import Words - - -class Test2StorageObj(StorageObj): - ''' - @ClassField name str - @ClassField age int - ''' - pass - - -class Result(StorageObj): - ''' - @ClassField instances dict<, numinstances:int> - ''' - pass - - -class TestStorageObj(StorageObj): - ''' - @ClassField test dict<, text:str> - ''' - pass - - -class TestStorageIndexedArgsObj(StorageObj): - ''' - @ClassField test dict<, x:float, y:float, z:float> - @Index_on test x,y,z - ''' - pass - - -class Test2StorageObjFloat(StorageObj): - ''' - @ClassField name str - @ClassField age float - ''' - pass - - -class Test3StorageObj(StorageObj): - ''' - @ClassField myso tests.withcassandra.storageobj_tests.Test2StorageObj - @ClassField myso2 tests.withcassandra.storageobj_tests.TestStorageObj - @ClassField myint int - @ClassField mystr str - ''' - pass - - -class Test4StorageObj(StorageObj): - ''' - @ClassField myotherso tests.withcassandra.storageobj_tests.Test2StorageObj - ''' - pass - - -class Test4bStorageObj(StorageObj): - ''' - @ClassField myotherso tests.withcassandra.test2storageobj.Test2StorageObj - ''' - pass - - -class Test5StorageObj(StorageObj): - ''' - @ClassField test2 dict<, myso:tests.withcassandra.storageobj_tests.Test2StorageObj> - ''' - pass - - -class Test6StorageObj(StorageObj): - ''' - @ClassField test3 dict<, val0:str, val1:str> - ''' - pass - - -class Test7StorageObj(StorageObj): - ''' - @ClassField test2 dict<, val0:tests.withcassandra.storageobj_tests.Test2StorageObj> - ''' - pass - - -class TestStorageObjNumpy(StorageObj): - ''' - @ClassField mynumpy numpy.ndarray - ''' - pass - - -class TestStorageObjNumpyDict(StorageObj): - ''' - @ClassField mynumpydict dict<, val:numpy.ndarray> - ''' - pass - - -class TestAttributes(StorageObj): - ''' - @ClassField key int - ''' - - value = None - - def do_nothing_at_all(self): - pass - - def setvalue(self, v): - self.value = v - - def getvalue(self): - return self.value - - -class mixObj(StorageObj): - ''' - @ClassField floatfield float - @ClassField intField int - @ClassField strField str - @ClassField intlistField list - @ClassField floatlistField list - @ClassField strlistField list - @ClassField dictField dict<, val0:str> - @ClassField inttupleField tuple - ''' - - -class StorageObjTest(unittest.TestCase): - def test_build_remotely(self): - config.session.execute("DROP TABLE IF EXISTS " + config.execution_name + ".TestStorageObj") - obj = TestStorageObj(config.execution_name + ".tt1") - r = {"built_remotely": False, "storage_id": uuid.uuid3(uuid.NAMESPACE_DNS, config.execution_name + '.tt1'), - "ksp": config.execution_name, - "class_name": str(TestStorageObj.__module__) + "." + TestStorageObj.__name__, "name": 'tt1', - "columns": [('val1', 'str')], "entry_point": 'localhost', "primary_keys": [('pk1', 'int')], - "istorage_props": {}, - "tokens": discrete_token_ranges([token.value for token in config.cluster.metadata.token_map.ring])} - - nopars = build_remotely(r) - self.assertEqual('TestStorageObj'.lower(), nopars._table) - self.assertEqual(config.execution_name, nopars._ksp) - self.assertEqual(uuid.uuid3(uuid.NAMESPACE_DNS, config.execution_name + '.tt1'), nopars.storage_id) - name, tkns = \ - config.session.execute("SELECT name, tokens FROM hecuba.istorage WHERE storage_id = %s", - [nopars.storage_id])[ - 0] - - self.assertEqual(name, config.execution_name + '.tt1') - self.assertEqual(tkns, r['tokens']) - - def test_init_create_pdict(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObj_instances") - config.session.execute("DROP TABLE IF EXISTS " + config.execution_name + '.TestStorageObj') - - r = {"built_remotely": False, "storage_id": uuid.uuid3(uuid.NAMESPACE_DNS, config.execution_name + '.tt1'), - "ksp": config.execution_name, - "class_name": str(TestStorageObj.__module__) + "." + TestStorageObj.__name__, "name": 'tt1', - "columns": [('val1', 'str')], "entry_point": 'localhost', "primary_keys": [('pk1', 'int')], - "istorage_props": {}, - "tokens": discrete_token_ranges([token.value for token in config.cluster.metadata.token_map.ring])} - - nopars = build_remotely(r) - self.assertEqual(nopars._built_remotely, False) - self.assertEqual('TestStorageObj'.lower(), nopars._table) - self.assertEqual(config.execution_name, nopars._ksp) - self.assertEqual(uuid.uuid3(uuid.NAMESPACE_DNS, config.execution_name + '.tt1'), nopars.storage_id) - name, tkns = \ - config.session.execute("SELECT name,tokens FROM hecuba.istorage WHERE storage_id = %s", - [nopars.storage_id])[0] - self.assertEqual(name, config.execution_name + '.' + r['name']) - self.assertEqual(tkns, r['tokens']) - - tkns = discrete_token_ranges( - [8508619251581300691, 8514581128764531689, 8577968535836399533, 8596162846302799189, - 8603491526474728284, 8628291680139169981, 8687301163739303017, 9111581078517061776]) - config.session.execute("DROP TABLE IF EXISTS " + config.execution_name + '.tt2') - nopars = Result(name='tt2', - tokens=tkns) - self.assertEqual('Result'.lower(), nopars._table) - self.assertEqual(config.execution_name, nopars._ksp) - self.assertEqual(uuid.uuid3(uuid.NAMESPACE_DNS, config.execution_name + '.tt2'), nopars.storage_id) - self.assertEqual(True, nopars._is_persistent) - self.assertTrue(hasattr(nopars, 'instances')) - name, read_tkns = config.session.execute("SELECT name,tokens FROM hecuba.istorage WHERE storage_id = %s", - [nopars.storage_id])[0] - - self.assertEqual(name, config.execution_name + '.tt2') - self.assertEqual(tkns, read_tkns) - - def test_mixed_class(self): - config.session.execute("DROP TABLE IF EXISTS hecuba_test.mixObj") - myObj = mixObj() - - myObj.make_persistent("hecuba_test.bla") - - myObj.floatfield = 5.0 - myObj.intField = 5 - myObj.strField = "6" - myObj.intlistField = [7, 8, 9] - myObj.floatlistField = [10.0, 11.0, 12.0] - myObj.strlistField = ["13.0", "14.0", "15.0"] - myObj.inttupleField = (1, 2) - - floatfield, intField, strField, intlistField, floatlistField, strlistField, inttupleField = \ - config.session.execute("SELECT floatField, " - "intField, " - "strField, " - "intlistField, " - "floatlistField, " - "strlistField, " - "inttupleField " - "FROM hecuba_test.mixObj WHERE storage_id =" + str(myObj.storage_id))[0] - - self.assertEquals(floatfield, myObj.floatfield) - self.assertEquals(intField, myObj.intField) - self.assertEquals(strField, myObj.strField) - self.assertEquals(intlistField, myObj.intlistField) - self.assertEquals(floatlistField, myObj.floatlistField) - self.assertEquals(strlistField, myObj.strlistField) - self.assertEquals(inttupleField, myObj.inttupleField) - - def test_init_empty(self): - config.session.execute("DROP TABLE IF EXISTS ksp1.TestStorageObj") - nopars = TestStorageObj('ksp1.ttta') - self.assertEqual('TestStorageObj'.lower(), nopars._table) - self.assertEqual('ksp1', nopars._ksp) - - res = config.session.execute( - 'SELECT storage_id, class_name, name, tokens, istorage_props FROM hecuba.istorage WHERE storage_id = %s', - [nopars.storage_id])[0] - - storage_id, storageobj_classname, name, tokens, istorage_props = res - self.assertEqual(storage_id, nopars.storage_id) - self.assertEqual(storageobj_classname, TestStorageObj.__module__ + "." + TestStorageObj.__name__) - self.assertEqual(name, 'ksp1.ttta') - - rebuild = build_remotely(res._asdict()) - self.assertEqual(rebuild._built_remotely, True) - self.assertEqual('TestStorageObj'.lower(), rebuild._table) - self.assertEqual('ksp1'.lower(), rebuild._ksp) - self.assertEqual(storage_id, rebuild.storage_id) - - self.assertEqual(nopars._is_persistent, rebuild._is_persistent) - # self.assertEqual(vars(nopars), vars(rebuild)) - - def test_make_persistent(self): - config.session.execute("DROP TABLE IF EXISTS hecuba_test.nonames") - config.session.execute("DROP TABLE IF EXISTS hecuba_test.words") - config.session.execute("DROP TABLE IF EXISTS hecuba_test.words_words") - config.session.execute("DROP TABLE IF EXISTS hecuba_test.nonames_test3") - nopars = Words() - self.assertFalse(nopars._is_persistent) - nopars.ciao = 1 - nopars.ciao2 = "1" - nopars.ciao3 = [1, 2, 3] - nopars.ciao4 = (1, 2, 3) - for i in range(10): - nopars.words[i] = 'ciao' + str(i) - - count, = config.session.execute( - "SELECT count(*) FROM system_schema.tables WHERE keyspace_name = 'hecuba_test' and table_name = 'words'")[0] - self.assertEqual(0, count) - - nopars.make_persistent("hecuba_test.wordsso") - del nopars - - count, = config.session.execute('SELECT count(*) FROM hecuba_test.wordsso_words')[0] - self.assertEqual(10, count) - - nopars2 = Test6StorageObj("hecuba_test.nonames") - nopars2.test3[0] = ['1', '2'] - time.sleep(2) - result = config.session.execute("SELECT val0, val1 FROM hecuba_test.nonames_test3 WHERE key0 = 0") - - rval0 = None - rval1 = None - for row in result: - rval0 = row.val0 - rval1 = row.val1 - - self.assertEqual('1', rval0) - self.assertEqual('2', rval1) - - def test_empty_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Words_words") - config.session.execute("DROP TABLE IF EXISTS my_app.Words") - so = Words() - so.make_persistent("my_app.wordsso") - so.ciao = "an attribute" - so.another = 123 - config.batch_size = 1 - config.cache_activated = False - for i in range(10): - so.words[i] = str.join(',', map(lambda a: "ciao", range(i))) - - del so - import gc - gc.collect() - - count, = config.session.execute('SELECT count(*) FROM my_app.wordsso_words')[0] - self.assertEqual(10, count) - so = Words() - so.make_persistent("my_app.wordsso") - so.delete_persistent() - - count, = config.session.execute('SELECT count(*) FROM my_app.wordsso_words')[0] - self.assertEqual(0, count) - - def test_simple_stores_after_make_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj() - so.name = 'caio' - so.age = 1000 - so.make_persistent("t2") - count, = config.session.execute("SELECT COUNT(*) FROM my_app.Test2StorageObj")[0] - self.assertEqual(count, 1) - self.assertEqual(so.name, 'caio') - self.assertEqual(so.age, 1000) - - def test_simple_attributes(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj() - so.make_persistent("t2") - so.name = 'caio' - so.age = 1000 - count, = config.session.execute("SELECT COUNT(*) FROM my_app.Test2StorageObj")[0] - self.assertEqual(count, 1) - self.assertEqual(so.name, 'caio') - self.assertEqual(so.age, 1000) - - def test_modify_simple_attributes(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj() - so.make_persistent("t2") - so.name = 'caio' - so.age = 1000 - count, = config.session.execute("SELECT COUNT(*) FROM my_app.Test2StorageObj")[0] - self.assertEqual(count, 1) - self.assertEqual(so.name, 'caio') - self.assertEqual(so.age, 1000) - so.name = 'addio' - so.age = 2000 - self.assertEqual(so.name, 'addio') - self.assertEqual(so.age, 2000) - - def test_delattr_nonpersistent(self): - so = Test2StorageObj() - so.name = 'caio' - del so.name - - def del_attr(): - my_val = so.name - - self.assertRaises(AttributeError, del_attr) - - def test_delattr_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj("t3") - so.name = 'caio' - del so.name - - def del_attr1(): - my_val = so.name - - self.assertRaises(AttributeError, del_attr1) - - def del_attr2(): - my_val = so.random_val - - self.assertRaises(AttributeError, del_attr1) - - def test_delattr_persistent_nested(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - so = Test3StorageObj("t4") - nestedSo = Test2StorageObj() - nestedSo.name = 'caio' - so.myint = 123 - so.myso = nestedSo - # Make sure the inner object has been made persistent - self.assertTrue(nestedSo._is_persistent) - # Delete the attribute - del so.myint - - def del_attr1(): - my_val = so.myint - - # Accessing deleted attr of type StorageOb should raise AttrErr - self.assertRaises(AttributeError, del_attr1) - - # We assign again, nestedSo still existed (no one called delete on it) - so.myso = nestedSo - - # Delete a nested attribute of the shared StorageObj - del so.myso.name - - # Make sure that the nested attribute deleted has been successfully deleted from both objects - def del_attr2(): - my_val = nestedSo.name - - def del_attr3(): - my_val = so.myso.name - - self.assertRaises(AttributeError, del_attr2) - self.assertRaises(AttributeError, del_attr3) - - def test_modify_simple_before_mkp_attributes(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj() - so.name = 'caio' - so.age = 1000 - so.make_persistent("t2") - count, = config.session.execute("SELECT COUNT(*) FROM my_app.Test2StorageObj")[0] - self.assertEqual(count, 1) - self.assertEqual(so.name, 'caio') - self.assertEqual(so.age, 1000) - so.name = 'addio' - so.age = 2000 - self.assertEqual(so.name, 'addio') - self.assertEqual(so.age, 2000) - - def test_paranoid_setattr_nonpersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj("myobj") - so.name = 'my_name' - self.assertEquals(so.name, 'my_name') - - def set_name_test(): - so.name = 1 - - self.assertRaises(cassandra.InvalidRequest, set_name_test) - so.age = 1 - self.assertEquals(so.age, 1) - - def set_age_test(): - so.age = 'my_name' - - self.assertRaises(cassandra.InvalidRequest, set_age_test) - - def test_paranoid_setattr_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj("t2") - so.name = 'my_name' - result = config.session.execute("SELECT name FROM my_app.Test2StorageObj") - for row in result: - cass_name = row.name - self.assertEquals(cass_name, 'my_name') - - def setNameTest(): - so.name = 1 - - self.assertRaises(cassandra.InvalidRequest, setNameTest) - so.age = 1 - result = config.session.execute("SELECT age FROM my_app.Test2StorageObj") - for row in result: - cass_age = row.age - self.assertEquals(cass_age, 1) - - def setAgeTest(): - so.age = 'my_name' - - self.assertRaises(cassandra.InvalidRequest, setAgeTest) - - def test_paranoid_setattr_float(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObjFloat("t2_2") - so.age = 2.0 - - def test_nestedso_notpersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.test4bstorageobj") - - my_nested_so = Test3StorageObj() - - my_nested_so.myso.name = 'Link' - self.assertEquals('Link', my_nested_so.myso.name) - my_nested_so.myso.age = 10 - self.assertEquals(10, my_nested_so.myso.age) - - error = False - try: - config.session.execute('SELECT * FROM my_app.Test3StorageObj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(True, error) - - my_nested_so.myso2.test[0] = 'position0' - self.assertEquals('position0', my_nested_so.myso2.test[0]) - - my_nested_so2 = Test4StorageObj() - - my_nested_so2.myotherso.name = 'Link' - self.assertEquals('Link', my_nested_so2.myotherso.name) - my_nested_so2.myotherso.age = 10 - self.assertEquals(10, my_nested_so2.myotherso.age) - - error = False - try: - config.session.execute('SELECT * FROM my_app.myso') - except cassandra.InvalidRequest: - error = True - self.assertEquals(True, error) - - my_nested_so3 = Test4bStorageObj('mynested') - my_nested_subso = my_nested_so3.myotherso - - my_other_nested = getByID(my_nested_subso.storage_id) - my_other_nested.name = 'bla' - my_other_nested.age = 5 - error = False - try: - result = config.session.execute('SELECT * FROM my_app.Test2StorageObj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(False, error) - for row in result: - query_res = row - self.assertEquals(5, query_res.age) - self.assertEquals('bla', query_res.name) - - def test_nestedso_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.test2storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj_test") - - my_nested_so = Test3StorageObj('mynewso') - self.assertEquals(True, my_nested_so._is_persistent) - self.assertEquals(True, my_nested_so.myso._is_persistent) - self.assertEquals(True, my_nested_so.myso2._is_persistent) - - my_nested_so.myso.name = 'Link' - my_nested_so.myso.age = 10 - error = False - try: - result = config.session.execute('SELECT * FROM my_app.test2storageobj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(False, error) - for row in result: - query_res = row - self.assertEquals(10, query_res.age) - self.assertEquals('Link', query_res.name) - - my_nested_so.myso2.name = 'position0' - self.assertEquals('position0', my_nested_so.myso2.name) - - def test_nestedso_topersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.test2storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj_test") - - my_nested_so = Test3StorageObj() - - my_nested_so.myso.name = 'Link' - self.assertEquals('Link', my_nested_so.myso.name) - my_nested_so.myso.age = 10 - self.assertEquals(10, my_nested_so.myso.age) - error = False - try: - result = config.session.execute('SELECT * FROM my_app.test2storageobj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(True, error) - - my_nested_so.make_persistent('mynewso') - - error = False - try: - result = config.session.execute('SELECT * FROM my_app.test2storageobj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(False, error) - for row in result: - query_res = row - self.assertEquals(10, query_res.age) - self.assertEquals('Link', query_res.name) - - def test_nestedso_sets_gets(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.test2storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj_test") - - my_nested_so = Test3StorageObj() - - my_nested_so.myso.name = 'Link' - self.assertEquals('Link', my_nested_so.myso.name) - my_nested_so.myso.age = 10 - self.assertEquals(10, my_nested_so.myso.age) - my_nested_so.myso.weight = 70 - self.assertEquals(70, my_nested_so.myso.weight) - error = False - try: - result = config.session.execute('SELECT * FROM my_app.mynewso_myso') - except cassandra.InvalidRequest: - error = True - self.assertEquals(True, error) - - my_nested_so.make_persistent('mynewso') - - error = False - try: - result = config.session.execute('SELECT * FROM my_app.Test2StorageObj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(False, error) - for row in result: - query_res = row - self.assertEquals(10, query_res.age) - self.assertEquals('Link', query_res.name) - error = False - try: - _ = query_res.weight - except: - error = True - self.assertEquals(True, error) - my_nested_so.myso.weight = 50 - self.assertEquals(50, my_nested_so.myso.weight) - result = config.session.execute('SELECT * FROM my_app.Test2StorageObj') - for row in result: - query_res = row - error = False - try: - _ = query_res.weight - except: - error = True - self.assertEquals(True, error) - - def test_nestedso_sets_gets_complex(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.test2storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.tnsgc") - config.session.execute("DROP TABLE IF EXISTS my_app.tnsgc_test") - config.session.execute("DROP TABLE IF EXISTS my_app.tnsgc_test_0") - config.session.execute("DROP TABLE IF EXISTS my_app.tnsgc_test_1") - - my_nested_so = Test3StorageObj() - - error = False - try: - _ = config.session.execute('SELECT * FROM my_app.TestStorageObj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(True, error) - - my_nested_so.make_persistent('tnsgc') - - # We create the nested persistent objects only after they are accessed by the first time - error = False - try: - _ = config.session.execute('SELECT * FROM my_app.TestStorageObj') - except cassandra.InvalidRequest: - error = True - self.assertEquals(True, error) - - for i in range(0, 100): - my_nested_so.myso2.test[i] = 'position' + str(i) - time.sleep(5) - count, = config.session.execute("SELECT COUNT(*) FROM my_app.tnsgc_myso2_test")[0] - self.assertEquals(100, count) - - def test_nestedso_deletepersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.test2storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.tndp") - - my_nested_so = Test3StorageObj('tndp') - - self.assertEquals(True, my_nested_so._is_persistent) - my_nested_so.myso.name = 'Link' - self.assertEquals('Link', my_nested_so.myso.name) - my_nested_so.myso.age = 10 - self.assertEquals(10, my_nested_so.myso.age) - - my_nested_so.delete_persistent() - - self.assertEquals(False, my_nested_so._is_persistent) - entries = 0 - try: - _ = config.session.execute('SELECT * FROM my_app.test2storageobj') - except cassandra.InvalidRequest: - entries += 1 - self.assertEquals(0, entries) - - def test_nestedso_dictofsos(self): - config.session.execute("DROP TABLE IF EXISTS my_app.test5storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.test5storageobj_test2") - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - my_nested_so = Test5StorageObj() - my_nested_so.test2[0] = Test2StorageObj() - my_nested_so.make_persistent('topstorageobj') - self.assertEquals(True, my_nested_so._is_persistent) - self.assertEquals(True, my_nested_so.test2._is_persistent) - self.assertEquals(True, my_nested_so.test2[0]._is_persistent) - - my_nested_so.test2[0].name = 'Link' - self.assertEquals('Link', my_nested_so.test2[0].name) - my_nested_so.test2[0].age = 10 - self.assertEquals(10, my_nested_so.test2[0].age) - - def test_nestedso_dictofsos_noname(self): - ''' - this test similar to test_nestedso_dictofsos with the difference that the StorageDict - used as an attribute in Test7StorageObj has the form where no name has been given for the - StorageObj nor the Integer. In this case, a default name is used (key0,val0). - ''' - config.session.execute("DROP TABLE IF EXISTS my_app.test2storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.test7storageobj") - config.session.execute("DROP TABLE IF EXISTS my_app.test7storageobj_test2") - - my_nested_so = Test7StorageObj() - my_nested_so.test2[0] = Test2StorageObj() - my_nested_so.make_persistent('topstorageobj2') - self.assertEquals(True, my_nested_so._is_persistent) - self.assertEquals(True, my_nested_so.test2._is_persistent) - self.assertEquals(True, my_nested_so.test2[0]._is_persistent) - - my_nested_so.test2[0].name = 'Link' - self.assertEquals('Link', my_nested_so.test2[0].name) - my_nested_so.test2[0].age = 10 - self.assertEquals(10, my_nested_so.test2[0].age) - - def test_nestedso_retrievedata(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test5StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.test5storageobj_test2") - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - - my_nested_so = Test5StorageObj('tnr') - my_nested_so.test2[0] = Test2StorageObj('something') - self.assertEquals(True, my_nested_so._is_persistent) - self.assertEquals(True, my_nested_so.test2._is_persistent) - self.assertEquals(True, my_nested_so.test2[0]._is_persistent) - - my_nested_so.test2[0].name = 'Link' - self.assertEquals('Link', my_nested_so.test2[0].name) - my_nested_so.test2[0].age = 10 - self.assertEquals(10, my_nested_so.test2[0].age) - - del my_nested_so - - my_nested_so2 = Test5StorageObj('tnr') - - self.assertEquals('Link', my_nested_so2.test2[0].name) - self.assertEquals(10, my_nested_so2.test2[0].age) - - def test_numpy_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpy('tnp') - - def test_numpy_set(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpy() - my_so.mynumpy = np.random.rand(3, 2) - my_so.make_persistent('mynewso') - - def test_numpy_get(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy_mynumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpy('mynewso') - mynumpy = np.random.rand(3, 2) - my_so.mynumpy = mynumpy - import time - time.sleep(2) - self.assertTrue(np.array_equal(mynumpy, my_so.mynumpy)) - - def test_numpy_topersistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpy() - my_so.mynumpy = np.random.rand(3, 2) - my_so.make_persistent('mynewso') - - def test_numpydict_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpyDict('mynewso') - - def test_numpydict_set(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpyDict('mynewso') - my_so.mynumpydict[0] = np.random.rand(3, 2) - - def test_numpydict_to_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpyDict() - my_so.mynumpydict[0] = np.random.rand(3, 2) - my_so.make_persistent('mynewso') - - def test_numpydict_get(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestStorageObjNumpy") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobjnumpy_mynumpy_numpies") - my_so = TestStorageObjNumpyDict() - mynumpydict = np.random.rand(3, 2) - my_so.mynumpydict[0] = mynumpydict - my_so.make_persistent('mynewso') - import time - time.sleep(2) - self.assertTrue(np.array_equal(mynumpydict, my_so.mynumpydict[0])) - - def test_numpy_operations(self): - config.session.execute("DROP TABLE IF EXISTS my_app.mynewso") - config.session.execute("DROP TABLE IF EXISTS my_app.mynewso_mynumpy_numpies") - my_so = TestStorageObjNumpy() - base_numpy = np.arange(2048) - my_so.mynumpy = np.arange(2048) - my_so.make_persistent('mynewso') - import time - time.sleep(2) - self.assertTrue(np.array_equal(base_numpy, my_so.mynumpy)) - base_numpy += 1 - my_so.mynumpy += 1 - self.assertTrue(np.array_equal(base_numpy, my_so.mynumpy)) - self.assertEqual(np.average(base_numpy), np.average(my_so.mynumpy)) - self.assertEqual(np.mean(base_numpy), np.mean(my_so.mynumpy)) - - def test_numpy_ops_persistent(self): - config.session.execute("DROP TABLE IF EXISTS my_app.mynewso2") - config.session.execute("DROP TABLE IF EXISTS my_app.mynewso2_mynumpy_numpies") - my_so = TestStorageObjNumpy() - base_numpy = np.arange(2048) - my_so.mynumpy = np.arange(2048) - my_so.make_persistent('my_app.mynewso2') - self.assertTrue(np.array_equal(base_numpy, my_so.mynumpy)) - base_numpy += 1 - my_so.mynumpy += 1 - self.assertTrue(np.array_equal(base_numpy, my_so.mynumpy)) - - reloaded_so = TestStorageObjNumpy('mynewso') - self.assertTrue(np.array_equal(base_numpy, reloaded_so.mynumpy)) - self.assertEqual(np.average(base_numpy), np.average(reloaded_so.mynumpy)) - self.assertEqual(np.mean(base_numpy), np.mean(reloaded_so.mynumpy)) - - def test_numpy_reloading(self): - sizea, sizeb = (1000, 1000) - no = TestStorageObjNumpy("my_app.numpy_test_%d_%d" % (sizea, sizeb)) - a = np.ones((sizea, sizeb)) - no.mynumpy = a - del no - import gc - gc.collect() - no = TestStorageObjNumpy("my_app.numpy_test_%d_%d" % (sizea, sizeb)) - a = no.mynumpy - self.assertEqual(np.shape(a), (sizea, sizeb)) - self.assertEqual(np.sum(a), sizea * sizeb) - - def test_numpy_reloading_internals(self): - sizea, sizeb = (1000, 1000) - no = TestStorageObjNumpy("my_app.numpy_test_%d_%d" % (sizea, sizeb)) - a = np.ones((sizea, sizeb)) - no.mynumpy = a - initial_name_so = no._ksp + '.' + no._table - initial_name_np = no.mynumpy._ksp + '.' + no.mynumpy._table - del no - import gc - gc.collect() - no = TestStorageObjNumpy("my_app.numpy_test_%d_%d" % (sizea, sizeb)) - a = no.mynumpy - - final_name_so = no._ksp + '.' + no._table - final_name_np = no.mynumpy._ksp + '.' + no.mynumpy._table + '_numpies' - self.assertEqual(initial_name_so, final_name_so) - self.assertEqual(initial_name_np, final_name_np) - - def test_storagedict_assign(self): - config.session.execute("DROP TABLE IF EXISTS my_app.t2_1") - config.session.execute("DROP TABLE IF EXISTS my_app.t2_1_test") - config.session.execute("DROP TABLE IF EXISTS my_app.t2_1_test_0") - config.session.execute("DROP TABLE IF EXISTS my_app.t2_1_test_1") - config.session.execute("DROP TABLE IF EXISTS my_app.t2_1_test_2") - so = TestStorageObj("t2_1") - self.assertEquals('t2_1_test', so.test._table) - so.test = {} - self.assertEquals('t2_1_test_0', so.test._table) - so.test = {1: 'a', 2: 'b'} - self.assertEquals('t2_1_test_1', so.test._table) - so.test = {3: 'c', 4: 'd'} - self.assertEquals('t2_1_test_2', so.test._table) - - def test_storageobj_coherence_basic(self): - ''' - test that two StorageObjs pointing to the same table work correctly. - Changing data on one StorageObj is reflected on the other StorageObj. - ''' - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - so = Test2StorageObj('test') - so.name = 'Oliver' - so.age = 21 - so2 = Test2StorageObj('test') - self.assertEqual(so.name, so2.name) - self.assertEqual(so.age, so2.age) - so.name = 'Benji' - so2 = Test2StorageObj('test') - self.assertEqual(so.name, so2.name) - self.assertEqual(so.age, so2.age) - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - - def test_storageobj_coherence_complex1(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj_test") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj") - so = Test3StorageObj('test') - myso_attr = Test2StorageObj() - myso_attr.name = 'Oliver' - myso_attr.age = 21 - so.myso = myso_attr # creates my_app.test_myso_0, the original attribute pointed to test_myso - self.assertEqual(myso_attr.name, so.myso.name) - del myso_attr - self.assertEqual(so.myso.age, 21) - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj_test") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj") - - def test_storageobj_coherence_complex2(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj_test") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj") - so = Test3StorageObj('test') - myso_attr = Test2StorageObj() - myso_attr.name = 'Oliver' - myso_attr.age = 21 - so.myso = myso_attr # creates my_app.test_myso_0, the original attribute pointed to test_myso - # now my_attr is persistent too, because it has been asigned to a persistent object - # Python behaviour, now the attribute points to the object, no copy made - self.assertTrue(so.myso is myso_attr) - # any change on the nested attribute should change the original and backwards - attr_value = 123 - myso_attr.some_attribute = attr_value - myso_attr.name = 'Benji' - self.assertTrue(hasattr(so.myso, 'some_attribute')) - self.assertEqual(so.myso.some_attribute, attr_value) - self.assertEqual(so.myso.name, 'Benji') - - # now we unreference the top persistent object called so which was made persistent as 'test' - del so - - # The object pointed by 'so.myso' should still exist because we still have one reference called 'myso_attr' - - self.assertTrue(myso_attr is not None) - self.assertTrue(isinstance(myso_attr, Test2StorageObj)) - self.assertEqual(myso_attr.name, 'Benji') - config.session.execute("DROP TABLE IF EXISTS my_app.Test3StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj_test") - config.session.execute("DROP TABLE IF EXISTS my_app.teststorageobj") - - def test_get_attr_1(self): - storage_obj = TestAttributes() - storage_obj.do_nothing_at_all() - value = 123 - storage_obj.setvalue(value) - returned = storage_obj.getvalue() - self.assertEqual(value, returned) - - def test_get_attr_2(self): - config.session.execute("DROP TABLE IF EXISTS my_app.TestAttributes") - storage_obj = TestAttributes() - storage_obj.do_nothing_at_all() - value = 123 - storage_obj.setvalue(value) - storage_obj.make_persistent("test_attr") - # check that the in memory attribute is kept - returned = storage_obj.getvalue() - self.assertEqual(value, returned) - # check that the method added by inheritance is correctly called - storage_obj.do_nothing_at_all() - - def method_nonexistent(): - storage_obj.i_dont_exist() - - # check that an attribute method which doesn't exist is detected - self.assertRaises(AttributeError, method_nonexistent) - - # check for private methods too (starting with underscore) - def method_nonexistent_pvt(): - storage_obj._pvt_dont_exist() - - self.assertRaises(AttributeError, method_nonexistent_pvt) - - config.session.execute("DROP TABLE IF EXISTS my_app.TestAttributes") - - def test_get_attr_3(self): - # the same as test_get_attr_2 but the object is persistent since the beginning - - config.session.execute("DROP TABLE IF EXISTS my_app.TestAttributes") - storage_obj = TestAttributes("test_attr") - storage_obj.do_nothing_at_all() - value = 123 - storage_obj.setvalue(value) - # check that the in memory attribute is kept - returned = storage_obj.getvalue() - self.assertEqual(value, returned) - # check that the method added by inheritance is correctly called - storage_obj.do_nothing_at_all() - - def method_nonexistent(): - storage_obj.i_dont_exist() - - # check that an attribute method which doesn't exist is detected - self.assertRaises(AttributeError, method_nonexistent) - - # check for private methods too (starting with underscore) - def method_nonexistent_pvt(): - storage_obj._pvt_dont_exist() - - self.assertRaises(AttributeError, method_nonexistent_pvt) - - storage_obj.key = 123 - returned = storage_obj.key - self.assertEqual(storage_obj.key, returned) - - config.session.execute("DROP TABLE IF EXISTS my_app.TestAttributes") - - def test_recreation_init(self): - """ - New StorageObj - Persistent attributes - Made persistent on the constructor. - """ - sobj_name = "my_app.test_attr6" - config.session.execute("DROP TABLE IF EXISTS {}".format(sobj_name)) - attr1 = 'Test1' - attr2 = 23 - storage_obj = Test2StorageObj(sobj_name) - storage_obj.name = attr1 - storage_obj.age = attr2 - uuid_sobj = storage_obj.storage_id - - storage_obj = None - result_set = iter(config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(uuid_sobj))) - - try: - result = result_set.next() - except StopIteration as ex: - self.fail("StorageObj istorage data was not saved") - - self.assertEqual(result.name, sobj_name) - - storage_obj = Test2StorageObj(sobj_name) - - self.assertEqual(storage_obj.name, attr1) - self.assertEqual(storage_obj.age, attr2) - - def test_recreation_init2(self): - """ - New StorageObj - Has persistent and volatile attributes - Made persistent on the constructor. - """ - sobj_name = "my_app.test_attr" - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - attr1 = 'Test1' - attr2 = 23 - storage_obj = Test2StorageObj(sobj_name) - storage_obj.name = attr1 - storage_obj.nonpersistent = attr2 - uuid_sobj = storage_obj.storage_id - - storage_obj = None - result_set = iter(config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(uuid_sobj))) - - try: - result = result_set.next() - except StopIteration as ex: - self.fail("StorageObj istorage data was not saved") - - self.assertEqual(result.name, sobj_name) - - storage_obj = Test2StorageObj(sobj_name) - - self.assertEqual(storage_obj.name, attr1) - - with self.assertRaises(AttributeError): - attr = storage_obj.age - - with self.assertRaises(AttributeError): - attr = storage_obj.nonpersistent - - def test_recreation_make_pers(self): - """ - New StorageObj - Persistent attributes - Made persistent with make_persistent. - """ - sobj_name = "my_app.test_attr" - config.session.execute("DROP TABLE IF EXISTS {}".format(sobj_name)) - attr1 = 'Test1' - attr2 = 23 - storage_obj = Test2StorageObj() - storage_obj.make_persistent(sobj_name) - uuid_sobj = storage_obj.storage_id - - storage_obj = None - result_set = iter(config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(uuid_sobj))) - - try: - result = result_set.next() - except StopIteration as ex: - self.fail("StorageObj istorage data was not saved") - - self.assertEqual(result.name, sobj_name) - - storage_obj = Test2StorageObj() - - storage_obj.name = attr1 - storage_obj.volatile = attr2 - - storage_obj.make_persistent(sobj_name) - - self.assertEqual(storage_obj.name, attr1) - self.assertEqual(storage_obj.volatile, attr2) - - with self.assertRaises(AttributeError): - attr = storage_obj.age - - def test_recreation_make_pers2(self): - """ - New StorageObj - Persistent attributes - Made persistent with make_persistent. - """ - sobj_name = "my_app.test_attr" - config.session.execute("DROP TABLE IF EXISTS {}".format(sobj_name)) - attr1 = 'Test1' - attr2 = 23 - storage_obj = Test2StorageObj() - storage_obj.name = attr1 - storage_obj.volatile = 'Ofcourse' - storage_obj.make_persistent(sobj_name) - uuid_sobj = storage_obj.storage_id - - storage_obj = None - result_set = iter(config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(uuid_sobj))) - - try: - result = result_set.next() - except StopIteration as ex: - self.fail("StorageObj istorage data was not saved") - - self.assertEqual(result.name, sobj_name) - - storage_obj = Test2StorageObj() - storage_obj.age = attr2 - storage_obj.make_persistent(sobj_name) - - self.assertEqual(storage_obj.name, attr1) - self.assertEqual(storage_obj.age, attr2) - - with self.assertRaises(AttributeError): - attr = storage_obj.volatile - - def test_nested_recreation(self): - sobj_name = "my_app.test_attr" - config.session.execute("DROP TABLE IF EXISTS {}".format("my_app.test2storageobj")) - config.session.execute("DROP TABLE IF EXISTS {}".format("my_app.test4storageobj")) - - storage_obj = Test2StorageObj() - name_attr = 'Test1' - age_attr = 23 - storage_obj.name = name_attr - storage_obj.age = age_attr - - external_sobj = Test4StorageObj(sobj_name) - external_sobj.myotherso = storage_obj - - uuid_sobj_internal = storage_obj.storage_id - uuid_sobj_external = external_sobj.storage_id - - internal_name = external_sobj.myotherso._get_name() - storage_obj = None - external_sobj = None - - # Check that they have been correctly stored into hecuba.istorage - - result_set = iter( - config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(uuid_sobj_external))) - - try: - result = result_set.next() - except StopIteration as exc: - self.fail("StorageObj istorage data was not saved") - - self.assertEqual(result.name, sobj_name) - - result_set = iter( - config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(uuid_sobj_internal))) - - try: - result = result_set.next() - except StopIteration as exc: - self.fail("StorageObj istorage data was not saved") - - self.assertEqual(result.name, internal_name) - - # They are both present in hecuba.istorage - - result_set = iter( - config.session.execute( - "SELECT * FROM {} WHERE storage_id={}".format("my_app.Test4StorageObj", uuid_sobj_external))) - - try: - result = result_set.next() - except StopIteration as exc: - self.fail("StorageObj istorage data was not saved") - - self.assertEqual(result.myotherso, uuid_sobj_internal) - # They have been saved with the expected istorage ids - - external_sobj = Test4StorageObj(sobj_name) - # Check internal configuration is correct - self.assertEqual(external_sobj.storage_id, uuid_sobj_external) - self.assertEqual(external_sobj.myotherso.storage_id, uuid_sobj_internal) - self.assertEqual(external_sobj._get_name(), sobj_name) - self.assertEqual(external_sobj.myotherso._get_name(), internal_name) - - # Check data is correct - self.assertEqual(external_sobj.myotherso.name, name_attr) - self.assertEqual(external_sobj.myotherso.age, age_attr) - - def test_single_table(self): - config.session.execute("DROP TABLE IF EXISTS hecuba.Test2StorageObj") - my_obj1 = Test2StorageObj("my_app.my_obj1") - my_obj2 = Test2StorageObj("my_app.my_obj2") - my_obj1.name, my_obj2.name = "Adrian", "Adri" - my_obj1.age, my_obj2.age = 21, 23 - self.assertEqual(my_obj1._ksp, my_obj2._ksp) - self.assertEqual(my_obj1._table, my_obj2._table) - - res = config.session.execute("SELECT * FROM my_app.Test2StorageObj WHERE storage_id = %s" % my_obj1.storage_id) - res2 = config.session.execute( - "SELECT * FROM my_app.Test2StorageObj WHERE storage_id = %s" % my_obj2.storage_id) - self.assertEqual(res.one().name, "Adrian") - self.assertEqual(res2.one().name, "Adri") - self.assertEqual(res.one().age, 21) - self.assertEqual(res2.one().age, 23) - - def test_dict_single_table(self): - config.session.execute("DROP TABLE IF EXISTS my_app.Test2StorageObj") - config.session.execute("DROP TABLE IF EXISTS my_app.my_dict") - my_dict = Test5StorageObj("my_app.my_dict4") - for i in range(0, 20): - aux = Test2StorageObj("my_app.my_obj" + str(i)) - aux.name, aux.age = "RandomName" + str(i), 18 + i - my_dict.test2[i] = aux - - for i in range(0, 20): - self.assertEqual(my_dict.test2[i]._ksp, "my_app") - self.assertEqual(my_dict.test2[i]._table, "Test2StorageObj".lower()) - res = config.session.execute( - "SELECT * FROM my_app.Test2StorageObj WHERE storage_id = %s" % my_dict.test2[i].storage_id) - self.assertEqual(res.one().name, "RandomName" + str(i)) - self.assertEqual(res.one().age, 18 + i) - - -if __name__ == '__main__': - unittest.main() diff --git a/hecuba_py/tests/withcassandra/test2storageobj.py b/hecuba_py/tests/withcassandra/test2storageobj.py deleted file mode 100644 index 53df1232..00000000 --- a/hecuba_py/tests/withcassandra/test2storageobj.py +++ /dev/null @@ -1,9 +0,0 @@ -from hecuba.storageobj import StorageObj - - -class Test2StorageObj(StorageObj): - ''' - @ClassField name str - @ClassField age int - ''' - pass diff --git a/hecuba_py/tests/withcassandra/tutorial_tests.py b/hecuba_py/tests/withcassandra/tutorial_tests.py deleted file mode 100644 index 08aa67c9..00000000 --- a/hecuba_py/tests/withcassandra/tutorial_tests.py +++ /dev/null @@ -1,157 +0,0 @@ -import unittest -from hecuba import config -from hecuba.hdict import StorageDict -from hecuba.storageobj import StorageObj - - -class ExampleStoragedictClass(StorageDict): - ''' - @TypeSpec dict<, val1:str> - ''' - - -class ExampleStoragedictClassInit(StorageDict): - ''' - @TypeSpec dict<, val1:str> - ''' - - def __init__(self, **kwargs): - super(ExampleStoragedictClassInit, self).__init__(**kwargs) - self.update({0: 'first position'}) - - -class ExampleStoragedictClassInitMultiVal(StorageDict): - ''' - @TypeSpec dict<, val1:str, val2:str, val3:int> - ''' - - def __init__(self, **kwargs): - super(ExampleStoragedictClassInitMultiVal, self).__init__(**kwargs) - self.update({(0, 1): ['first position', 'second_position', 1000]}) - - -class ExampleStoragedictClassNames(StorageDict): - ''' - @TypeSpec dict<, value:str> - ''' - - -class ExampleStoragedictClassInitNames(StorageDict): - ''' - @TypeSpec dict<, value:str> - ''' - - def __init__(self, **kwargs): - super(ExampleStoragedictClassInitNames, self).__init__(**kwargs) - self.update({0: 'first position'}) - - -class ExampleStoragedictClassInitMultiValNames(StorageDict): - ''' - @TypeSpec dict<, value1:str, value2:str, value3:int> - ''' - - def __init__(self, **kwargs): - super(ExampleStoragedictClassInitMultiValNames, self).__init__(**kwargs) - self.update({(0, 1): ['first position', 'second_position', 1000]}) - - -class ExampleStorageObjClass(StorageObj): - ''' - @ClassField my_dict dict<, val1:str> - @ClassField my_release int - @ClassField my_version str - ''' - - -class ExampleStorageObjClassInit(StorageObj): - ''' - @ClassField my_dict dict<, val1:str> - @ClassField my_release int - @ClassField my_version str - ''' - - def __init__(self, **kwargs): - super(ExampleStorageObjClassInit, self).__init__(**kwargs) - self.my_dict = {0: 'first position'} - self.my_release = 2017 - self.my_version = '0.1' - - -class ExampleStorageObjClassNames(StorageObj): - ''' - @ClassField my_dict dict<, val1:str> - @ClassField my_release int - @ClassField my_version str - ''' - - -class TutorialTest(unittest.TestCase): - - def test_init_storagedict_test(self): - tablename = 'examplestoragedictclass1' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - my_example_class = ExampleStoragedictClass() - my_example_class.make_persistent(tablename) - - def test_init_storagedictwithinit_test(self): - tablename = 'examplestoragedictclass1' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - my_example_class = ExampleStoragedictClassInit() - StorageDict.__init__(my_example_class) - my_example_class.make_persistent(tablename) - - def test_init_storagedictwithinitmultival_test(self): - tablename = 'examplestoragedictclass1' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - my_example_class = ExampleStoragedictClassInitMultiVal() - StorageDict.__init__(my_example_class) - my_example_class.make_persistent(tablename) - - def test_init_storagedictnames_test(self): - tablename = 'examplestoragedictclass1' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - my_example_class = ExampleStoragedictClassNames() - my_example_class.make_persistent(tablename) - - def test_init_storagedictwithinitnames_test(self): - tablename = 'examplestoragedictclass1' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - my_example_class = ExampleStoragedictClassInitNames() - StorageDict.__init__(my_example_class) - my_example_class.make_persistent(tablename) - - def test_init_storagedictwithinitmultivalnames_test(self): - tablename = 'examplestoragedictclass1' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - my_example_class = ExampleStoragedictClassInitMultiValNames() - StorageDict.__init__(my_example_class) - my_example_class.make_persistent(tablename) - - def test_init_storageobj_test(self): - tablename = 'examplestorageobjclass1' - config.session.execute("DROP TABLE IF EXISTS my_app.ExampleStorageObjClass") - config.session.execute("DROP TABLE IF EXISTS my_app.ExampleStorageObjClass" + '_my_dict') - my_example_class = ExampleStorageObjClass() - my_example_class.make_persistent(tablename) - - def test_init_storageobjwithinit_test(self): - tablename = 'examplestorageobjclass1' - config.session.execute("DROP TABLE IF EXISTS my_app.ExampleStorageObjClassInit") - config.session.execute("DROP TABLE IF EXISTS my_app.ExampleStorageObjClassInit" + '_my_dict') - my_example_class = ExampleStorageObjClassInit() - StorageObj.__init__(my_example_class) - my_example_class.make_persistent(tablename) - - def test_init_storageobjnames_test(self): - tablename = 'test2.examplestorageobjclass1' - config.session.execute("DROP TABLE IF EXISTS my_app.ExampleStorageObjClassNames") - config.session.execute("DROP TABLE IF EXISTS my_app.ExampleStorageObjClassNames" + '_my_dict') - my_example_class = ExampleStorageObjClassNames() - my_example_class.make_persistent(tablename) - - def test_initializestoragedict_test(self): - tablename = 'examplestorageobjclass1' - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename) - config.session.execute("DROP TABLE IF EXISTS my_app." + tablename + '_my_dict') - my_persistent_storageDict = StorageDict(tablename, [('position', 'int')], [('value', 'text')]) diff --git a/out.txt b/out.txt new file mode 100644 index 00000000..065e8211 --- /dev/null +++ b/out.txt @@ -0,0 +1,10623 @@ +==18661== Memcheck, a memory error detector +==18661== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==18661== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info +==18661== Command: python3 /home/ismael/hecuba/hecuba_py/hecuba/SO_tests.py +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x56A122: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x52812F: PyUnicode_InternFromString (in /usr/bin/python3.6) +==18661== by 0x549206: ??? (in /usr/bin/python3.6) +==18661== by 0x554930: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x637B53: ??? (in /usr/bin/python3.6) +==18661== by 0x638CD9: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x56A13A: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x52812F: PyUnicode_InternFromString (in /usr/bin/python3.6) +==18661== by 0x549206: ??? (in /usr/bin/python3.6) +==18661== by 0x554930: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x637B53: ??? (in /usr/bin/python3.6) +==18661== by 0x638CD9: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x56A122: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x553D9A: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x637B53: ??? (in /usr/bin/python3.6) +==18661== by 0x638CD9: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x56A13A: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x553D9A: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x637B53: ??? (in /usr/bin/python3.6) +==18661== by 0x638CD9: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x5538B3: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6045020 is 304 bytes inside a block of size 2,208 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x553D9A: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x52812F: PyUnicode_InternFromString (in /usr/bin/python3.6) +==18661== by 0x549206: ??? (in /usr/bin/python3.6) +==18661== by 0x554930: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4C2: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6048020 is 688 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4B0: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4B0: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4D4: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6049020 is 688 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4C2: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4C2: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4F8: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x604a020 is 688 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4D4: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4D4: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x553DC6: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D4F8: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x604b020 is 32 bytes before a block of size 1,120 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x553E36: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D50A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x604c020 is 32 bytes before a block of size 576 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x553E9A: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D51C: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x604d020 is 32 bytes before a block of size 576 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x553D9A: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D51C: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6045020 is 304 bytes inside a block of size 2,208 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x553D9A: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x52812F: PyUnicode_InternFromString (in /usr/bin/python3.6) +==18661== by 0x549206: ??? (in /usr/bin/python3.6) +==18661== by 0x554930: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D47A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x554245: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D5BE: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6051020 is 336 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x554245: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D59A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D59A: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D684: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6055020 is 0 bytes after a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D672: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D672: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x553141: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D726: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6057020 is 384 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x5538B3: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D6CC: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5528E9: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x61D6CC: _Py_ReadyTypes (in /usr/bin/python3.6) +==18661== by 0x638D02: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x566A26: PyModule_Create2 (in /usr/bin/python3.6) +==18661== by 0x600288: _PyBuiltin_Init (in /usr/bin/python3.6) +==18661== by 0x638D4D: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x604d020 is 32 bytes before a block of size 576 in arena "client" +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4FCBE77: __wcsnlen_avx2 (strlen-avx2.S:261) +==18661== by 0x4EF9EC1: wcsrtombs (wcsrtombs.c:104) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x5AD6DF: ??? (in /usr/bin/python3.6) +==18661== by 0x6333FC: ??? (in /usr/bin/python3.6) +==18661== by 0x4AE069: ??? (in /usr/bin/python3.6) +==18661== by 0x63695F: Py_GetProgramFullPath (in /usr/bin/python3.6) +==18661== by 0x636C15: _PySys_Init (in /usr/bin/python3.6) +==18661== by 0x638D8C: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x6333E0: Py_EncodeLocale (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4E63408: internal_utf8_loop (loop.c:298) +==18661== by 0x4E63408: __gconv_transform_internal_utf8 (skeleton.c:609) +==18661== by 0x4EF9EF4: wcsrtombs (wcsrtombs.c:110) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x5AD6DF: ??? (in /usr/bin/python3.6) +==18661== by 0x6333FC: ??? (in /usr/bin/python3.6) +==18661== by 0x4AE069: ??? (in /usr/bin/python3.6) +==18661== by 0x63695F: Py_GetProgramFullPath (in /usr/bin/python3.6) +==18661== by 0x636C15: _PySys_Init (in /usr/bin/python3.6) +==18661== by 0x638D8C: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x6333E0: Py_EncodeLocale (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4E63411: internal_utf8_loop (loop.c:303) +==18661== by 0x4E63411: __gconv_transform_internal_utf8 (skeleton.c:609) +==18661== by 0x4EF9EF4: wcsrtombs (wcsrtombs.c:110) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x5AD6DF: ??? (in /usr/bin/python3.6) +==18661== by 0x6333FC: ??? (in /usr/bin/python3.6) +==18661== by 0x4AE069: ??? (in /usr/bin/python3.6) +==18661== by 0x63695F: Py_GetProgramFullPath (in /usr/bin/python3.6) +==18661== by 0x636C15: _PySys_Init (in /usr/bin/python3.6) +==18661== by 0x638D8C: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x6333E0: Py_EncodeLocale (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4E63458: internal_utf8_loop (loop.c:298) +==18661== by 0x4E63458: __gconv_transform_internal_utf8 (skeleton.c:609) +==18661== by 0x4EF9EF4: wcsrtombs (wcsrtombs.c:110) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x5AD6DF: ??? (in /usr/bin/python3.6) +==18661== by 0x6333FC: ??? (in /usr/bin/python3.6) +==18661== by 0x4AE069: ??? (in /usr/bin/python3.6) +==18661== by 0x63695F: Py_GetProgramFullPath (in /usr/bin/python3.6) +==18661== by 0x636C15: _PySys_Init (in /usr/bin/python3.6) +==18661== by 0x638D8C: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x6333E0: Py_EncodeLocale (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4FCBCEC: __wcsnlen_avx2 (strlen-avx2.S:103) +==18661== by 0x4EF9EC1: wcsrtombs (wcsrtombs.c:104) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x5AD6DF: ??? (in /usr/bin/python3.6) +==18661== by 0x6335BD: _Py_wreadlink (in /usr/bin/python3.6) +==18661== by 0x636394: ??? (in /usr/bin/python3.6) +==18661== by 0x63695F: Py_GetProgramFullPath (in /usr/bin/python3.6) +==18661== by 0x636C15: _PySys_Init (in /usr/bin/python3.6) +==18661== by 0x638D8C: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x633310: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4697: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== Address 0x6068020 is 0 bytes after a block of size 704 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== by 0x638E51: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F471F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== by 0x638E51: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== Address 0x6068020 is 0 bytes after a block of size 704 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== by 0x638E51: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== Address 0x6068020 is 0 bytes after a block of size 704 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== by 0x638E51: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50B3A2: PyEval_EvalCode (in /usr/bin/python3.6) +==18661== by 0x5FAB95: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB12E: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== by 0x638E51: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6074020 is 16 bytes before a block of size 928 alloc'd +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x551C4B: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x558330: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50B3A2: PyEval_EvalCode (in /usr/bin/python3.6) +==18661== by 0x5FAB95: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB12E: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46FF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Address 0x607d020 is 816 bytes inside a block of size 1,184 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F464F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== Address 0x607d020 is 816 bytes inside a block of size 1,184 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4697: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Address 0x607d020 is 816 bytes inside a block of size 1,184 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB094: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x607e020 is 528 bytes inside a block of size 1,864 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4697: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F464F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB6AB: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x558F3D: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6085020 is 208 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x558F3D: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x571E42: ??? (in /usr/bin/python3.6) +==18661== by 0x572080: PyDict_Copy (in /usr/bin/python3.6) +==18661== by 0x558EB8: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x515CBE: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6085020 is 208 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x558F3D: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x571E42: ??? (in /usr/bin/python3.6) +==18661== by 0x572080: PyDict_Copy (in /usr/bin/python3.6) +==18661== by 0x558EB8: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5908BD: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5908D2: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x59C6D7: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x591068: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x59C6EF: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x591068: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4F1889: PyModule_AddIntConstant (in /usr/bin/python3.6) +==18661== by 0x5CFCB8: PyInit_posix (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x608e020 is 2,064 bytes inside a block of size 2,208 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x55FCA2: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x566A42: PyModule_Create2 (in /usr/bin/python3.6) +==18661== by 0x5CFA26: PyInit_posix (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x55FCA2: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x566A42: PyModule_Create2 (in /usr/bin/python3.6) +==18661== by 0x5CFA26: PyInit_posix (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4C5518: ??? (in /usr/bin/python3.6) +==18661== by 0x5D05D3: PyInit_posix (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6094020 is 32 bytes before a block of size 576 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4C54E3: ??? (in /usr/bin/python3.6) +==18661== by 0x5D05D3: PyInit_posix (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6094020 is 32 bytes before a block of size 576 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x571506: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4C54E3: ??? (in /usr/bin/python3.6) +==18661== by 0x5D05D3: PyInit_posix (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6069020 is 432 bytes inside a block of size 1,184 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F471F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x5FB07F: PyMarshal_ReadObjectFromString (in /usr/bin/python3.6) +==18661== by 0x5FB0F0: PyImport_ImportFrozenModuleObject (in /usr/bin/python3.6) +==18661== by 0x5FB19D: PyImport_ImportFrozenModule (in /usr/bin/python3.6) +==18661== by 0x638B26: ??? (in /usr/bin/python3.6) +==18661== by 0x638E51: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4FCBCEC: __wcsnlen_avx2 (strlen-avx2.S:103) +==18661== by 0x4EF9EC1: wcsrtombs (wcsrtombs.c:104) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x54744F: ??? (in /usr/bin/python3.6) +==18661== by 0x6332BD: _Py_stat (in /usr/bin/python3.6) +==18661== by 0x5BA510: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x547640: PyUnicode_EncodeFSDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4E63408: internal_utf8_loop (loop.c:298) +==18661== by 0x4E63408: __gconv_transform_internal_utf8 (skeleton.c:609) +==18661== by 0x4EF9EF4: wcsrtombs (wcsrtombs.c:110) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x54744F: ??? (in /usr/bin/python3.6) +==18661== by 0x6332BD: _Py_stat (in /usr/bin/python3.6) +==18661== by 0x5BA510: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x547640: PyUnicode_EncodeFSDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4E63411: internal_utf8_loop (loop.c:303) +==18661== by 0x4E63411: __gconv_transform_internal_utf8 (skeleton.c:609) +==18661== by 0x4EF9EF4: wcsrtombs (wcsrtombs.c:110) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x54744F: ??? (in /usr/bin/python3.6) +==18661== by 0x6332BD: _Py_stat (in /usr/bin/python3.6) +==18661== by 0x5BA510: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x547640: PyUnicode_EncodeFSDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4E63458: internal_utf8_loop (loop.c:298) +==18661== by 0x4E63458: __gconv_transform_internal_utf8 (skeleton.c:609) +==18661== by 0x4EF9EF4: wcsrtombs (wcsrtombs.c:110) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x54744F: ??? (in /usr/bin/python3.6) +==18661== by 0x6332BD: _Py_stat (in /usr/bin/python3.6) +==18661== by 0x5BA510: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x547640: PyUnicode_EncodeFSDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4FCBE77: __wcsnlen_avx2 (strlen-avx2.S:261) +==18661== by 0x4EF9EC1: wcsrtombs (wcsrtombs.c:104) +==18661== by 0x4E7FB20: wcstombs (wcstombs.c:34) +==18661== by 0x54744F: ??? (in /usr/bin/python3.6) +==18661== by 0x547730: PyUnicode_FSConverter (in /usr/bin/python3.6) +==18661== by 0x4C4EC6: ??? (in /usr/bin/python3.6) +==18661== by 0x4F81E8: ??? (in /usr/bin/python3.6) +==18661== by 0x4FBC03: ??? (in /usr/bin/python3.6) +==18661== by 0x4FC794: _PyArg_ParseStack_SizeT (in /usr/bin/python3.6) +==18661== by 0x4C65C8: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a stack allocation +==18661== at 0x547380: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5D2A1A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x60b9020 is 4 bytes after a block of size 60 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x54701E: ??? (in /usr/bin/python3.6) +==18661== by 0x5D2860: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x546DF7: ??? (in /usr/bin/python3.6) +==18661== by 0x5D2860: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x55E9B6: ??? (in /usr/bin/python3.6) +==18661== by 0x561C18: ??? (in /usr/bin/python3.6) +==18661== by 0x562418: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x60bf020 is 32 bytes before a block of size 48 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x60bf020 is 32 bytes before a block of size 48 in arena "client" +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CA893: ??? (in /usr/bin/python3.6) +==18661== by 0x4CB996: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CA893: ??? (in /usr/bin/python3.6) +==18661== by 0x4CB996: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x60c4020 is 3,808 bytes inside a block of size 3,964 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CA893: ??? (in /usr/bin/python3.6) +==18661== by 0x4CB996: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x4CA843: ??? (in /usr/bin/python3.6) +==18661== by 0x4CB996: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F4D57: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x60e2020 is 400 bytes inside a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4697: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x60e3020 is 368 bytes inside a block of size 1,184 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F464F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F4D57: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5908B3: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x60e0020 is 33,680 bytes inside a block of size 33,921 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x591068: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x60e0020 is 33,680 bytes inside a block of size 33,921 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x590F44: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x60e5020 is 304 bytes inside a block of size 528 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59107A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x550BF0: PyTuple_New (in /usr/bin/python3.6) +==18661== by 0x4F4625: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53FF: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6103020 is 0 bytes after a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x6108020 is 2,656 bytes inside a block of size 3,240 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x54EF03: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6103020 is 0 bytes after a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x590E21: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x6109020 is 3,440 bytes inside a block of size 3,696 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CA893: ??? (in /usr/bin/python3.6) +==18661== by 0x4CB996: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x611f020 is 16 bytes before a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x591068: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6125020 is 5,856 bytes inside a block of size 7,849 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x56A122: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x56A13A: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x59C6D7: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x590F44: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x59C6EF: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x590F44: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AB188: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AB1A0: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4F17BF: PyModule_AddIntConstant (in /usr/bin/python3.6) +==18661== by 0x4E43A6: PyInit__locale (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x612e020 is 912 bytes inside a block of size 1,001 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x4CBCB7: ??? (in /usr/bin/python3.6) +==18661== by 0x5D8D99: PyInit_errno (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x615f020 is 288 bytes inside a block of size 2,208 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x4CBCA9: ??? (in /usr/bin/python3.6) +==18661== by 0x5D8D1B: PyInit_errno (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x4CBCA9: ??? (in /usr/bin/python3.6) +==18661== by 0x5D8994: PyInit_errno (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x56A122: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4F1889: PyModule_AddIntConstant (in /usr/bin/python3.6) +==18661== by 0x5E2D2B: PyInit__stat (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x56A13A: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4F1889: PyModule_AddIntConstant (in /usr/bin/python3.6) +==18661== by 0x5E2D2B: PyInit__stat (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x56A122: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4F17BF: PyModule_AddIntConstant (in /usr/bin/python3.6) +==18661== by 0x5E2F44: PyInit__stat (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x56A13A: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x4F17BF: PyModule_AddIntConstant (in /usr/bin/python3.6) +==18661== by 0x5E2F44: PyInit__stat (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50FFB4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x6168020 is 368 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x59107A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x6166020 is 1,568 bytes inside a block of size 3,872 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x57118E: PyDict_SetDefault (in /usr/bin/python3.6) +==18661== by 0x528059: PyUnicode_InternInPlace (in /usr/bin/python3.6) +==18661== by 0x4F45A5: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x6095020 is 32 bytes before a block of size 73,760 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x615d020 is 1,552 bytes inside a block of size 2,832 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53FF: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x50D3AF: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Address 0x61a6020 is 800 bytes inside a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x50D3AF: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x50D3AF: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x50AAB7: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x61a7020 is 208 bytes inside a block of size 1,608 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x50D3AF: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x50D3AF: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F4D57: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x61bf020 is 576 bytes inside a block of size 704 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F471F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x590F44: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6140020 is 832 bytes inside a block of size 1,608 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46FF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46DF: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x61e5020 is 448 bytes inside a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F464F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x50CFD7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6205020 is 208 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x50CFD7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x50CFD7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6209020 is 8,432 bytes inside a block of size 9,248 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x50CFD7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x50CFD7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5D2A24: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4F1B9B5: __alloc_dir (opendir.c:216) +==18661== by 0x4F1B9B5: opendir_tail (opendir.c:136) +==18661== by 0x4F1B9B5: opendir (opendir.c:190) +==18661== by 0x5D26F1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5D2A3C: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4F1B9B5: __alloc_dir (opendir.c:216) +==18661== by 0x4F1B9B5: opendir_tail (opendir.c:136) +==18661== by 0x4F1B9B5: opendir (opendir.c:190) +==18661== by 0x5D26F1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5D2A1A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x621f020 is 512 bytes inside a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5D2D22: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5D2DC9: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x5105B7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x621f020 is 512 bytes inside a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5D2D22: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5D2DC9: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5BD63C: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6222020 is 4,352 bytes inside a block of size 8,225 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x5DCEE7: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5DD8A4: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A684D: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5BC215: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== Address 0x621f020 is 512 bytes inside a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5D2D22: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5D2DC9: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x6230020 is 7,104 bytes inside a block of size 8,225 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x5DCEE7: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x62FD50: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FC0A: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x62FD50: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FC0A: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4B1BB3: ??? (in /usr/bin/python3.6) +==18661== by 0x59E440: PyGrammar_AddAccelerators (in /usr/bin/python3.6) +==18661== by 0x5A98CE: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FC0A: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x4B1BCB: ??? (in /usr/bin/python3.6) +==18661== by 0x59E440: PyGrammar_AddAccelerators (in /usr/bin/python3.6) +==18661== by 0x5A98CE: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FC0A: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x59E440: PyGrammar_AddAccelerators (in /usr/bin/python3.6) +==18661== by 0x5A98CE: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x6239020 is 320 bytes inside a block of size 704 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59E440: PyGrammar_AddAccelerators (in /usr/bin/python3.6) +==18661== by 0x5A98CE: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x59DF12: PyGrammar_AddAccelerators (in /usr/bin/python3.6) +==18661== by 0x5A98CE: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== +==18661== More than 100 errors detected. Subsequent errors +==18661== will still be recorded, but in less detail than before. +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5A9523: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x6291020 is 560 bytes inside a block of size 704 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59E440: PyGrammar_AddAccelerators (in /usr/bin/python3.6) +==18661== by 0x5A98CE: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x59DF12: PyGrammar_AddAccelerators (in /usr/bin/python3.6) +==18661== by 0x5A98CE: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x59FBAD: PyTokenizer_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FC0A: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x59FBAD: PyTokenizer_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FC0A: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EF8A5: PyArena_New (in /usr/bin/python3.6) +==18661== by 0x635259: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EF8A5: PyArena_New (in /usr/bin/python3.6) +==18661== by 0x635259: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59D93C: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x59DA0B: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2246: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x629a020 is 35,216 bytes inside a block of size 36,032 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A9523: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x4FDE30: ??? (in /usr/bin/python3.6) +==18661== by 0x5029FF: ??? (in /usr/bin/python3.6) +==18661== by 0x5031C8: ??? (in /usr/bin/python3.6) +==18661== by 0x505FE7: ??? (in /usr/bin/python3.6) +==18661== by 0x5075EA: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x629a020 is 35,216 bytes inside a block of size 36,032 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A9523: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4EFEA9: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x5075FF: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EFA5E: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x5075FF: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4EFEA9: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x5075FF: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EFA5E: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x5075FF: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x506289: ??? (in /usr/bin/python3.6) +==18661== by 0x4FD175: ??? (in /usr/bin/python3.6) +==18661== by 0x50760A: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x629a020 is 35,216 bytes inside a block of size 36,032 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A9523: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x5A3BDE: ??? (in /usr/bin/python3.6) +==18661== by 0x5A4BD4: ??? (in /usr/bin/python3.6) +==18661== by 0x550BF0: PyTuple_New (in /usr/bin/python3.6) +==18661== by 0x4F4625: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== Address 0x62a4020 is 304 bytes inside a block of size 1,384 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53FF: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x5479AC: ??? (in /usr/bin/python3.6) +==18661== by 0x53E68A: PyUnicode_DecodeUTF8Stateful (in /usr/bin/python3.6) +==18661== by 0x4F4EC2: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6307020 is 1,392 bytes inside a block of size 4,768 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x52E2BD: _PyUnicodeWriter_PrepareInternal (in /usr/bin/python3.6) +==18661== by 0x52F35E: ??? (in /usr/bin/python3.6) +==18661== by 0x53E601: PyUnicode_DecodeUTF8Stateful (in /usr/bin/python3.6) +==18661== by 0x4F4EC2: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x53E1C7: PyUnicode_DecodeUTF8Stateful (in /usr/bin/python3.6) +==18661== by 0x4F4EC2: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x5687E8: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3BCD: ??? (in /usr/bin/python3.6) +==18661== by 0x551DD7: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x553D56: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x5D439B: PyInit_itertools (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x62f5020 is 704 bytes inside a block of size 1,008 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A3BDE: ??? (in /usr/bin/python3.6) +==18661== by 0x551DD7: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x553D56: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x5D439B: PyInit_itertools (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x551C4B: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x558330: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5908B3: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x62e2020 is 1,104 bytes inside a block of size 1,608 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F471F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5A9523: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5A9523: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x518164: ??? (in /usr/bin/python3.6) +==18661== by 0x51CA29: ??? (in /usr/bin/python3.6) +==18661== by 0x51E927: ??? (in /usr/bin/python3.6) +==18661== by 0x51CD70: ??? (in /usr/bin/python3.6) +==18661== by 0x519705: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x5192FF: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== Address 0x6347020 is 80 bytes inside a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x5171B6: ??? (in /usr/bin/python3.6) +==18661== by 0x51CCC3: ??? (in /usr/bin/python3.6) +==18661== by 0x51D50F: ??? (in /usr/bin/python3.6) +==18661== by 0x51E927: ??? (in /usr/bin/python3.6) +==18661== by 0x51CD70: ??? (in /usr/bin/python3.6) +==18661== by 0x519BE0: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x519817: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x5192FF: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x5171B6: ??? (in /usr/bin/python3.6) +==18661== by 0x51CCC3: ??? (in /usr/bin/python3.6) +==18661== by 0x519648: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x5192FF: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4B1BB3: ??? (in /usr/bin/python3.6) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x5B0EB1: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B1D72: PySymtable_BuildObject (in /usr/bin/python3.6) +==18661== by 0x507589: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4ED273: PyArena_Malloc (in /usr/bin/python3.6) +==18661== by 0x519B57: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x4B1BCB: ??? (in /usr/bin/python3.6) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x5B0EB1: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B1D72: PySymtable_BuildObject (in /usr/bin/python3.6) +==18661== by 0x507589: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4ED273: PyArena_Malloc (in /usr/bin/python3.6) +==18661== by 0x519B57: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4EFEA9: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x50556C: ??? (in /usr/bin/python3.6) +==18661== by 0x505FE7: ??? (in /usr/bin/python3.6) +==18661== by 0x5038D3: ??? (in /usr/bin/python3.6) +==18661== by 0x50600A: ??? (in /usr/bin/python3.6) +==18661== by 0x5075EA: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x634a020 is 48 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x5B0EB1: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B1D72: PySymtable_BuildObject (in /usr/bin/python3.6) +==18661== by 0x507589: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5B08D7: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B1D72: PySymtable_BuildObject (in /usr/bin/python3.6) +==18661== by 0x507589: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x506227: ??? (in /usr/bin/python3.6) +==18661== by 0x4FD175: ??? (in /usr/bin/python3.6) +==18661== by 0x50760A: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x634a020 is 48 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x5B0EB1: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B1D72: PySymtable_BuildObject (in /usr/bin/python3.6) +==18661== by 0x507589: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x5B08D7: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B1D72: PySymtable_BuildObject (in /usr/bin/python3.6) +==18661== by 0x507589: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4ECA27: PyArena_Free (in /usr/bin/python3.6) +==18661== by 0x6352F8: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Address 0x633a020 is 960 bytes inside a block of size 2,026 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x547884: ??? (in /usr/bin/python3.6) +==18661== by 0x52C2E7: _PyUnicodeWriter_Finish (in /usr/bin/python3.6) +==18661== by 0x52AFD4: ??? (in /usr/bin/python3.6) +==18661== by 0x52BBE5: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x547884: ??? (in /usr/bin/python3.6) +==18661== by 0x52E1F7: _PyUnicodeWriter_PrepareInternal (in /usr/bin/python3.6) +==18661== by 0x52B3C0: ??? (in /usr/bin/python3.6) +==18661== by 0x52BBE5: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4ECA38: PyArena_Free (in /usr/bin/python3.6) +==18661== by 0x6352F8: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Address 0x6347020 is 80 bytes inside a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x5171B6: ??? (in /usr/bin/python3.6) +==18661== by 0x51CCC3: ??? (in /usr/bin/python3.6) +==18661== by 0x51D50F: ??? (in /usr/bin/python3.6) +==18661== by 0x51E927: ??? (in /usr/bin/python3.6) +==18661== by 0x51CD70: ??? (in /usr/bin/python3.6) +==18661== by 0x519BE0: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x519817: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x5192FF: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x5171B6: ??? (in /usr/bin/python3.6) +==18661== by 0x51CCC3: ??? (in /usr/bin/python3.6) +==18661== by 0x519648: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x5192FF: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x4ECA84: PyArena_Free (in /usr/bin/python3.6) +==18661== by 0x6352F8: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Address 0x6347020 is 80 bytes inside a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x5171B6: ??? (in /usr/bin/python3.6) +==18661== by 0x51CCC3: ??? (in /usr/bin/python3.6) +==18661== by 0x51D50F: ??? (in /usr/bin/python3.6) +==18661== by 0x51E927: ??? (in /usr/bin/python3.6) +==18661== by 0x51CD70: ??? (in /usr/bin/python3.6) +==18661== by 0x519BE0: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x519817: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x5192FF: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x5171B6: ??? (in /usr/bin/python3.6) +==18661== by 0x51CCC3: ??? (in /usr/bin/python3.6) +==18661== by 0x519648: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x5192FF: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x57341F: ??? (in /usr/bin/python3.6) +==18661== by 0x50A416: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6235020 is 6,480 bytes inside a block of size 8,225 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x5DCEE7: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x56B905: ??? (in /usr/bin/python3.6) +==18661== by 0x58A75A: PyFrame_FastToLocalsWithError (in /usr/bin/python3.6) +==18661== by 0x5FF999: PyEval_GetLocals (in /usr/bin/python3.6) +==18661== by 0x51695F: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x63a9020 is 608 bytes inside a block of size 1,753 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5BD63C: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4B8785: PyParser_AddToken (in /usr/bin/python3.6) +==18661== by 0x5A91E2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x4B879A: PyParser_AddToken (in /usr/bin/python3.6) +==18661== by 0x5A91E2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC080: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x63a9020 is 608 bytes inside a block of size 1,753 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5BD63C: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5DCF63: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x5BD4F5: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x4B5EFE: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5443E6: ??? (in /usr/bin/python3.6) +==18661== by 0x52E2BD: _PyUnicodeWriter_PrepareInternal (in /usr/bin/python3.6) +==18661== by 0x52F35E: ??? (in /usr/bin/python3.6) +==18661== by 0x53E601: PyUnicode_DecodeUTF8Stateful (in /usr/bin/python3.6) +==18661== by 0x4F4EC2: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x642f020 is 544 bytes inside a block of size 1,184 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F4D57: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F4D57: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x59FBC3: PyTokenizer_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x634FDC: PyParser_ASTFromFileObject (in /usr/bin/python3.6) +==18661== by 0x635102: PyRun_FileExFlags (in /usr/bin/python3.6) +==18661== by 0x6388EE: PyRun_SimpleFileExFlags (in /usr/bin/python3.6) +==18661== by 0x639490: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EF8A5: PyArena_New (in /usr/bin/python3.6) +==18661== by 0x6350D7: PyRun_FileExFlags (in /usr/bin/python3.6) +==18661== by 0x6388EE: PyRun_SimpleFileExFlags (in /usr/bin/python3.6) +==18661== by 0x639490: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x59FBC3: PyTokenizer_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x634FDC: PyParser_ASTFromFileObject (in /usr/bin/python3.6) +==18661== by 0x635102: PyRun_FileExFlags (in /usr/bin/python3.6) +==18661== by 0x6388EE: PyRun_SimpleFileExFlags (in /usr/bin/python3.6) +==18661== by 0x639490: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EF8A5: PyArena_New (in /usr/bin/python3.6) +==18661== by 0x6350D7: PyRun_FileExFlags (in /usr/bin/python3.6) +==18661== by 0x6388EE: PyRun_SimpleFileExFlags (in /usr/bin/python3.6) +==18661== by 0x639490: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x50624A: ??? (in /usr/bin/python3.6) +==18661== by 0x4FD175: ??? (in /usr/bin/python3.6) +==18661== by 0x50760A: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635067: ??? (in /usr/bin/python3.6) +==18661== by 0x635136: PyRun_FileExFlags (in /usr/bin/python3.6) +==18661== by 0x6388EE: PyRun_SimpleFileExFlags (in /usr/bin/python3.6) +==18661== by 0x639490: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Address 0x6ea2020 is 1,568 bytes inside a block of size 2,048 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4EFEA9: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x503931: ??? (in /usr/bin/python3.6) +==18661== by 0x50602D: ??? (in /usr/bin/python3.6) +==18661== by 0x5075EA: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635067: ??? (in /usr/bin/python3.6) +==18661== by 0x635136: PyRun_FileExFlags (in /usr/bin/python3.6) +==18661== by 0x6388EE: PyRun_SimpleFileExFlags (in /usr/bin/python3.6) +==18661== by 0x639490: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EFA5E: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x503931: ??? (in /usr/bin/python3.6) +==18661== by 0x50602D: ??? (in /usr/bin/python3.6) +==18661== by 0x5075EA: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635067: ??? (in /usr/bin/python3.6) +==18661== by 0x635136: PyRun_FileExFlags (in /usr/bin/python3.6) +==18661== by 0x6388EE: PyRun_SimpleFileExFlags (in /usr/bin/python3.6) +==18661== by 0x639490: Py_Main (in /usr/bin/python3.6) +==18661== by 0x4B0F5F: main (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x56A118: ??? (in /usr/bin/python3.6) +==18661== by 0x571E42: ??? (in /usr/bin/python3.6) +==18661== by 0x572405: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6f39020 is 176 bytes inside a block of size 576 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53FF: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F464F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x5132CE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6f42020 is 80 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x515CBE: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x579324: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x579324: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x588D5B: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x4B8CC1: PyParser_AddToken (in /usr/bin/python3.6) +==18661== by 0x5A91E2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x4B8CC1: PyParser_AddToken (in /usr/bin/python3.6) +==18661== by 0x5A91E2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x506203: ??? (in /usr/bin/python3.6) +==18661== by 0x4FD175: ??? (in /usr/bin/python3.6) +==18661== by 0x50393C: ??? (in /usr/bin/python3.6) +==18661== by 0x50600A: ??? (in /usr/bin/python3.6) +==18661== by 0x5075EA: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x6f71020 is 384 bytes inside a block of size 2,048 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4EFEA9: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x50556C: ??? (in /usr/bin/python3.6) +==18661== by 0x50608E: ??? (in /usr/bin/python3.6) +==18661== by 0x5038D3: ??? (in /usr/bin/python3.6) +==18661== by 0x50600A: ??? (in /usr/bin/python3.6) +==18661== by 0x5075EA: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4EFA5E: PyCode_Optimize (in /usr/bin/python3.6) +==18661== by 0x4FFC2E: ??? (in /usr/bin/python3.6) +==18661== by 0x50556C: ??? (in /usr/bin/python3.6) +==18661== by 0x50608E: ??? (in /usr/bin/python3.6) +==18661== by 0x5038D3: ??? (in /usr/bin/python3.6) +==18661== by 0x50600A: ??? (in /usr/bin/python3.6) +==18661== by 0x5075EA: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AB188: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x506227: ??? (in /usr/bin/python3.6) +==18661== by 0x4FD175: ??? (in /usr/bin/python3.6) +==18661== by 0x50760A: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x51DB17: ??? (in /usr/bin/python3.6) +==18661== by 0x51EA04: ??? (in /usr/bin/python3.6) +==18661== by 0x51CD70: ??? (in /usr/bin/python3.6) +==18661== by 0x519B39: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AB1A0: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x506227: ??? (in /usr/bin/python3.6) +==18661== by 0x4FD175: ??? (in /usr/bin/python3.6) +==18661== by 0x50760A: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x51DB17: ??? (in /usr/bin/python3.6) +==18661== by 0x51EA04: ??? (in /usr/bin/python3.6) +==18661== by 0x51CD70: ??? (in /usr/bin/python3.6) +==18661== by 0x519B39: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x55E48B: ??? (in /usr/bin/python3.6) +==18661== by 0x51236F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x6f74020 is 192 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x515CBE: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x6352CE: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x6352CE: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x510D5A: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x6f75020 is 384 bytes inside a block of size 2,048 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x55E48B: ??? (in /usr/bin/python3.6) +==18661== by 0x51236F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x55E83D: ??? (in /usr/bin/python3.6) +==18661== by 0x56186C: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x547884: ??? (in /usr/bin/python3.6) +==18661== by 0x549170: ??? (in /usr/bin/python3.6) +==18661== by 0x537CD2: PyUnicode_Append (in /usr/bin/python3.6) +==18661== by 0x507837: ??? (in /usr/bin/python3.6) +==18661== by 0x510B0C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Address 0x6f75020 is 384 bytes inside a block of size 2,048 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x55E48B: ??? (in /usr/bin/python3.6) +==18661== by 0x51236F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x55E83D: ??? (in /usr/bin/python3.6) +==18661== by 0x56186C: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x59FBAD: PyTokenizer_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6f87020 is 576 bytes inside a block of size 1,733 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x62FD50: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FCE5: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x518164: ??? (in /usr/bin/python3.6) +==18661== by 0x51929B: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4B937E: PyParser_AddToken (in /usr/bin/python3.6) +==18661== by 0x5A91E2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x518164: ??? (in /usr/bin/python3.6) +==18661== by 0x51929B: ??? (in /usr/bin/python3.6) +==18661== by 0x51AE72: ??? (in /usr/bin/python3.6) +==18661== by 0x601B5B: ??? (in /usr/bin/python3.6) +==18661== by 0x51B4EF: PyAST_FromNodeObject (in /usr/bin/python3.6) +==18661== by 0x5B223B: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4B937E: PyParser_AddToken (in /usr/bin/python3.6) +==18661== by 0x5A91E2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5116E8: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x7126020 is 640 bytes inside a block of size 2,895 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x59A92A: ??? (in /usr/bin/python3.6) +==18661== by 0x5105B7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x7136020 is 61,984 bytes inside a block of size 65,313 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5116E8: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ACC1A: PyObject_Malloc (in /usr/bin/python3.6) +==18661== by 0x629EC6: ??? (in /usr/bin/python3.6) +==18661== by 0x50D6FD: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x5120CD: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x7157020 is 496 bytes inside a block of size 513 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x592387: PyByteArray_Resize (in /usr/bin/python3.6) +==18661== by 0x62A92A: ??? (in /usr/bin/python3.6) +==18661== by 0x50D4F2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x592387: PyByteArray_Resize (in /usr/bin/python3.6) +==18661== by 0x62A92A: ??? (in /usr/bin/python3.6) +==18661== by 0x50D4F2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x7157020 is 496 bytes inside a block of size 513 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x592387: PyByteArray_Resize (in /usr/bin/python3.6) +==18661== by 0x62A92A: ??? (in /usr/bin/python3.6) +==18661== by 0x50D4F2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x592387: PyByteArray_Resize (in /usr/bin/python3.6) +==18661== by 0x62A92A: ??? (in /usr/bin/python3.6) +==18661== by 0x50D4F2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579324: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x7158020 is 16 bytes after a block of size 848 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579114: ??? (in /usr/bin/python3.6) +==18661== by 0x583FA8: ??? (in /usr/bin/python3.6) +==18661== by 0x5844B3: ??? (in /usr/bin/python3.6) +==18661== by 0x50CFD7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x5132CE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x588D5B: ??? (in /usr/bin/python3.6) +==18661== by 0x5132CE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x5761DD: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x788d020 is 16 bytes before a block of size 928 alloc'd +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x551C4B: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x558330: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4D94C6: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Address 0x78d4020 is 496 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4D957A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Address 0x78d4020 is 496 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4D94CF: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9801: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x4D94E8: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9801: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4D9585: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9801: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x4D959D: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9801: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x547884: ??? (in /usr/bin/python3.6) +==18661== by 0x52C2E7: _PyUnicodeWriter_Finish (in /usr/bin/python3.6) +==18661== by 0x52AFD4: ??? (in /usr/bin/python3.6) +==18661== by 0x52BBE5: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18662== Warning: invalid file descriptor 1024 in syscall close() +==18662== Warning: invalid file descriptor 1025 in syscall close() +==18662== Warning: invalid file descriptor 1026 in syscall close() +==18662== Warning: invalid file descriptor 1027 in syscall close() +==18662== Use --log-fd= to select an alternative log fd. +==18662== Warning: invalid file descriptor 1028 in syscall close() +==18662== Warning: invalid file descriptor 1029 in syscall close() +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== Address 0x7bf6020 is 46,576 bytes inside a block of size 50,033 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4C4E0A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x4C4DD2: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E8FCD: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x7c55020 is 8 bytes after a block of size 520 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x4D3FC6: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x94f2020 is 32 bytes before a block of size 87,264 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59D93C: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9E4: ??? (in /usr/bin/python3.6) +==18661== by 0x59DA0B: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x59DA0B: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x59DA0B: ??? (in /usr/bin/python3.6) +==18661== by 0x59D9C2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2246: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== Address 0x95bc020 is 33,408 bytes inside a block of size 36,032 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A9523: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5A90D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x5686BA: PyDict_Clear (in /usr/bin/python3.6) +==18661== by 0x54FFA1: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3BCD: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x967a020 is 624 bytes inside a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5908B3: ??? (in /usr/bin/python3.6) +==18661== by 0x589947: ??? (in /usr/bin/python3.6) +==18661== by 0x576744: ??? (in /usr/bin/python3.6) +==18661== by 0x5686BA: PyDict_Clear (in /usr/bin/python3.6) +==18661== by 0x54FFA1: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3BCD: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== Address 0x967a020 is 624 bytes inside a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x54FFA1: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3BCD: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x967f020 is 304 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x515CBE: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x5899B6: ??? (in /usr/bin/python3.6) +==18661== by 0x5686BA: PyDict_Clear (in /usr/bin/python3.6) +==18661== by 0x54FFA1: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3C2C: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Address 0x967e020 is 1,888 bytes inside a block of size 2,472 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x54EECA: ??? (in /usr/bin/python3.6) +==18661== by 0x55037D: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3C3F: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x9680020 is 880 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x558F3D: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x571E42: ??? (in /usr/bin/python3.6) +==18661== by 0x572080: PyDict_Copy (in /usr/bin/python3.6) +==18661== by 0x558EB8: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x5A3C3F: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x9686020 is 1,920 bytes inside a block of size 2,208 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x54FFA1: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3C2C: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x571E42: ??? (in /usr/bin/python3.6) +==18661== by 0x572080: PyDict_Copy (in /usr/bin/python3.6) +==18661== by 0x5582AC: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x54F4B3: ??? (in /usr/bin/python3.6) +==18661== by 0x54F3AF: ??? (in /usr/bin/python3.6) +==18661== by 0x5686BA: PyDict_Clear (in /usr/bin/python3.6) +==18661== by 0x54FFA1: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3C82: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== Address 0x967f020 is 304 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5734DB: ??? (in /usr/bin/python3.6) +==18661== by 0x515CBE: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x5A3C94: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x9687020 is 32 bytes inside a block of size 608 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x590F44: ??? (in /usr/bin/python3.6) +==18661== by 0x589947: ??? (in /usr/bin/python3.6) +==18661== by 0x576744: ??? (in /usr/bin/python3.6) +==18661== by 0x5686BA: PyDict_Clear (in /usr/bin/python3.6) +==18661== by 0x54FFA1: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3C2C: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x553C7F: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0xADDB18E: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x549F21: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x54603C: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4581: ??? (in /usr/bin/python3.6) +==18661== by 0x4F464F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x51129B: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x98c7020 is 16 bytes after a block of size 1,328 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x50AAB7: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x2002d020 is 784 bytes inside a block of size 855 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x50AAB7: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x535CA1: PyUnicode_Substring (in /usr/bin/python3.6) +==18661== by 0x5369D2: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x54EECA: ??? (in /usr/bin/python3.6) +==18661== by 0x50AAB7: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x20032020 is 32 bytes before a block of size 1,168 in arena "client" +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x536F09: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579114: ??? (in /usr/bin/python3.6) +==18661== by 0x588894: ??? (in /usr/bin/python3.6) +==18661== by 0x5A75DA: PySequence_List (in /usr/bin/python3.6) +==18661== by 0x536F27: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x588D5B: ??? (in /usr/bin/python3.6) +==18661== by 0x536F09: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579114: ??? (in /usr/bin/python3.6) +==18661== by 0x588894: ??? (in /usr/bin/python3.6) +==18661== by 0x5A75DA: PySequence_List (in /usr/bin/python3.6) +==18661== by 0x536F27: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x536F09: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x20041020 is 0 bytes inside a block of size 1 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x536F09: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x579114: ??? (in /usr/bin/python3.6) +==18661== by 0x588894: ??? (in /usr/bin/python3.6) +==18661== by 0x5A75DA: PySequence_List (in /usr/bin/python3.6) +==18661== by 0x536F27: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x20016020 is 608 bytes inside a block of size 2,472 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4B3E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x588924: ??? (in /usr/bin/python3.6) +==18661== by 0x588AD8: ??? (in /usr/bin/python3.6) +==18661== by 0x50D4F2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x20044020 is 0 bytes after a block of size 576 alloc'd +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4D94C6: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612039: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x61243A: ??? (in /usr/bin/python3.6) +==18661== by 0x6124A1: PyErr_WarnEx (in /usr/bin/python3.6) +==18661== by 0x2138954D: __Pyx_ImportType.constprop.87 (mtrand.c:43193) +==18661== by 0x2138BCC6: __Pyx_modinit_type_init_code (mtrand.c:39418) +==18661== by 0x2138BCC6: __pyx_pymod_exec_mtrand (mtrand.c:39681) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== Address 0x21004020 is 304 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612016: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x61243A: ??? (in /usr/bin/python3.6) +==18661== by 0x6124A1: PyErr_WarnEx (in /usr/bin/python3.6) +==18661== by 0x2138954D: __Pyx_ImportType.constprop.87 (mtrand.c:43193) +==18661== by 0x2138BCC6: __Pyx_modinit_type_init_code (mtrand.c:39418) +==18661== by 0x2138BCC6: __pyx_pymod_exec_mtrand (mtrand.c:39681) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612016: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x61243A: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4D957A: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612039: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x61243A: ??? (in /usr/bin/python3.6) +==18661== by 0x6124A1: PyErr_WarnEx (in /usr/bin/python3.6) +==18661== by 0x2138954D: __Pyx_ImportType.constprop.87 (mtrand.c:43193) +==18661== by 0x2138BCC6: __Pyx_modinit_type_init_code (mtrand.c:39418) +==18661== by 0x2138BCC6: __pyx_pymod_exec_mtrand (mtrand.c:39681) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== Address 0x21004020 is 304 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612016: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x61243A: ??? (in /usr/bin/python3.6) +==18661== by 0x6124A1: PyErr_WarnEx (in /usr/bin/python3.6) +==18661== by 0x2138954D: __Pyx_ImportType.constprop.87 (mtrand.c:43193) +==18661== by 0x2138BCC6: __Pyx_modinit_type_init_code (mtrand.c:39418) +==18661== by 0x2138BCC6: __pyx_pymod_exec_mtrand (mtrand.c:39681) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612016: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x61243A: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x547DFC: PyUnicode_FromFormatV (in /usr/bin/python3.6) +==18661== by 0x5490E8: PyUnicode_FromFormat (in /usr/bin/python3.6) +==18661== by 0xC0C5868: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x60e2020 is 400 bytes inside an unallocated block of size 848 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0xC0C589A: PyUnicode_ConcatAndDel (npy_3kcompat.h:155) +==18661== by 0xC0C589A: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== Address 0x60c5020 is 7,904 bytes inside an unallocated block of size 8,000 in arena "client" +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5442D1: ??? (in /usr/bin/python3.6) +==18661== by 0xC0C589A: PyUnicode_ConcatAndDel (npy_3kcompat.h:155) +==18661== by 0xC0C589A: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5442E9: ??? (in /usr/bin/python3.6) +==18661== by 0xC0C589A: PyUnicode_ConcatAndDel (npy_3kcompat.h:155) +==18661== by 0xC0C589A: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x573540: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x56EB95: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x6112020 is 720 bytes inside a block of size 1,744 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0xC0C589A: PyUnicode_ConcatAndDel (npy_3kcompat.h:155) +==18661== by 0xC0C589A: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x547884: ??? (in /usr/bin/python3.6) +==18661== by 0x52E1F7: _PyUnicodeWriter_PrepareInternal (in /usr/bin/python3.6) +==18661== by 0x52E63F: _PyUnicodeWriter_WriteStr (in /usr/bin/python3.6) +==18661== by 0x547DE9: PyUnicode_FromFormatV (in /usr/bin/python3.6) +==18661== by 0x5490E8: PyUnicode_FromFormat (in /usr/bin/python3.6) +==18661== by 0xC0C5868: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5442D1: ??? (in /usr/bin/python3.6) +==18661== by 0x547DFC: PyUnicode_FromFormatV (in /usr/bin/python3.6) +==18661== by 0x5490E8: PyUnicode_FromFormat (in /usr/bin/python3.6) +==18661== by 0xC0C5868: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5442E9: ??? (in /usr/bin/python3.6) +==18661== by 0x547DFC: PyUnicode_FromFormatV (in /usr/bin/python3.6) +==18661== by 0x5490E8: PyUnicode_FromFormat (in /usr/bin/python3.6) +==18661== by 0xC0C5868: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4D4C4B: ??? (in /usr/bin/python3.6) +==18661== by 0x4DAC41: ??? (in /usr/bin/python3.6) +==18661== by 0x5E4679: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Address 0x6157020 is 880 bytes inside a block of size 1,592 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x591068: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x550BF0: PyTuple_New (in /usr/bin/python3.6) +==18661== by 0x4F4625: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4D4C64: ??? (in /usr/bin/python3.6) +==18661== by 0x4DAC41: ??? (in /usr/bin/python3.6) +==18661== by 0x5E4679: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Address 0x60e2020 is 400 bytes inside an unallocated block of size 848 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E78AE: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x6109020 is 1,760 bytes inside a block of size 1,910 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x547DFC: PyUnicode_FromFormatV (in /usr/bin/python3.6) +==18661== by 0x5490E8: PyUnicode_FromFormat (in /usr/bin/python3.6) +==18661== by 0xC0C5868: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x53E1C7: PyUnicode_DecodeUTF8Stateful (in /usr/bin/python3.6) +==18661== by 0x547DB9: PyUnicode_FromFormatV (in /usr/bin/python3.6) +==18661== by 0x5490E8: PyUnicode_FromFormat (in /usr/bin/python3.6) +==18661== by 0xC0C5868: ufunc_get_doc (ufunc_object.c:5862) +==18661== by 0x4B2778: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x4DA69C: ??? (in /usr/bin/python3.6) +==18661== by 0x5E4679: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x6149020 is 560 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5E78AE: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x5E798B: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x588E0B: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x616d020 is 2,032 bytes inside a block of size 2,168 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x5132CE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC1BA: ??? (in /usr/bin/python3.6) +==18661== by 0x5832D3: PyList_New (in /usr/bin/python3.6) +==18661== by 0x56E48B: PyDict_Keys (in /usr/bin/python3.6) +==18661== by 0x50FF30: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x58952A: ??? (in /usr/bin/python3.6) +==18661== by 0xA36FAE8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA35AD2D: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== Address 0x6238020 is 848 bytes inside a block of size 1,008 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A9543: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x62FC0A: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x61DFC1: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0xA3A57EC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA36FEC9: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA366C2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x61e4020 is 16 bytes after a block of size 1,360 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0xA3A5AA6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA36FEC9: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA366C2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x622e020 is 480 bytes inside a block of size 1,160 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x61DFC1: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0xA3A57EC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA36FEC9: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA366C2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC1BA: ??? (in /usr/bin/python3.6) +==18661== by 0x5832D3: PyList_New (in /usr/bin/python3.6) +==18661== by 0x56E48B: PyDict_Keys (in /usr/bin/python3.6) +==18661== by 0x61F747: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x61DF89: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0xA3A57EC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA36FEC9: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA366C2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0xAE66EF1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE6B921: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x54A2C4: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== Address 0x6049020 is 1,328 bytes inside a block of size 1,384 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x59C6D7: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x5A3BDE: ??? (in /usr/bin/python3.6) +==18661== by 0x5A4BD4: ??? (in /usr/bin/python3.6) +==18661== by 0x5AAB50: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x6ec1020 is 416 bytes inside a block of size 848 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F46BB: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F471F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x592387: PyByteArray_Resize (in /usr/bin/python3.6) +==18661== by 0x62A92A: ??? (in /usr/bin/python3.6) +==18661== by 0x50D4F2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x6f59020 is 128 bytes inside a block of size 576 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x56A634: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56ECE2: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x50D084: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x54EECA: ??? (in /usr/bin/python3.6) +==18661== by 0x588E0B: ??? (in /usr/bin/python3.6) +==18661== by 0x5761DD: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x70a9020 is 384 bytes inside a block of size 664 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x590F44: ??? (in /usr/bin/python3.6) +==18661== by 0x590F5A: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x5761DD: ??? (in /usr/bin/python3.6) +==18661== by 0x59CFFD: PyIter_Next (in /usr/bin/python3.6) +==18661== by 0x571F64: ??? (in /usr/bin/python3.6) +==18661== by 0x61B0F5: ??? (in /usr/bin/python3.6) +==18661== by 0x61B187: ??? (in /usr/bin/python3.6) +==18661== by 0x61B220: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x61DF89: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0x600AF9: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x588D5B: ??? (in /usr/bin/python3.6) +==18661== by 0x5761DD: ??? (in /usr/bin/python3.6) +==18661== by 0x59CFFD: PyIter_Next (in /usr/bin/python3.6) +==18661== by 0x571F64: ??? (in /usr/bin/python3.6) +==18661== by 0x61B0F5: ??? (in /usr/bin/python3.6) +==18661== by 0x61B187: ??? (in /usr/bin/python3.6) +==18661== by 0x61B220: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x61DF89: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0x600AF9: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4D9301: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Address 0x71ff020 is 976 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== +WARNING:root:You are using TEST_DEBUG=True, a Cassandra cluster must be already running. Keep in mind that the results of the test might be altered by data already existing. +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AAF13: ??? (in /usr/bin/python3.6) +==18661== by 0x560464: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x50CA30: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x584044: ??? (in /usr/bin/python3.6) +==18661== by 0x586582: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x584044: ??? (in /usr/bin/python3.6) +==18661== by 0x586582: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x724a020 is 16 bytes after a block of size 928 alloc'd +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x551C4B: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x558330: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x5FB7A2: PyErr_NewException (in /usr/bin/python3.6) +==18661== by 0x5DE000: PyInit_binascii (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x586524: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x724a020 is 16 bytes after a block of size 928 alloc'd +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x551C4B: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x558330: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x5FB7A2: PyErr_NewException (in /usr/bin/python3.6) +==18661== by 0x5DE000: PyInit_binascii (in /usr/bin/python3.6) +==18661== by 0x4FB77F: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AC347: ??? (in /usr/bin/python3.6) +==18661== by 0x586524: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579324: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AC35F: ??? (in /usr/bin/python3.6) +==18661== by 0x586524: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579324: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x599912: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB636: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB754: ??? (in /usr/bin/python3.6) +==18661== by 0x50AB80: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x7871020 is 2,032 bytes inside a block of size 2,560 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x54F1C5: ??? (in /usr/bin/python3.6) +==18661== by 0x57351F: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x551C4B: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x5E98A0: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x58952A: ??? (in /usr/bin/python3.6) +==18661== by 0x4B63F0: ??? (in /usr/bin/python3.6) +==18661== by 0x55DCFC: PyObject_GetAttr (in /usr/bin/python3.6) +==18661== by 0x50C46C: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB64D: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB754: ??? (in /usr/bin/python3.6) +==18661== by 0x50AB80: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x79b5020 is 16 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x56B905: ??? (in /usr/bin/python3.6) +==18661== by 0x55F9F0: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x50CA30: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x78c0020 is 208 bytes inside a block of size 552 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x573626: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x7954020 is 4,224 bytes inside a block of size 4,293 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CA893: ??? (in /usr/bin/python3.6) +==18661== by 0x4CB996: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x4CA843: ??? (in /usr/bin/python3.6) +==18661== by 0x4CB996: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x5735B6: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x78c0020 is 208 bytes inside a block of size 552 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x4B1BAA: ??? (in /usr/bin/python3.6) +==18661== by 0x5735D7: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x7888020 is 304 bytes inside a block of size 1,112 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x560464: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x50CA30: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x560019: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x50CA30: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5DD8A4: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A684D: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5BC215: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5DD8A4: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A684D: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5BC215: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E65FB: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E65FB: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== Address 0x79b8020 is 880 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5E65FB: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x5E6823: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AAF0A: ??? (in /usr/bin/python3.6) +==18661== by 0x560464: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x50CA30: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x79bb020 is 8,432 bytes inside an unallocated block of size 10,832 in arena "client" +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4B1BB3: ??? (in /usr/bin/python3.6) +==18661== by 0x5735D7: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5105B7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x79c8020 is 608 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AB188: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5442D1: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E8FF2: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x7a5b020 is 8 bytes after a block of size 104 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x547084: ??? (in /usr/bin/python3.6) +==18661== by 0x4FB95F: PyErr_SetFromErrnoWithFilenameObjects (in /usr/bin/python3.6) +==18661== by 0x4C6842: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AB904: ??? (in /usr/bin/python3.6) +==18661== by 0x54704C: ??? (in /usr/bin/python3.6) +==18661== by 0x4FB95F: PyErr_SetFromErrnoWithFilenameObjects (in /usr/bin/python3.6) +==18661== by 0x4C6842: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x5BD695: ??? (in /usr/bin/python3.6) +==18661== by 0x5BD84F: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x7af4020 is 3,168 bytes inside a block of size 4,096 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5DD8A4: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DC02: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x54EECA: ??? (in /usr/bin/python3.6) +==18661== by 0x5BD62B: ??? (in /usr/bin/python3.6) +==18661== by 0x5BD84F: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x7b04020 is 192 bytes inside an unallocated block of size 848 in arena "client" +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x573540: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Address 0x7a8f020 is 1,552 bytes inside a block of size 4,096 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5DD8A4: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DC02: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5BD907: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x7934020 is 1,344 bytes inside a block of size 1,384 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4F45C7: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4673: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x4BB698: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB754: ??? (in /usr/bin/python3.6) +==18661== by 0x50AB80: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x79a5020 is 16 bytes after a block of size 16 in arena "client" +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AB188: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5BD63C: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E8FF2: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E8A48: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x9507020 is 128 bytes inside a block of size 704 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB64D: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB754: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A684D: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5BC1F0: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x4BBA57: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AB1A0: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5BD63C: ??? (in /usr/bin/python3.6) +==18661== by 0x4BBEB9: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5ACFAE: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E8A6D: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x96f8020 is 16 bytes after a block of size 576 alloc'd +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x571E42: ??? (in /usr/bin/python3.6) +==18661== by 0x572080: PyDict_Copy (in /usr/bin/python3.6) +==18661== by 0x5582AC: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0xADCB888: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xADF09BF: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5442C8: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Address 0x97db020 is 3,792 bytes inside a block of size 4,138 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5BD907: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CA893: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x4CE2E1: ??? (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A684D: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5BD8C7: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x5E8FF2: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4D4FF1: ??? (in /usr/bin/python3.6) +==18661== by 0x5E882B: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5ACFB8: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x599912: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB636: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB754: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A684D: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5BC1F0: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A656D: PyObject_CallMethodObjArgs (in /usr/bin/python3.6) +==18661== by 0x566E11: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5442D1: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC080: ??? (in /usr/bin/python3.6) +==18661== by 0x4BC31C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C7A2: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AB188: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5105B7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AB1A0: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5442D1: ??? (in /usr/bin/python3.6) +==18661== by 0x5BD695: ??? (in /usr/bin/python3.6) +==18661== by 0x5BD84F: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DF10D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5442D1: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x535CA1: PyUnicode_Substring (in /usr/bin/python3.6) +==18661== by 0x5B9B6F: ??? (in /usr/bin/python3.6) +==18661== by 0x5BD78E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x5105B7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5ACFD0: PyMem_Free (in /usr/bin/python3.6) +==18661== by 0x599912: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB636: ??? (in /usr/bin/python3.6) +==18661== by 0x4BB754: ??? (in /usr/bin/python3.6) +==18661== by 0x50AB80: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x573540: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x509E94: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18749== Warning: invalid file descriptor 1024 in syscall close() +==18749== Warning: invalid file descriptor 1025 in syscall close() +==18749== Warning: invalid file descriptor 1026 in syscall close() +==18749== Warning: invalid file descriptor 1027 in syscall close() +==18749== Use --log-fd= to select an alternative log fd. +==18749== Warning: invalid file descriptor 1028 in syscall close() +==18749== Warning: invalid file descriptor 1029 in syscall close() +WARNING:root:TEST_DEBUG: ignoring exception +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x4D9585: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612039: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x6126A4: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9801: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6BC3: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== by 0x610DA6: ??? (in /usr/bin/python3.6) +==18661== by 0x612039: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== by 0x6126A4: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x579114: ??? (in /usr/bin/python3.6) +==18661== by 0x5889BE: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6883: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5D792C: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Address 0x20b05020 is 544 bytes inside a block of size 768 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579114: ??? (in /usr/bin/python3.6) +==18661== by 0x5889BE: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6883: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5D792C: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579114: ??? (in /usr/bin/python3.6) +==18661== by 0x5889BE: ??? (in /usr/bin/python3.6) +==18661== by 0x566EA0: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6883: _PyObject_CallMethodId_SizeT (in /usr/bin/python3.6) +==18661== by 0x5D792C: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== Thread 3: +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AAF13: ??? (in /usr/bin/python3.6) +==18661== by 0x56071C: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x5608AA: PyObject_SetAttr (in /usr/bin/python3.6) +==18661== by 0x50F53E: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A6E33: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549B75: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== by 0x22755C23: ev_run (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== by 0x2254A00B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x4ED032: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== +/home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/storage/cql_iface/__init__.py:189: UserWarning: Defining a MAX_CACHE_SIZE smaller than WRITE_BUFFER_SIZE can result in reading outdated results from the persistent storage + warnings.warn(message) +WARNING:cassandra.cluster:Downgrading core protocol version from 66 to 65 for 127.0.0.1:9042. To avoid this, it is best practice to explicitly set Cluster(protocol_version) to the version supported by your cluster. http://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.Cluster.protocol_version +WARNING:cassandra.cluster:Downgrading core protocol version from 65 to 4 for 127.0.0.1:9042. To avoid this, it is best practice to explicitly set Cluster(protocol_version) to the version supported by your cluster. http://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.Cluster.protocol_version +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0xB5595D0: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB598753: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB599BBD: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB12B036: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/row_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA393F04: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA39C5F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA3DE581: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B73238: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B783AE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B52E66: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== Address 0x20b2f020 is 3,392 bytes inside a block of size 4,129 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5C0901: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x5C08C5: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0xB5595D0: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB598753: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB599BBD: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB12B036: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/row_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA393F04: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA39C5F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA3DE581: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B73238: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B783AE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B52E66: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x637B53: ??? (in /usr/bin/python3.6) +==18661== by 0x5E1A6E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x588D5B: ??? (in /usr/bin/python3.6) +==18661== by 0xB5595D0: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB598753: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB599BBD: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB12B036: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/row_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA393F04: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA39C5F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA3DE581: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B73238: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B783AE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B52E66: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x637B53: ??? (in /usr/bin/python3.6) +==18661== by 0x5E1A6E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0xB5897A9: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xBC338B1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/obj_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xBC28372: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/obj_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB12B4E3: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/row_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA393F04: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA39C5F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA3DE581: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B73238: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B783AE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B52E66: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== Address 0x20b45020 is 672 bytes inside a block of size 1,864 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0xB5687F5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5896A4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xBC338B1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/obj_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xBC28372: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/obj_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB12B4E3: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/row_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA393F04: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA39C5F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA3DE581: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B73238: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B783AE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0xB5687F5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5896A4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xBC338B1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/obj_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xBC28372: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/obj_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB12B4E3: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/row_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA393F04: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA39C5F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA3DE581: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B73238: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B783AE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0xB33B2D6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/bytesio.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB12B836: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/row_parser.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA393F04: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA39C5F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xA3DE581: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/protocol.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B73238: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B783AE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B52E66: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== Address 0x20b41020 is 400 bytes inside a block of size 712 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x588EEA: ??? (in /usr/bin/python3.6) +==18661== by 0x61DFC1: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0xB5594D5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB598753: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB599BBD: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5B5564: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5B5DDC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x4B4EC5: ??? (in /usr/bin/python3.6) +==18661== by 0xB5570F8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB54F704: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB59A7B6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== Block was alloc'd at +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC1BA: ??? (in /usr/bin/python3.6) +==18661== by 0x5832D3: PyList_New (in /usr/bin/python3.6) +==18661== by 0x56E48B: PyDict_Keys (in /usr/bin/python3.6) +==18661== by 0x61F747: ??? (in /usr/bin/python3.6) +==18661== by 0x566FB9: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x61DF89: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0xB5594D5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB598753: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB599BBD: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x4CC767: ??? (in /usr/bin/python3.6) +==18661== by 0x56EB95: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x55FCA2: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x9B4E045: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B27128: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B09440: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B536C5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Address 0x1ffc0020 is 1,792 bytes inside a block of size 4,129 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5C0901: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x5C08C5: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x9B526CF: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== Address 0x212cf020 is 5,856 bytes inside a block of size 6,611 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CC2F5: ??? (in /usr/bin/python3.6) +==18661== by 0x9B556E3: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B27128: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B09440: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B53D08: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CC408: ??? (in /usr/bin/python3.6) +==18661== by 0x4CC56A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== Thread 1: +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x21A433FE: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/metadata.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7537752: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75406D4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x75727C6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75773F1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74DD773: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7467BF8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x742D221: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74D4352: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== Address 0x20b4f020 is 1,328 bytes inside a block of size 1,608 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x21A434BC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/metadata.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7537752: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75406D4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x75727C6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75773F1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74DD773: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7467BF8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x742D221: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0x21A434BC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/metadata.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7537752: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75406D4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x75727C6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75773F1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74DD773: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7467BF8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x742D221: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== Thread 3: +==18661== Invalid read of size 4 +==18661== at 0x5AB17E: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x9B53359: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== Address 0x20b53020 is 2,480 bytes inside a block of size 2,694 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x4CC2F5: ??? (in /usr/bin/python3.6) +==18661== by 0x9B556E3: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B27128: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B09440: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B53D08: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x4CC39E: ??? (in /usr/bin/python3.6) +==18661== by 0x4CC56A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A8EB: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== Thread 1: +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x57351F: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x54EECA: ??? (in /usr/bin/python3.6) +==18661== by 0x588E0B: ??? (in /usr/bin/python3.6) +==18661== by 0x573626: ??? (in /usr/bin/python3.6) +==18661== by 0x54F1A1: ??? (in /usr/bin/python3.6) +==18661== by 0x588E0B: ??? (in /usr/bin/python3.6) +==18661== by 0x7572B7C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75773F1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74DD773: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== Address 0x20b48020 is 1,664 bytes inside a block of size 1,864 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0xAE8050D: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE21ACA: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE2CDC0: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE21ACA: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE329AF: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x54A2C4: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0xB5570F8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB54F704: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== Block was alloc'd at +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x579494: PyList_Append (in /usr/bin/python3.6) +==18661== by 0xAE8050D: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE21ACA: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE2CDC0: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE21ACA: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE329AF: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x54A2C4: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0xB5570F8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB54F704: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AAF13: ??? (in /usr/bin/python3.6) +==18661== by 0x5735EA: ??? (in /usr/bin/python3.6) +==18661== by 0x54CC80: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3BCD: ??? (in /usr/bin/python3.6) +==18661== by 0x551DD7: PyType_GenericAlloc (in /usr/bin/python3.6) +==18661== by 0x562430: ??? (in /usr/bin/python3.6) +==18661== by 0x5B077D: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B10D5: ??? (in /usr/bin/python3.6) +==18661== by 0x5B1D72: PySymtable_BuildObject (in /usr/bin/python3.6) +==18661== by 0x507589: PyAST_CompileObject (in /usr/bin/python3.6) +==18661== by 0x635298: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5F7D0E: ??? (in /usr/bin/python3.6) +==18661== by 0x5F4F45: ??? (in /usr/bin/python3.6) +==18661== by 0x4E5636: ??? (in /usr/bin/python3.6) +==18661== by 0x508536: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +WARNING:cassandra.cluster:Downgrading core protocol version from 66 to 65 for 127.0.0.1:9042. To avoid this, it is best practice to explicitly set Cluster(protocol_version) to the version supported by your cluster. http://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.Cluster.protocol_version +WARNING:cassandra.cluster:Downgrading core protocol version from 65 to 4 for 127.0.0.1:9042. To avoid this, it is best practice to explicitly set Cluster(protocol_version) to the version supported by your cluster. http://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.Cluster.protocol_version +==18661== Thread 3: +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x5AB188: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x4CC767: ??? (in /usr/bin/python3.6) +==18661== by 0x56EB95: PyDict_SetItem (in /usr/bin/python3.6) +==18661== by 0x55FCA2: _PyObject_GenericSetAttrWithDict (in /usr/bin/python3.6) +==18661== by 0x9B4E045: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B27128: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B09440: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B536C5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x5AB1A0: PyObject_Free (in /usr/bin/python3.6) +==18661== by 0x5105B7: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== by 0x22756044: ev_run (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== by 0x2254A00B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x50AB80: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== Conditional jump or move depends on uninitialised value(s) +==18661== at 0x588D43: ??? (in /usr/bin/python3.6) +==18661== by 0x61DFC1: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0xB5594D5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB598753: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB599BBD: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5B5564: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5B5DDC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x4B4EC5: ??? (in /usr/bin/python3.6) +==18661== by 0xB5570F8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB54F704: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB59A7B6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Use of uninitialised value of size 8 +==18661== at 0x588D5B: ??? (in /usr/bin/python3.6) +==18661== by 0x61DFC1: PyObject_Dir (in /usr/bin/python3.6) +==18661== by 0xB5594D5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB598753: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB599BBD: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5B5564: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB5B5DDC: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x4B4EC5: ??? (in /usr/bin/python3.6) +==18661== by 0xB5570F8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB54F704: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xB59A7B6: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/deserializers.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AD37A: PyMem_Malloc (in /usr/bin/python3.6) +==18661== by 0x5DC3E4: ??? (in /usr/bin/python3.6) +==18661== by 0x5DC6DA: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6CBC: _PyObject_CallFunction_SizeT (in /usr/bin/python3.6) +==18661== by 0x5EF6B1: ??? (in /usr/bin/python3.6) +==18661== by 0x566F19: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x567335: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6B3F: _PyObject_CallMethodId (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x59C6CC: PyObject_GC_Del (in /usr/bin/python3.6) +==18661== by 0x54F1C5: ??? (in /usr/bin/python3.6) +==18661== by 0x5A3C94: ??? (in /usr/bin/python3.6) +==18661== by 0x5A7242: _PyObject_GC_New (in /usr/bin/python3.6) +==18661== by 0x56C369: PyDict_New (in /usr/bin/python3.6) +==18661== by 0x508A79: ??? (in /usr/bin/python3.6) +==18661== by 0x50B288: PyEval_EvalCodeEx (in /usr/bin/python3.6) +==18661== by 0xAE18D13: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE93658: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xADFD9A8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xADCBC61: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0xAE278A3: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/util.cpython-36m-x86_64-linux-gnu.so) +==18661== Address 0x20b2f020 is 3,392 bytes inside a block of size 4,129 free'd +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5925E6: _PyBytes_Resize (in /usr/bin/python3.6) +==18661== by 0x5C0901: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5928BB: PyBytes_FromStringAndSize (in /usr/bin/python3.6) +==18661== by 0x5C08C5: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== +==18661== Thread 1: +==18661== Use of uninitialised value of size 8 +==18661== at 0x588D5B: ??? (in /usr/bin/python3.6) +==18661== by 0x4FACAA: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Uninitialised value was created by a heap allocation +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x588D38: ??? (in /usr/bin/python3.6) +==18661== by 0x50B774: ??? (in /usr/bin/python3.6) +==18661== by 0x588863: ??? (in /usr/bin/python3.6) +==18661== by 0x588A9D: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Address 0x6ead020 is 1,344 bytes inside an unallocated block of size 1,568 in arena "client" +==18661== +==18661== Thread 3: +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x62FD50: PyTokenizer_FromUTF8 (in /usr/bin/python3.6) +==18661== by 0x5AA172: PyParser_ParseStringObject (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50B288: PyEval_EvalCodeEx (in /usr/bin/python3.6) +==18661== by 0x21F53963: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/query.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x21F5B100: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/query.cpython-36m-x86_64-linux-gnu.so) +==18661== Address 0x6387020 is 544 bytes inside a block of size 1,114 free'd +==18661== at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x4D9830: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== Block was alloc'd at +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x4D41D4: ??? (in /usr/bin/python3.6) +==18661== by 0x4D6EA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4D912E: ??? (in /usr/bin/python3.6) +==18661== by 0x50A979: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== Invalid read of size 4 +==18661== at 0x5AC33E: ??? (in /usr/bin/python3.6) +==18661== by 0x4B8CC1: PyParser_AddToken (in /usr/bin/python3.6) +==18661== by 0x5A91E2: ??? (in /usr/bin/python3.6) +==18661== by 0x5B2212: PyParser_ASTFromStringObject (in /usr/bin/python3.6) +==18661== by 0x635279: PyRun_StringFlags (in /usr/bin/python3.6) +==18661== by 0x5167DC: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50B288: PyEval_EvalCodeEx (in /usr/bin/python3.6) +==18661== by 0x21F53963: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/query.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x21F5B100: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/query.cpython-36m-x86_64-linux-gnu.so) +==18661== Address 0x6f1c020 is 16 bytes after a block of size 576 alloc'd +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5ABF54: ??? (in /usr/bin/python3.6) +==18661== by 0x56A353: ??? (in /usr/bin/python3.6) +==18661== by 0x56B992: ??? (in /usr/bin/python3.6) +==18661== by 0x571572: PyDict_SetItemString (in /usr/bin/python3.6) +==18661== by 0x5538B3: PyType_Ready (in /usr/bin/python3.6) +==18661== by 0x55866E: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== Thread 1: +==18661== Jump to the invalid address stated on the next line +==18661== at 0x0: ??? +==18661== by 0x5F27BC: ??? (in /usr/bin/python3.6) +==18661== by 0xE78785C: TimeParser::c_to_py(void const*) const (UnitParser.cpp:337) +==18661== by 0xE778434: PythonParser::make_pylist(std::vector >&) const (PythonParser.cpp:94) +==18661== by 0xE77BA27: get_row(HCache*, _object*) (HCache.cpp:164) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== Address 0x0 is not stack'd, malloc'd or (recently) free'd +==18661== +==18661== +==18661== Process terminating with default action of signal 11 (SIGSEGV) +==18661== Bad permissions for mapped region at address 0x0 +==18661== at 0x0: ??? +==18661== by 0x5F27BC: ??? (in /usr/bin/python3.6) +==18661== by 0xE78785C: TimeParser::c_to_py(void const*) const (UnitParser.cpp:337) +==18661== by 0xE778434: PythonParser::make_pylist(std::vector >&) const (PythonParser.cpp:94) +==18661== by 0xE77BA27: get_row(HCache*, _object*) (HCache.cpp:164) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== +==18661== HEAP SUMMARY: +==18661== in use at exit: 11,784,116 bytes in 27,190 blocks +==18661== total heap usage: 77,867 allocs, 50,677 frees, 57,702,741 bytes allocated +==18661== +==18661== 6 bytes in 1 blocks are definitely lost in loss record 12 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0xE77C502: put_row(HCache*, _object*) (HCache.cpp:78) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x557877: ??? (in /usr/bin/python3.6) +==18661== by 0x541CAF: ??? (in /usr/bin/python3.6) +==18661== +==18661== 16 bytes in 1 blocks are definitely lost in loss record 151 of 2,328 +==18661== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0xE780359: allocate (new_allocator.h:111) +==18661== by 0xE780359: allocate (alloc_traits.h:436) +==18661== by 0xE780359: _M_allocate (stl_vector.h:172) +==18661== by 0xE780359: _M_create_storage (stl_vector.h:187) +==18661== by 0xE780359: _Vector_base (stl_vector.h:138) +==18661== by 0xE780359: vector (stl_vector.h:284) +==18661== by 0xE780359: hcache_init(HCache*, _object*, _object*) (HCache.cpp:280) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 336 bytes in 1 blocks are possibly lost in loss record 965 of 2,328 +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x40134A6: allocate_dtv (dl-tls.c:286) +==18661== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530) +==18661== by 0x5235227: allocate_stack (allocatestack.c:627) +==18661== by 0x5235227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644) +==18661== by 0x13A78CC0: uv_thread_create (in /usr/lib/x86_64-linux-gnu/libuv.so.1.0.0) +==18661== by 0xEF3DA5F: cass::LoopThread::run() (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0xEF38E8B: cass::Session::connect_async(cass::Config const&, std::__cxx11::basic_string, std::allocator > const&, cass::SharedRefPtr const&) (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0xEF37171: cass_session_connect_keyspace_n (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0xEF370C1: cass_session_connect_keyspace (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0xEF37088: cass_session_connect (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0xE9ADB96: StorageInterface::StorageInterface(int, std::__cxx11::basic_string, std::allocator >) (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libhfetch.so) +==18661== by 0xE77A193: construct, std::allocator >&> (new_allocator.h:136) +==18661== by 0xE77A193: construct, std::allocator >&> (alloc_traits.h:475) +==18661== by 0xE77A193: _Sp_counted_ptr_inplace, std::allocator >&> (shared_ptr_base.h:526) +==18661== by 0xE77A193: __shared_count, int&, std::__cxx11::basic_string, std::allocator >&> (shared_ptr_base.h:637) +==18661== by 0xE77A193: __shared_ptr, int&, std::__cxx11::basic_string, std::allocator >&> (shared_ptr_base.h:1295) +==18661== by 0xE77A193: shared_ptr, int&, std::__cxx11::basic_string, std::allocator >&> (shared_ptr.h:344) +==18661== by 0xE77A193: allocate_shared, int&, std::__cxx11::basic_string, std::allocator >&> (shared_ptr.h:691) +==18661== by 0xE77A193: make_shared, std::allocator >&> (shared_ptr.h:707) +==18661== by 0xE77A193: connectCassandra(_object*, _object*) (HCache.cpp:31) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== +==18661== 336 bytes in 1 blocks are possibly lost in loss record 966 of 2,328 +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x40134A6: allocate_dtv (dl-tls.c:286) +==18661== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530) +==18661== by 0x5235227: allocate_stack (allocatestack.c:627) +==18661== by 0x5235227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644) +==18661== by 0x631EEC: PyThread_start_new_thread (in /usr/bin/python3.6) +==18661== by 0x5E1AAD: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x747B9F4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74D8CF1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x54A2C4: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== +==18661== 336 bytes in 1 blocks are possibly lost in loss record 967 of 2,328 +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x40134A6: allocate_dtv (dl-tls.c:286) +==18661== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530) +==18661== by 0x5235227: allocate_stack (allocatestack.c:627) +==18661== by 0x5235227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644) +==18661== by 0x631EEC: PyThread_start_new_thread (in /usr/bin/python3.6) +==18661== by 0x5E1AAD: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x9B32774: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B4D541: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x54A2C4: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== +==18661== 336 bytes in 1 blocks are possibly lost in loss record 968 of 2,328 +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x40134A6: allocate_dtv (dl-tls.c:286) +==18661== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530) +==18661== by 0x5235227: allocate_stack (allocatestack.c:627) +==18661== by 0x5235227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644) +==18661== by 0x631EEC: PyThread_start_new_thread (in /usr/bin/python3.6) +==18661== by 0x5E1AAD: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,007 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x550BF0: PyTuple_New (in /usr/bin/python3.6) +==18661== by 0x4F4625: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F471F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,008 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,009 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0xBECD461: PyArray_NewFromDescr_int (ctors.c:1134) +==18661== by 0xBEC5667: PyArray_View (convert.c:620) +==18661== by 0xBF5C942: array_view (methods.c:286) +==18661== by 0x566FEB: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,010 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,011 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,012 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,013 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x557877: ??? (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,014 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x9B3272A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B35CE5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B7F0A7: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B50B7D: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x9B36F2B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,015 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== +==18661== 520 bytes in 1 blocks are possibly lost in loss record 1,016 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 528 bytes in 1 blocks are possibly lost in loss record 1,033 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x515C35: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 528 bytes in 1 blocks are possibly lost in loss record 1,034 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x514753: ??? (in /usr/bin/python3.6) +==18661== by 0x5673A2: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 528 bytes in 1 blocks are possibly lost in loss record 1,035 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 528 bytes in 1 blocks are possibly lost in loss record 1,036 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 528 bytes in 1 blocks are possibly lost in loss record 1,037 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x557877: ??? (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== 528 bytes in 1 blocks are possibly lost in loss record 1,038 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x557877: ??? (in /usr/bin/python3.6) +==18661== by 0x50C81D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5895E0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== +==18661== 528 bytes in 1 blocks are possibly lost in loss record 1,039 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x9B57A5F: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x747C58D: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== +==18661== 536 bytes in 1 blocks are possibly lost in loss record 1,045 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x549F21: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 536 bytes in 1 blocks are possibly lost in loss record 1,046 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x549F21: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== +==18661== 536 bytes in 1 blocks are possibly lost in loss record 1,047 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5895E0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5F0671: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== +==18661== 536 bytes in 1 blocks are possibly lost in loss record 1,048 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x611DBF: ??? (in /usr/bin/python3.6) +==18661== by 0x61235D: ??? (in /usr/bin/python3.6) +==18661== +==18661== 536 bytes in 1 blocks are possibly lost in loss record 1,049 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50B288: PyEval_EvalCodeEx (in /usr/bin/python3.6) +==18661== by 0x747B813: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486F95: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74BE417: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7572F88: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x75773F1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74DD773: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== 536 bytes in 1 blocks are possibly lost in loss record 1,050 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x7473B28: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== 536 bytes in 1 blocks are possibly lost in loss record 1,051 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 544 bytes in 1 blocks are possibly lost in loss record 1,058 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0xBECD461: PyArray_NewFromDescr_int (ctors.c:1134) +==18661== by 0xBEC5667: PyArray_View (convert.c:620) +==18661== by 0xBF5C942: array_view (methods.c:286) +==18661== by 0x566FEB: _PyCFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5470: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x4B291C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 544 bytes in 1 blocks are possibly lost in loss record 1,059 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x549F21: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== +==18661== 544 bytes in 1 blocks are possibly lost in loss record 1,060 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x549F21: ??? (in /usr/bin/python3.6) +==18661== +==18661== 552 bytes in 1 blocks are possibly lost in loss record 1,070 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x58952A: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 552 bytes in 1 blocks are possibly lost in loss record 1,071 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5F0ADB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== +==18661== 552 bytes in 1 blocks are possibly lost in loss record 1,072 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x7473B28: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74C794C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x75AC164: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== +==18661== 560 bytes in 1 blocks are possibly lost in loss record 1,079 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5F0ADB: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 560 bytes in 1 blocks are possibly lost in loss record 1,080 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 560 bytes in 1 blocks are possibly lost in loss record 1,081 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x58966C: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 560 bytes in 1 blocks are possibly lost in loss record 1,082 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 568 bytes in 1 blocks are possibly lost in loss record 1,087 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DC02: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 568 bytes in 1 blocks are possibly lost in loss record 1,088 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x514753: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 568 bytes in 1 blocks are possibly lost in loss record 1,089 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== 568 bytes in 1 blocks are possibly lost in loss record 1,090 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x9B57A5F: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/connection.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== +==18661== 576 bytes in 1 blocks are possibly lost in loss record 1,276 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DC02: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== +==18661== 584 bytes in 1 blocks are possibly lost in loss record 1,281 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== +==18661== 592 bytes in 1 blocks are possibly lost in loss record 1,286 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 592 bytes in 1 blocks are possibly lost in loss record 1,287 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x747B9AA: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74D8CF1: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x54A2C4: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x7467BF8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x742D221: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x74830AA: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x754BAA4: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== 600 bytes in 1 blocks are possibly lost in loss record 1,291 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x58952A: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x630D8B: PyObject_CallMethod (in /usr/bin/python3.6) +==18661== by 0x638BDD: ??? (in /usr/bin/python3.6) +==18661== by 0x638E51: _Py_InitializeEx_Private (in /usr/bin/python3.6) +==18661== by 0x63916E: Py_Main (in /usr/bin/python3.6) +==18661== +==18661== 600 bytes in 1 blocks are possibly lost in loss record 1,292 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x58952A: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x630D8B: PyObject_CallMethod (in /usr/bin/python3.6) +==18661== +==18661== 600 bytes in 1 blocks are possibly lost in loss record 1,293 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x75AC623: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x594F4B: ??? (in /usr/bin/python3.6) +==18661== by 0x54A2C4: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x74DFFA5: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7486E8A: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x7581B26: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== 608 bytes in 1 blocks are possibly lost in loss record 1,306 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 608 bytes in 1 blocks are possibly lost in loss record 1,307 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F704B: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== 624 bytes in 1 blocks are possibly lost in loss record 1,315 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 624 bytes in 1 blocks are possibly lost in loss record 1,316 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== +==18661== 632 bytes in 1 blocks are possibly lost in loss record 1,318 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 632 bytes in 1 blocks are possibly lost in loss record 1,319 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 640 bytes in 1 blocks are possibly lost in loss record 1,324 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 648 bytes in 1 blocks are possibly lost in loss record 1,329 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x61A5E0: ??? (in /usr/bin/python3.6) +==18661== +==18661== 656 bytes in 1 blocks are possibly lost in loss record 1,332 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54AC00: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 656 bytes in 1 blocks are possibly lost in loss record 1,333 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== 656 bytes in 1 blocks are possibly lost in loss record 1,334 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== +==18661== 672 bytes in 1 blocks are possibly lost in loss record 1,343 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x549F21: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 672 bytes in 1 blocks are possibly lost in loss record 1,344 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 672 bytes in 1 blocks are possibly lost in loss record 1,345 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5896FB: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 672 bytes in 2 blocks are possibly lost in loss record 1,346 of 2,328 +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x40134A6: allocate_dtv (dl-tls.c:286) +==18661== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530) +==18661== by 0x5235227: allocate_stack (allocatestack.c:627) +==18661== by 0x5235227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644) +==18661== by 0x13A78CC0: uv_thread_create (in /usr/lib/x86_64-linux-gnu/libuv.so.1.0.0) +==18661== by 0xEF3DA5F: cass::LoopThread::run() (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0xEF396B4: cass::Session::on_run() (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0xEF3DB07: cass::LoopThread::on_run_internal(void*) (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libcassandra.so.2) +==18661== by 0x52346DA: start_thread (pthread_create.c:463) +==18661== by 0x4F5D88E: clone (clone.S:95) +==18661== +==18661== 696 bytes in 1 blocks are possibly lost in loss record 1,352 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x550BF0: PyTuple_New (in /usr/bin/python3.6) +==18661== by 0x4F4625: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4AA3: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 704 bytes in 1 blocks are possibly lost in loss record 1,355 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 712 bytes in 1 blocks are possibly lost in loss record 1,356 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54AC00: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== +==18661== 712 bytes in 1 blocks are possibly lost in loss record 1,357 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x13838CCB: tbb::internal::padded_allocate(unsigned long, unsigned long) (cache_aligned_allocator.cpp:204) +==18661== by 0x13838DB3: tbb::internal::NFS_Allocate(unsigned long, unsigned long, void*) (cache_aligned_allocator.cpp:190) +==18661== by 0x13831CF5: allocate (cache_aligned_allocator.h:82) +==18661== by 0x13831CF5: tbb::internal::concurrent_queue_base_v3::concurrent_queue_base_v3(unsigned long) (concurrent_queue.cpp:345) +==18661== by 0xE9C3FB3: Writer::Writer(TableMetadata const*, CassSession_*, std::map, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >&) (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libhfetch.so) +==18661== by 0xE9A4EE9: CacheTable::CacheTable(TableMetadata const*, CassSession_*, std::map, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >&) (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libhfetch.so) +==18661== by 0xE9ADFFB: StorageInterface::make_cache(char const*, char const*, std::vector, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >, std::allocator, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > > > >&, std::vector, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >, std::allocator, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > > > >&, std::map, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >&) (in /home/ismael/.local/lib/python3.6/site-packages/Hecuba-0.1.3-py3.6-linux-x86_64.egg/libhfetch.so) +==18661== by 0xE780ED5: hcache_init(HCache*, _object*, _object*) (HCache.cpp:325) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 800 bytes in 1 blocks are possibly lost in loss record 1,370 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x219A6AB8: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/metadata.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x2198C5DB: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/metadata.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x56667A: PyModule_ExecDef (in /usr/bin/python3.6) +==18661== by 0x4FB883: ??? (in /usr/bin/python3.6) +==18661== by 0x567374: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== 808 bytes in 1 blocks are possibly lost in loss record 1,371 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 856 bytes in 1 blocks are possibly lost in loss record 1,382 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 1,016 bytes in 1 blocks are possibly lost in loss record 1,761 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,040 bytes in 2 blocks are possibly lost in loss record 1,774 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,056 bytes in 2 blocks are possibly lost in loss record 1,781 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x50881A: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,066 bytes in 1 blocks are possibly lost in loss record 1,782 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x54603C: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4581: ??? (in /usr/bin/python3.6) +==18661== by 0x4F471F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,080 bytes in 2 blocks are possibly lost in loss record 1,784 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,080 bytes in 2 blocks are possibly lost in loss record 1,785 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,120 bytes in 2 blocks are possibly lost in loss record 1,878 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5757: PyObject_CallFunctionObjArgs (in /usr/bin/python3.6) +==18661== by 0x50DD07: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 1,136 bytes in 2 blocks are possibly lost in loss record 1,881 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x514753: ??? (in /usr/bin/python3.6) +==18661== by 0x5673A2: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== 1,160 bytes in 2 blocks are possibly lost in loss record 1,892 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,160 bytes in 2 blocks are possibly lost in loss record 1,893 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 1,168 bytes in 2 blocks are possibly lost in loss record 1,894 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,184 bytes in 2 blocks are possibly lost in loss record 1,897 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x550BF0: PyTuple_New (in /usr/bin/python3.6) +==18661== by 0x4F4625: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,192 bytes in 2 blocks are possibly lost in loss record 1,898 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x550BF0: PyTuple_New (in /usr/bin/python3.6) +==18661== by 0x4F4625: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A8D: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 1,216 bytes in 2 blocks are possibly lost in loss record 1,901 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F704B: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== 1,224 bytes in 2 blocks are possibly lost in loss record 1,902 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,240 bytes in 2 blocks are possibly lost in loss record 1,904 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,280 bytes in 4 blocks are possibly lost in loss record 1,913 of 2,328 +==18661== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x40134A6: allocate_dtv (dl-tls.c:286) +==18661== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530) +==18661== by 0x5235227: allocate_stack (allocatestack.c:627) +==18661== by 0x5235227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644) +==18661== by 0xC7197E7: blas_thread_init (in /home/ismael/.local/lib/python3.6/site-packages/numpy/.libs/libopenblasp-r0-2ecf47d5.3.7.dev.so) +==18661== by 0xC4EE084: gotoblas_init (in /home/ismael/.local/lib/python3.6/site-packages/numpy/.libs/libopenblasp-r0-2ecf47d5.3.7.dev.so) +==18661== by 0x4010732: call_init (dl-init.c:72) +==18661== by 0x4010732: _dl_init (dl-init.c:119) +==18661== by 0x40151FE: dl_open_worker (dl-open.c:522) +==18661== by 0x4FA32DE: _dl_catch_exception (dl-error-skeleton.c:196) +==18661== by 0x40147C9: _dl_open (dl-open.c:605) +==18661== by 0x544CF95: dlopen_doit (dlopen.c:66) +==18661== by 0x4FA32DE: _dl_catch_exception (dl-error-skeleton.c:196) +==18661== by 0x4FA336E: _dl_catch_error (dl-error-skeleton.c:215) +==18661== +==18661== 1,344 bytes in 2 blocks are possibly lost in loss record 1,923 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x5A6DF9: PyObject_CallFunction (in /usr/bin/python3.6) +==18661== by 0x22549E6C: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== by 0x22755152: ev_invoke_pending (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== by 0x22756044: ev_run (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/.libs/libev-aea52ade.so.4.0.0) +==18661== by 0x2254A00B: ??? (in /home/ismael/.local/lib/python3.6/site-packages/cassandra/io/libevwrapper.cpython-36m-x86_64-linux-gnu.so) +==18661== +==18661== 1,408 bytes in 2 blocks are possibly lost in loss record 1,928 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x5A04CD: PyObject_Call (in /usr/bin/python3.6) +==18661== by 0x50D8F4: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== +==18661== 1,584 bytes in 3 blocks are possibly lost in loss record 1,950 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== 1,632 bytes in 1 blocks are possibly lost in loss record 1,951 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,632 bytes in 1 blocks are possibly lost in loss record 1,952 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,752 bytes in 3 blocks are possibly lost in loss record 1,966 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 1,816 bytes in 2 blocks are possibly lost in loss record 1,970 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x58952A: ??? (in /usr/bin/python3.6) +==18661== +==18661== 2,216 bytes in 4 blocks are possibly lost in loss record 2,050 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 2,280 bytes in 4 blocks are possibly lost in loss record 2,056 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 2,288 bytes in 4 blocks are possibly lost in loss record 2,057 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 2,304 bytes in 4 blocks are possibly lost in loss record 2,062 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 2,392 bytes in 4 blocks are possibly lost in loss record 2,064 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x549F21: ??? (in /usr/bin/python3.6) +==18661== by 0x5516F4: ??? (in /usr/bin/python3.6) +==18661== by 0x5A508B: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x515C74: ??? (in /usr/bin/python3.6) +==18661== by 0x50ABC4: ??? (in /usr/bin/python3.6) +==18661== by 0x50D31F: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 2,400 bytes in 4 blocks are possibly lost in loss record 2,065 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x509646: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5951C0: ??? (in /usr/bin/python3.6) +==18661== by 0x54A11E: ??? (in /usr/bin/python3.6) +==18661== by 0x551760: ??? (in /usr/bin/python3.6) +==18661== by 0x5AA69B: _PyObject_FastCallKeywords (in /usr/bin/python3.6) +==18661== by 0x50AB52: ??? (in /usr/bin/python3.6) +==18661== +==18661== 2,744 bytes in 5 blocks are possibly lost in loss record 2,078 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 2,848 bytes in 5 blocks are possibly lost in loss record 2,081 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 3,064 bytes in 5 blocks are possibly lost in loss record 2,085 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 3,336 bytes in 6 blocks are possibly lost in loss record 2,092 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 3,376 bytes in 6 blocks are possibly lost in loss record 2,098 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 3,408 bytes in 6 blocks are possibly lost in loss record 2,099 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 3,472 bytes in 6 blocks are possibly lost in loss record 2,100 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 3,976 bytes in 7 blocks are possibly lost in loss record 2,109 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x514753: ??? (in /usr/bin/python3.6) +==18661== by 0x5673A2: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 4,752 bytes in 9 blocks are possibly lost in loss record 2,154 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x509360: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== by 0x5115AE: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 5,232 bytes in 9 blocks are possibly lost in loss record 2,169 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 5,280 bytes in 10 blocks are possibly lost in loss record 2,170 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 5,352 bytes in 9 blocks are possibly lost in loss record 2,173 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 5,472 bytes in 9 blocks are possibly lost in loss record 2,174 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x5095D1: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F704B: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== 5,552 bytes in 10 blocks are possibly lost in loss record 2,177 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5AC5E3: ??? (in /usr/bin/python3.6) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== +==18661== 5,680 bytes in 10 blocks are possibly lost in loss record 2,182 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x50A3B2: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5093E4: _PyFunction_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A5400: _PyObject_FastCallDict (in /usr/bin/python3.6) +==18661== by 0x5A643D: _PyObject_CallMethodIdObjArgs (in /usr/bin/python3.6) +==18661== by 0x4F70FC: PyImport_ImportModuleLevelObject (in /usr/bin/python3.6) +==18661== by 0x50E47D: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== +==18661== 5,920 bytes in 10 blocks are possibly lost in loss record 2,184 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== +==18661== 6,392 bytes in 10 blocks are possibly lost in loss record 2,187 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== +==18661== 6,776 bytes in 7 blocks are possibly lost in loss record 2,191 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x58AD4F: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 10,488 bytes in 16 blocks are possibly lost in loss record 2,242 of 2,328 +==18661== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x59FC97: _PyObject_GC_Resize (in /usr/bin/python3.6) +==18661== by 0x50A487: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 13,296 bytes in 15 blocks are possibly lost in loss record 2,252 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x5A4A4A: ??? (in /usr/bin/python3.6) +==18661== by 0x58ACF2: PyFrame_New (in /usr/bin/python3.6) +==18661== by 0x508051: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x50A01F: ??? (in /usr/bin/python3.6) +==18661== +==18661== 44,692 bytes in 23 blocks are possibly lost in loss record 2,293 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x54603C: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4581: ??? (in /usr/bin/python3.6) +==18661== by 0x4F464F: ??? (in /usr/bin/python3.6) +==18661== by 0x4F4A77: ??? (in /usr/bin/python3.6) +==18661== by 0x4F475E: ??? (in /usr/bin/python3.6) +==18661== by 0x4F53E9: ??? (in /usr/bin/python3.6) +==18661== by 0x4FAC86: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== +==18661== 128,793 bytes in 65 blocks are possibly lost in loss record 2,310 of 2,328 +==18661== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==18661== by 0x544B0E: PyUnicode_New (in /usr/bin/python3.6) +==18661== by 0x535CA1: PyUnicode_Substring (in /usr/bin/python3.6) +==18661== by 0x5369D2: ??? (in /usr/bin/python3.6) +==18661== by 0x50A84E: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x509CE7: ??? (in /usr/bin/python3.6) +==18661== by 0x50AA1C: ??? (in /usr/bin/python3.6) +==18661== by 0x50C548: _PyEval_EvalFrameDefault (in /usr/bin/python3.6) +==18661== by 0x5081D4: ??? (in /usr/bin/python3.6) +==18661== by 0x516718: ??? (in /usr/bin/python3.6) +==18661== by 0x5673DD: PyCFunction_Call (in /usr/bin/python3.6) +==18661== +==18661== LEAK SUMMARY: +==18661== definitely lost: 22 bytes in 2 blocks +==18661== indirectly lost: 0 bytes in 0 blocks +==18661== possibly lost: 365,263 bytes in 402 blocks +==18661== still reachable: 11,418,831 bytes in 26,786 blocks +==18661== of which reachable via heuristic: +==18661== newarray : 524,456 bytes in 3 blocks +==18661== suppressed: 0 bytes in 0 blocks +==18661== Reachable blocks (those to which a pointer was found) are not shown. +==18661== To see them, rerun with: --leak-check=full --show-leak-kinds=all +==18661== +==18661== For counts of detected and suppressed errors, rerun with: -v +==18661== ERROR SUMMARY: 25480 errors from 405 contexts (suppressed: 0 from 0) diff --git a/setup.py b/setup.py index 76f20d64..ba617db5 100644 --- a/setup.py +++ b/setup.py @@ -71,8 +71,8 @@ def setup_packages(): # compute which libraries were built metadata = dict(name="Hecuba", version="0.1.3", - package_dir={'hecuba': 'hecuba_py/hecuba', 'storage': 'storageAPI/storage'}, - packages=['hecuba', 'storage'], # find_packages(), + package_dir={'hecuba': 'hecuba_py/hecuba', 'storage': 'storage'}, + packages=['hecuba', 'storage'] + find_packages(), install_requires=['cassandra-driver>=3.7.1', 'numpy>=1.16'], zip_safe=False, data_files=[('', extra_files)], diff --git a/storage/__init__.py b/storage/__init__.py new file mode 100644 index 00000000..790ad612 --- /dev/null +++ b/storage/__init__.py @@ -0,0 +1,9 @@ +from .storage_iface import StorageIface + + +def select_storage_api(): + from .cql_iface.cql_iface import CQLIface + return CQLIface() + + +StorageAPI = select_storage_api() \ No newline at end of file diff --git a/storage/cql_iface/__init__.py b/storage/cql_iface/__init__.py new file mode 100644 index 00000000..1c854eb1 --- /dev/null +++ b/storage/cql_iface/__init__.py @@ -0,0 +1,225 @@ +from cassandra.cluster import Cluster +from cassandra.policies import RetryPolicy, RoundRobinPolicy, TokenAwarePolicy + +from .config import log +from .tests.cassandra_cluster_manager import * + + +# Set default log.handler to avoid "No handler found" warnings. + +class _NRetry(RetryPolicy): + def __init__(self, time_to_retry=5): + self.time_to_retry = time_to_retry + + def on_unavailable(self, query, consistency, required_replicas, alive_replicas, retry_num): + if retry_num > self.time_to_retry: + return self.RETHROW, None + else: + return self.RETHROW, None + + def on_write_timeout(self, query, consistency, write_type, required_responses, received_responses, retry_num): + if retry_num > self.time_to_retry: + return self.RETHROW, None + else: + return self.RETHROW, None + + def on_read_timeout(self, query, consistency, required_responses, received_responses, data_retrieved, retry_num): + if retry_num > self.time_to_retry: + return self.RETHROW, None + else: + return self.RETHROW, None + + +class Config(object): + class __Config: + def __init__(self): + self.configured = False + + instance = __Config() + + @staticmethod + def execute(statement, args): + if not Config.instance.configured: + raise RuntimeError("Not configured to contact cassandra on CQL_Comm storage") + + return Config.instance.session.execute(statement, args) + + def __getattr__(self, item): + return getattr(Config.instance, item) + + def __init__(self): + singleton = Config.instance + if singleton.configured: + log.info('setting down') + return + + singleton.configured = True + + if 'CREATE_SCHEMA' in os.environ: + singleton.id_create_schema = int(os.environ['CREATE_SCHEMA']) + else: + singleton.id_create_schema = -1 + + try: + singleton.nodePort = int(os.environ['NODE_PORT']) + log.info('NODE_PORT: %d', singleton.nodePort) + except KeyError: + log.warn('using default NODE_PORT 9042') + singleton.nodePort = 9042 + + try: + singleton.contact_names = os.environ['CONTACT_NAMES'].split(",") + log.info('CONTACT_NAMES: %s', str.join(" ", singleton.contact_names)) + except KeyError: + log.warn('using default contact point localhost') + singleton.contact_names = ['127.0.0.1'] + + if hasattr(singleton, 'session'): + log.warn('Shutting down pre-existent sessions and cluster') + try: + singleton.session.shutdown() + singleton.cluster.shutdown() + except Exception: + log.warn('error shutting down') + try: + singleton.replication_factor = int(os.environ['REPLICA_FACTOR']) + log.info('REPLICA_FACTOR: %d', singleton.replication_factor) + except KeyError: + singleton.replication_factor = 1 + log.warn('using default REPLICA_FACTOR: %d', singleton.replication_factor) + + try: + user_defined_execution_name = os.environ['EXECUTION_NAME'] + if user_defined_execution_name == 'hecuba': + raise RuntimeError('Error: the application keyspace cannot be \'hecuba\'. ' + 'This keyspace is reserved for storing metadata.') + singleton.execution_name = user_defined_execution_name + log.info('EXECUTION_NAME: %s', singleton.execution_name) + except KeyError: + singleton.execution_name = 'my_app' + log.warn('using default EXECUTION_NAME: %s', singleton.execution_name) + try: + singleton.splits_per_node = int(os.environ['SPLITS_PER_NODE']) + log.info('SPLITS_PER_NODE: %d', singleton.splits_per_node) + except KeyError: + singleton.splits_per_node = 32 + log.warn('using default SPLITS_PER_NODE: %d', singleton.splits_per_node) + + try: + singleton.token_range_size = int(os.environ['TOKEN_RANGE_SIZE']) + log.info('TOKEN_RANGE_SIZE: %d', singleton.token_range_size) + singleton.target_token_range_size = None + except KeyError: + singleton.token_range_size = None + + try: + singleton.target_token_range_size = int(os.environ['TARGET_TOKEN_RANGE_SIZE']) + log.info('TARGET_TOKEN_RANGE_SIZE: %d', singleton.target_token_range_size) + except KeyError: + singleton.target_token_range_size = 64 * 1024 + log.warn('using default TARGET_TOKEN_RANGE_SIZE: %d', singleton.target_token_range_size) + + try: + singleton.max_cache_size = int(os.environ['MAX_CACHE_SIZE']) + log.info('MAX_CACHE_SIZE: %d', singleton.max_cache_size) + except KeyError: + singleton.max_cache_size = 0 # TODO: when the data is inserted into cassandra we should merge the new data and the one that is already in the cache + log.warn('using default MAX_CACHE_SIZE: %d', singleton.max_cache_size) + + try: + singleton.replication_strategy = os.environ['REPLICATION_STRATEGY'] + log.info('REPLICATION_STRATEGY: %s', singleton.replication_strategy) + except KeyError: + singleton.replication_strategy = "SimpleStrategy" + log.warn('using default REPLICATION_STRATEGY: %s', singleton.replication_strategy) + + try: + singleton.replication_strategy_options = os.environ['REPLICATION_STRATEGY_OPTIONS'] + log.info('REPLICATION_STRATEGY_OPTIONS: %s', singleton.replication_strategy_options) + except KeyError: + singleton.replication_strategy_options = "" + log.warn('using default REPLICATION_STRATEGY_OPTIONS: %s', singleton.replication_strategy_options) + + if singleton.replication_strategy is "SimpleStrategy": + singleton.replication = "{'class' : 'SimpleStrategy', 'replication_factor': %d}" % \ + singleton.replication_factor + else: + singleton.replication = "{'class' : '%s', %s}" % ( + singleton.replication_strategy, singleton.replication_strategy_options) + try: + singleton.hecuba_print_limit = int(os.environ['HECUBA_PRINT_LIMIT']) + log.info('HECUBA_PRINT_LIMIT: %s', singleton.hecuba_print_limit) + except KeyError: + singleton.hecuba_print_limit = 1000 + log.warn('using default HECUBA_PRINT_LIMIT: %s', singleton.hecuba_print_limit) + + try: + singleton.prefetch_size = int(os.environ['PREFETCH_SIZE']) + log.info('PREFETCH_SIZE: %s', singleton.prefetch_size) + except KeyError: + singleton.prefetch_size = 10000 + log.warn('using default PREFETCH_SIZE: %s', singleton.prefetch_size) + + try: + singleton.write_buffer_size = int(os.environ['WRITE_BUFFER_SIZE']) + log.info('WRITE_BUFFER_SIZE: %s', singleton.write_buffer_size) + except KeyError: + singleton.write_buffer_size = 1000 + log.warn('using default WRITE_BUFFER_SIZE: %s', singleton.write_buffer_size) + + try: + singleton.write_callbacks_number = int(os.environ['WRITE_CALLBACKS_NUMBER']) + log.info('WRITE_CALLBACKS_NUMBER: %s', singleton.write_callbacks_number) + except KeyError: + singleton.write_callbacks_number = 16 + log.warn('using default WRITE_CALLBACKS_NUMBER: %s', singleton.write_callbacks_number) + + try: + env_var = os.environ['TIMESTAMPED_WRITES'].lower() + singleton.timestamped_writes = False if env_var == 'no' or env_var == 'false' else True + log.info('TIMESTAMPED WRITES ENABLED? {}'.format(singleton.timestamped_writes)) + except KeyError: + singleton.timestamped_writes = True + log.warn('using default TIMESTAMPED_WRITES: %s', singleton.timestamped_writes) + + if singleton.max_cache_size < singleton.write_buffer_size: + import warnings + message = "Defining a MAX_CACHE_SIZE smaller than WRITE_BUFFER_SIZE can result " \ + "in reading outdated results from the persistent storage" + warnings.warn(message) + + log.info('Initializing global session') + + singleton.cluster = Cluster(contact_points=singleton.contact_names, + load_balancing_policy=TokenAwarePolicy(RoundRobinPolicy()), + port=singleton.nodePort, + default_retry_policy=_NRetry(5)) + singleton.session = singleton.cluster.connect() + singleton.session.encoder.mapping[tuple] = singleton.session.encoder.cql_encode_tuple + if singleton.id_create_schema == -1: + queries = [ + "CREATE KEYSPACE IF NOT EXISTS hecuba WITH replication = %s" % singleton.replication, + """CREATE TYPE IF NOT EXISTS hecuba.q_meta( + mem_filter text, + from_point frozen>, + to_point frozen>, + precision float); + """, + 'CREATE TYPE IF NOT EXISTS hecuba.np_meta(dims frozen>,type int,block_id int);', + """CREATE TABLE IF NOT EXISTS hecuba.istorage (storage_id uuid,table_name text, obj_name text, + data_model blob, tokens list>>, PRIMARY KEY(storage_id)); + """] + for query in queries: + try: + singleton.session.execute(query) + except Exception as e: + log.error("Error executing query %s" % query) + raise e + + from hfetch import connectCassandra + # connecting c++ bindings + connectCassandra(singleton.contact_names, singleton.nodePort) + + +# set_up_default_cassandra() +config = Config() diff --git a/storage/cql_iface/config.py b/storage/cql_iface/config.py new file mode 100644 index 00000000..08a08e43 --- /dev/null +++ b/storage/cql_iface/config.py @@ -0,0 +1,44 @@ +import datetime +import decimal +import logging +import os +import uuid +from typing import Tuple + +import numpy + +# User class to Cassandra data type +_hecuba2cassandra_typemap = { + bool: 'boolean', + int: 'int', + float: 'float', + str: 'text', + bytearray: 'blob', + bytes: 'blob', + Tuple: 'tuple', + tuple: 'tuple', + # FrozenSet: 'set', + decimal.Decimal: 'decimal', + datetime.date: 'date', + datetime.datetime: 'timestamp', + datetime.time: 'time', + numpy.int8: 'tinyint', + numpy.int16: 'smallint', + numpy.int64: 'double', + numpy.ndarray: 'hecuba.hnumpy.StorageNumpy', + uuid.UUID: 'uuid' +} + +stderrLogger = logging.StreamHandler() +f = '%(filename)s: %(levelname)s: %(funcName)s(): %(lineno)d:\t%(message)s' +stderrLogger.setFormatter(logging.Formatter(f)) + +log = logging.getLogger('hecuba') +log.addHandler(stderrLogger) + +if 'DEBUG' in os.environ and os.environ['DEBUG'].lower() == "true": + log.setLevel(logging.DEBUG) +elif 'HECUBA_LOG' in os.environ: + log.setLevel(os.environ['HECUBA_LOG'].upper()) +else: + log.setLevel(logging.ERROR) diff --git a/storage/cql_iface/cql_comm.py b/storage/cql_iface/cql_comm.py new file mode 100644 index 00000000..03f82919 --- /dev/null +++ b/storage/cql_iface/cql_comm.py @@ -0,0 +1,120 @@ +import pickle +from typing import Union +from uuid import UUID + +import numpy +from hfetch import Hcache, HNumpyStore + +from . import config +from .config import _hecuba2cassandra_typemap, log +from .queries import istorage_prepared_st, istorage_read_entry, istorage_remove_entry + + +def extract_ksp_table(name): + """ + Method used to obtain keyspace and table from a given name + Args: + name: a string containing keyspace name and table name, or only table name + Returns: + a tuple containing keyspace name and table name + """ + + try: + ksp = name[:name.index('.')] + table = name[len(ksp) + 1:] + except ValueError: + ksp = config.execution_name + table = name + return ksp.lower(), table.lower() + + +class CqlCOMM(object): + + @staticmethod + def register_istorage(obj_id: UUID, table_name: str, obj_name: str, data_model: dict) -> UUID: + row = config.session.execute(istorage_read_entry, [obj_id]) + if not row: + obj_info = [obj_id, table_name, obj_name, pickle.dumps(data_model)] + config.execute(istorage_prepared_st, obj_info) + return obj_id + + @staticmethod + def register_data_model(data_model_id: int, definition: dict) -> None: + # extract keys, values and so on + pass + + @staticmethod + def parse_definition_to_cass_format(fields_dict): + all_values = "" + for k, v in fields_dict.items(): + try: + all_values = all_values + f'{k} {_hecuba2cassandra_typemap[v]}, ' + except KeyError: + try: + check = v.__origin__ + except AttributeError: + check = v + # check if types exist + val = str(v) + all_values = all_values + f'{k} tuple<{", ".join(a.__name__ for a in v)}>, ' + return all_values + + @staticmethod + def create_table(name: str, definition: dict) -> None: + ksp, table = extract_ksp_table(name) + query_keyspace = "CREATE KEYSPACE IF NOT EXISTS %s WITH replication = %s" % (ksp, config.replication) + config.session.execute(query_keyspace) + + primary_keys = definition['value_id'] + columns = definition['fields'] + + pks = str.join(',', primary_keys.keys()) + if definition["type"] is numpy.ndarray: + pks = "(storage_id, cluster_id),block_id" + + all_keys = CqlCOMM.parse_definition_to_cass_format(primary_keys) + if columns: + all_cols = CqlCOMM.parse_definition_to_cass_format(columns) + total_cols = f'{all_keys} {all_cols}' + else: + total_cols = all_keys + + query_table = "CREATE TABLE IF NOT EXISTS %s.%s (%s PRIMARY KEY (%s));" \ + % (ksp, + table, + total_cols, + pks) + try: + log.debug('MAKE PERSISTENCE: %s', query_table) + config.session.execute(query_table) + except Exception as ex: + log.warn("Error creating the table: %s %s", query_table, ex) + raise ex + + @staticmethod + def hcache_parameters_generator(ksp: str, table: str, object_id: UUID, keys: list, columns: list) -> tuple: + hcache_params = (ksp, table, object_id, [(-2 ** 63, 2 ** 63 - 1)], keys, columns, + {'cache_size': config.max_cache_size, + 'writer_par': config.write_callbacks_number, + 'writer_buffer': config.write_buffer_size, + 'timestamped_writes': config.timestamped_writes}) + return hcache_params + + @staticmethod + def create_hcache(object_id: UUID, name: str, definition: dict) -> Union[object, HNumpyStore, Hcache]: + ksp, table = extract_ksp_table(name) + hcache_params = CqlCOMM.hcache_parameters_generator(ksp, table, object_id, list(definition["value_id"].keys()), + list(definition["fields"].keys())) + if definition["type"] is numpy.ndarray: + return HNumpyStore(*hcache_params) + else: + return Hcache(*hcache_params) + + @staticmethod + def delete_data(object_id): + res = config.execute(istorage_read_entry, [object_id]) + if res: + config.execute(istorage_remove_entry, [object_id]) + return True + else: + return False diff --git a/storage/cql_iface/cql_iface.py b/storage/cql_iface/cql_iface.py new file mode 100644 index 00000000..a8ea9e99 --- /dev/null +++ b/storage/cql_iface/cql_iface.py @@ -0,0 +1,196 @@ +import uuid +from typing import List, Generator +from uuid import UUID + +from hecuba.IStorage import IStorage +from .config import _hecuba2cassandra_typemap +from .cql_comm import CqlCOMM +from .queries import istorage_read_entry, istorage_prepared_st +from .tools import generate_token_ring_ranges, config, get_hosts +from ..storage_iface import StorageIface + +""" +Mockup on how the Cassandra implementation of the interface could work. +""" + + +class CQLIface(StorageIface): + hcache_datamodel = [] + # DataModelID - DataModelDef + data_models_cache = {} + # StorageID - DataModelID + object_to_data_model = {} + # Object Name - Cache + hcache_by_name = {} + # Object's class - Cache + hcache_by_class = {} + # StorageID - Cache + hcache_by_id = {} + + def __init__(self): + pass + + @staticmethod + def _check_values_from_definition(definition): + value_iter = None + if isinstance(definition, dict): + value_iter = definition.values() + elif isinstance(definition, (list, set, tuple)): + value_iter = iter(definition) + + if value_iter is not None: + for v in value_iter: + CQLIface._check_values_from_definition(v) + else: + try: + my_type = definition.__origin__ + except AttributeError: + my_type = definition + + if my_type not in _hecuba2cassandra_typemap: + raise TypeError(f"The type {definition} is not supported") + + def add_data_model(self, definition: dict) -> int: + if not isinstance(definition, dict): + raise TypeError("Expected a dict type as a definition") + if not all(name in definition for name in ["type", "value_id", "fields"]): + raise KeyError("Expected keys 'type', 'value_id' and 'fields'") + if not (isinstance(definition["value_id"], dict) and isinstance(definition["fields"], dict)): + raise TypeError("Expected keys 'value_id' and 'fields' to be dict") + if not issubclass(definition["type"], IStorage): + raise TypeError("Class must inherit IStorage") + dm = sorted(definition.items()) + datamodel_id = hash(str(dm)) + try: + self.data_models_cache[datamodel_id] + except KeyError: + dict_definition = {k: definition[k] for k in ('value_id', 'fields')} + CQLIface._check_values_from_definition(dict_definition) + self.data_models_cache[datamodel_id] = definition + CqlCOMM.register_data_model(datamodel_id, definition) + return datamodel_id + + def register_persistent_object(self, datamodel_id: int, pyobject: IStorage) -> UUID: + if not isinstance(pyobject, IStorage): + raise RuntimeError("Class does not inherit IStorage") + elif not pyobject._is_persistent: + raise ValueError("Class needs to be a persistent object, it needs id and name") + elif datamodel_id is None: + raise ValueError("datamodel_id cannot be None") + try: + data_model = self.data_models_cache[datamodel_id] + except KeyError: + raise KeyError("Before making a pyobject persistent, the data model needs to be registered") + object_id = pyobject.getID() + self.object_to_data_model[object_id] = datamodel_id + object_name = pyobject.get_name() + obj_class = pyobject.__class__.__name__ + CqlCOMM.register_istorage(object_id, object_name, obj_class, data_model) + CqlCOMM.create_table(object_name, data_model) + if data_model not in self.hcache_datamodel or object_name not in self.hcache_by_name or object_id not in self.hcache_by_id: + self.hcache_datamodel.append(datamodel_id) + hc = CqlCOMM.create_hcache(object_id, object_name, data_model) + self.hcache_by_class[obj_class] = hc + self.hcache_by_name[object_name] = hc + self.hcache_by_id[object_id] = hc + return object_id + + @staticmethod + def fill_empty_keys_with_None(keys_dict, data_model): + data_model = {k: None for k in data_model.keys()} + return {**data_model, **keys_dict} + + def delete_persistent_object(self, object_id: UUID): + if not isinstance(object_id, UUID): + raise ValueError("The object_id is not an UUID") + return CqlCOMM.delete_data(object_id) + + def put_record(self, object_id: UUID, key_list: dict, value_list: dict) -> None: + if not isinstance(object_id, UUID): + raise ValueError("The object_id is not an UUID") + try: + self.hcache_by_id[object_id] + except KeyError: + raise KeyError("hcache must be registered before in the function register_persistent_object") + if not isinstance(key_list, dict) and not isinstance(value_list, dict): + raise TypeError("key_list and value_list must be OrderedDict") + data_model = self.data_models_cache[self.object_to_data_model[object_id]] + + # for v in value_list: + # try: + # if not isinstance(value_list[v], data_model["fields"][v]) and value_list[v] is not None: + # raise TypeError("The value types don't match the data model specification") + # except TypeError: + # try: + # if not isinstance(value_list[v], data_model["fields"][v].__origin__): + # raise TypeError("The value types don't match the data model specification") + # except AttributeError: + # raise TypeError("The value types don't match the data model specification") + # + # for k in key_list: + # try: + # if not isinstance(key_list[k], data_model["value_id"][k]): + # raise TypeError("The key types don't match the data model specification") + # except TypeError: + # try: + # if not isinstance(key_list[k], data_model["value_id"][k].__origin__): + # raise TypeError("The value types don't match the data model specification") + # except AttributeError: + # raise TypeError("The value types don't match the data model specification") + + values_dict = CQLIface.fill_empty_keys_with_None(value_list, data_model["fields"]) + #try: + self.hcache_by_id[object_id].put_row(list(key_list.values()), list(values_dict.values()), + list(value_list.keys())) + #except Exception: + # raise Exception("key_list or value_list have some parameter that does not correspond with the data model") + + def get_record(self, object_id: UUID, key_list: dict) -> List[object]: + if not isinstance(object_id, UUID): + raise ValueError("The object_id is not an UUID") + try: + self.hcache_by_id[object_id] + except KeyError: + raise KeyError("hcache must be registered before in the function register_persistent_object") + + if not key_list: + raise ValueError("key_list and value_list cannot be None") + try: + result = self.hcache_by_id[object_id].get_row(list(key_list.values())) + except Exception: + result = [] + return result + + def split(self, object_id: UUID, subsets: int) -> Generator[UUID, UUID, None]: + if not isinstance(object_id, UUID): + raise ValueError("The object_id is not an UUID") + if not isinstance(subsets, int): + raise TypeError("subsets parameter should be an integer") + from .tools import tokens_partitions + res = config.execute(istorage_read_entry, [object_id]) + if res: + res = res.one() + else: + raise ValueError("The istorage that identifies the object_id is not registered in the IStorage") + tokens = generate_token_ring_ranges() if not res.tokens else res.tokens + for token_split in tokens_partitions(res.table_name.split('.')[0], res.table_name.split('.')[1], tokens, + subsets): + storage_id = uuid.uuid4() + try: + config.execute(istorage_prepared_st, + [storage_id, res.table_name, res.obj_name + '_block', res.data_model, token_split]) + except Exception: + raise Exception("The IStorage parameters could not be inserted into the IStorage table") + yield storage_id + + def get_data_locality(self, object_id: UUID) -> List[str]: + hosts_list = [] + if not isinstance(object_id, UUID): + raise ValueError("The object_id is not an UUID") + res = config.execute(istorage_read_entry, [object_id]) + if not res.one().tokens: + raise ValueError("The istorage identifies that the object_id is not registered in the IStorage") + tokens = res.one().tokens + hosts = set([get_hosts(worker_partition, res.one().table_name) for worker_partition in tokens]) + hosts_list.append(str(hosts)) + return hosts_list diff --git a/storage/cql_iface/queries.py b/storage/cql_iface/queries.py new file mode 100644 index 00000000..7bb98612 --- /dev/null +++ b/storage/cql_iface/queries.py @@ -0,0 +1,10 @@ +from . import config + +istorage_prepared_st = config.session.prepare('INSERT INTO hecuba.istorage' + '(storage_id, table_name, obj_name, data_model, tokens)' + 'VALUES (?,?,?,?,?)') +istorage_insert_tokens = config.session.prepare('INSERT INTO hecuba.istorage' + '(storage_id, tokens)' + 'VALUES (?,?)') +istorage_remove_entry = config.session.prepare('DELETE FROM hecuba.istorage WHERE storage_id = ?') +istorage_read_entry = config.session.prepare('SELECT * FROM hecuba.istorage WHERE storage_id = ?') diff --git a/hecuba_py/tests/withcassandra/__init__.py b/storage/cql_iface/tests/__init__.py similarity index 100% rename from hecuba_py/tests/withcassandra/__init__.py rename to storage/cql_iface/tests/__init__.py diff --git a/storage/cql_iface/tests/api_tests.py b/storage/cql_iface/tests/api_tests.py new file mode 100644 index 00000000..46cd269e --- /dev/null +++ b/storage/cql_iface/tests/api_tests.py @@ -0,0 +1,1016 @@ +import decimal +import unittest +import uuid +from typing import Tuple, NamedTuple + +import numpy + +from storage.cql_iface.cql_comm import config +from storage.cql_iface.cql_iface import CQLIface +from hecuba.IStorage import IStorage +from storage.cql_iface.tests.mockStorageObj import StorageObj +from storage.cql_iface.tests.mockhdict import StorageDict +from storage.cql_iface.tests.mockhnumpy import StorageNumpy + + +class TestClass(IStorage): + + def __new__(cls, name='', *args, **kwargs): + toret = super(TestClass, cls).__new__(cls, name) + return toret + + def __init__(self, *args, **kwargs): + super(TestClass, self).__init__() + + +class TestClass2(IStorage): + + def __new__(cls, *args, name='', **kwargs): + toret = super(TestClass2, cls).__new__(cls, name) + return toret + + def __init__(self, *args, **kwargs): + super(TestClass2, self).__init__() + + +class mockClass(IStorage): + pass + + +class mockClassNoInherit: + pass + + +class HfetchTests(unittest.TestCase): + + def test_instantiate(self): + result = CQLIface() + self.assertIsNotNone(result) + + def test_add_data_model_except_not_dict_type(self): + with self.assertRaises(TypeError): + data_model = "a" + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + + def test_add_data_model_except_invalid_class(self): + with self.assertRaises(TypeError): + data_model = {"type": "a", "value_id": {"k": str}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + + def test_add_data_model_except_invalid_format(self): + with self.assertRaises(KeyError): + data_model = {"type": mockClass, "": {"k": str}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + + def test_add_data_model_except_not_value_fields_dict_type(self): + with self.assertRaises(TypeError): + data_model = {"type": mockClass, "value_id": [str], "fields": {"a": str}} + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + + def test_add_data_model_except_incorrect_type(self): + with self.assertRaises(TypeError): + data_model = {"type": mockClass, "value_id": {"k": dict}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + + def test_add_data_model_except_incorrect_value_id(self): + with self.assertRaises(TypeError): + data_model = {"type": StorageObj, "value_id": {"k": dict}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + + def test_add_data_model_except_incorrect_inheritance(self): + with self.assertRaises(TypeError): + data_model = {"type": mockClassNoInherit, "value_id": {"k": dict}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + + def test_add_data_different_types(self): + data_model = {"type": mockClass, "value_id": {"k": int}, + "fields": {"a": numpy.int64, "b": numpy.ndarray, "c": uuid.UUID}} + raised = False + try: + storage = CQLIface() + # Register data models + storage.add_data_model(data_model) + except: + raised = True + self.assertFalse(raised, 'Exception raised') + + def test_add_data_model_new(self): + data_model = {"type": mockClass, "value_id": {"k": int}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + id = storage.add_data_model(data_model) + self.assertTrue(storage.data_models_cache[id]) + + def test_add_data_model_StorageObj(self): + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + id = storage.add_data_model(data_model) + self.assertTrue(storage.data_models_cache[id]) + + def test_add_data_model_StorageDict(self): + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + id = storage.add_data_model(data_model) + self.assertTrue(storage.data_models_cache[id]) + + def test_add_data_model_StorageNumpy(self): + data_model = {"type": StorageNumpy, "value_id": {"k": int}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + id = storage.add_data_model(data_model) + self.assertTrue(storage.data_models_cache[id]) + + def test_add_data_model_existing_one(self): + data_model1 = {"type": mockClass, "value_id": {"k": int}, "fields": {"a": str}} + data_model2 = {"type": mockClass, "value_id": {"k": int}, "fields": {"a": str}} + storage = CQLIface() + # Register data models + storage.add_data_model(data_model1) + id2 = storage.add_data_model(data_model1) + self.assertTrue(id2 in storage.data_models_cache) + + def test_add_data_model_complex_types(self): + data_model = {"type": mockClass, "value_id": {"k": decimal.Decimal, "k1": numpy.ndarray}, + "fields": {"k": numpy.unicode, "f": numpy.int64}} + storage = CQLIface() + # Register data models + id = storage.add_data_model(data_model) + self.assertTrue(storage.data_models_cache[id]) + + def test_add_data_model_complex_structure(self): + data_model = {"type": mockClass, + "value_id": {"k": int, "k1": [int], "k2": (int, uuid.UUID), "k3": {"a": float, "b": (bool, int)}}, + "fields": {"f": [str, (str, str)]}} + storage = CQLIface() + # Register data models + id = storage.add_data_model(data_model) + self.assertTrue(storage.data_models_cache[id]) + + def test_register_persistent_except_data_model_id_none(self): + with self.assertRaises(ValueError): + # Setup object + given_name = 'storage_test.custom_obj' + obj = TestClass(name=given_name) + data_model = {"type": mockClass, "value_id": {"k": str}, "fields": {"a": int}} + + # Setup persistent storage + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(None, obj) + + def test_register_persistent_except_data_model_obj_not_istorage(self): + with self.assertRaises(RuntimeError): + # Setup object + obj = mockClassNoInherit() + data_model = {"type": mockClass, "value_id": {"k": str}, "fields": {"a": int}} + # Setup persistent storage + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(None, obj) + + def test_register_persistent_except_data_model_obj_not_persistent(self): + with self.assertRaises(ValueError): + # Setup object + obj = mockClass() + data_model = {"type": mockClass, "value_id": {"k": str}, "fields": {"a": int}} + # Setup persistent storage + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(None, obj) + + def test_register_persistent_except_data_model_not_registered(self): + with self.assertRaises(KeyError): + # Setup object + given_name = 'storage_test.custom_obj' + obj = TestClass(name=given_name) + data_model = {"type": mockClass, "value_id": {"k": str}, "fields": {"a": int}} + + # Setup persistent storage + storage = CQLIface() + storage.register_persistent_object(8, obj) + + def test_register_persistent_obj_dict_ints(self): + given_name = 'storage_test.custom_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + obj = TestClass(name=given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": TestClass, "value_id": {"k": str}, "fields": {"a": int}} + + # Setup persistent storage + storage = CQLIface() + + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + res = config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(myid)).one() + self.assertEqual(res.table_name, name) + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + def test_register_persistent_obj_storage_obj(self): + given_name = 'storage_test.custom_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + obj = TestClass(name=given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": str, "b": str}} + + # Setup persistent storage + storage = CQLIface() + + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + res = config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(myid)).one() + self.assertEqual(res.table_name, name) + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + def test_register_persistent_obj_storage_obj_tuple(self): + given_name = 'storage_test.custom_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + obj = TestClass(name=given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": Tuple[int], "b": str}} + + # Setup persistent storage + storage = CQLIface() + + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + res = config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(myid)).one() + self.assertEqual(res.table_name, name) + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + def test_register_persistent_obj_storage_dict(self): + given_name = 'storage_test.custom_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + obj = TestClass(name=given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": str, "b": str}} + + # Setup persistent storage + storage = CQLIface() + + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + res = config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(myid)).one() + self.assertEqual(res.table_name, name) + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + def test_put_record_except_invalid_uuid(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": float}} + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + storage.put_record("", None, None) + + def test_put_record_except_hcache_not_registered(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": float}} + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.put_record("", None, None) + + def test_put_record_except_key_value_must_be_ordered_dict(self): + with self.assertRaises(TypeError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": float}} + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + storage.put_record(myid, None, None) + + def test_put_record_except_key_not_exist(self): + with self.assertRaises(KeyError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": float}} + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', str), ('d', float)]) + fields = fields(4, 'ab', 3.4)._asdict() + storage.put_record(myid, keys, fields) + + def test_put_record_except_values_not_same_class(self): + with self.assertRaises(Exception): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": float}} + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', str), ('c', int)]) + fields = fields(4, 'ab', 3)._asdict() + storage.put_record(myid, keys, fields) + + def test_put_record_StorageObj(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass2(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', str), ('c', float)]) + fields = fields(44, 'zasd', 8.0)._asdict() + + storage.put_record(myid, keys, fields) + hcache = storage.hcache_by_id[myid] + + returned_values = hcache.get_row([myid]) + + self.assertEqual(len([44, 'zasd', 8.0]), len(returned_values)) + + for val, ret_val in zip([44, 'zasd', 8.0], returned_values): + self.assertAlmostEqual(val, ret_val) + + def test_put_record_StorageObj_val_nones(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass2(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', str), ('c', float)]) + fields = fields(None, None, None)._asdict() + storage.put_record(myid, keys, fields) + + returned_values = [] + hcache = storage.hcache_by_id[myid] + for key in keys.values(): + returned_values.append(hcache.get_row([key])) + + self.assertEqual(len(fields.values()), len(returned_values[0])) + + for val, ret_val in zip(fields.values(), returned_values[0]): + self.assertAlmostEqual(val, ret_val) + + def test_put_record_except_values_fields_not_same_size_as_data_model(self): + with self.assertRaises(Exception): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float), ('d', str)]) + fields = fields(4, 'hola', 3.8, 'adeu')._asdict() + + storage.put_record(myid, keys, fields) + + returned_values = [] + hcache = storage.hcache_by_id[myid] + for key in keys.values(): + returned_values.append(hcache.get_row([key])) + + self.assertEqual(len(fields.values()), len(returned_values[0])) + + for val, ret_val in zip(fields.values(), returned_values[0]): + self.assertAlmostEqual(val, ret_val) + + def test_put_record_except_keys_not_mach_data_model_type(self): + with self.assertRaises(Exception): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('z', int), ('b', 'name'), ('c', float)]) + fields = fields(4, 'hola', 3.8)._asdict() + + storage.put_record(myid, keys, fields) + + returned_values = [] + hcache = storage.hcache_by_id[myid] + for key in keys.values(): + returned_values.append(hcache.get_row([key])) + + self.assertEqual(len(fields.values()), len(returned_values[0])) + + for val, ret_val in zip(fields.values(), returned_values[0]): + self.assertAlmostEqual(val, ret_val) + + def test_put_record_except_values_not_mach_data_model_type(self): + with self.assertRaises(Exception): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(4, 'hola', 'adeu')._asdict() + + storage.put_record(myid, keys, fields) + + returned_values = [] + hcache = storage.hcache_by_id[myid] + for key in keys.values(): + returned_values.append(hcache.get_row([key])) + + self.assertEqual(len(fields.values()), len(returned_values[0])) + + for val, ret_val in zip(fields.values(), returned_values[0]): + self.assertAlmostEqual(val, ret_val) + + def test_put_record_except_values_not_mach_data_model_type(self): + with self.assertRaises(KeyError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(4, 'hola', 'adeu')._asdict() + + storage.put_record(uuid.UUID('123e4567-0000-0000-0000-426655440000'), keys, fields) + + def test_put_record_StorageDict(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(4, 'hola', 3.8)._asdict() + + storage.put_record(myid, keys, fields) + + returned_values = [] + hcache = storage.hcache_by_id[myid] + for key in keys.values(): + returned_values.append(hcache.get_row([key])) + + self.assertEqual(len(fields.values()), len(returned_values[0])) + + for val, ret_val in zip(fields.values(), returned_values[0]): + self.assertAlmostEqual(val, ret_val) + + def test_put_record_StorageDict_with_val_nones(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(None, None, None)._asdict() + + storage.put_record(myid, keys, fields) + + returned_values = [] + hcache = storage.hcache_by_id[myid] + for key in keys.values(): + returned_values.append(hcache.get_row([key])) + + self.assertEqual(len(fields.values()), len(returned_values[0])) + + for val, ret_val in zip(fields.values(), returned_values[0]): + self.assertAlmostEqual(val, ret_val) + + def test_register_persistent_obj_storage_numpy(self): + given_name = 'storage_test.custom_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + obj = TestClass(name=given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": StorageNumpy, "value_id": {"k": int}, "fields": {"a": str, "b": str}} + + # Setup persistent storage + storage = CQLIface() + + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + res = config.session.execute("SELECT * FROM hecuba.istorage WHERE storage_id={}".format(myid)).one() + self.assertEqual(res.table_name, name) + + def test_get_record_except_invalid_uuid(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(4, 'hola', 3.8)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', str)]) + keys = keys('hola')._asdict() + storage.get_record('invalid', keys) + + def test_get_record_except_hcache_not_registered(self): + with self.assertRaises(KeyError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + storage = CQLIface() + storage.hcache_by_id.pop(myid, None) + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + storage.get_record(myid, keys) + + def test_get_record_except_invalid_keys(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(4, 'hola', 3.8)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', str)]) + keys = keys('hola')._asdict() + storage.get_record(myid, None) + + def test_get_record_except_invalid_keys_size(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(4, 'hola', 3.8)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', str), ('a', str)]) + keys = keys('hola', 'abc')._asdict() + result = storage.get_record(myid, keys) + self.assertEqual(result, []) + + def test_get_record(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": int}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', str), ('c', int)]) + fields = fields(4, 'hola', 4)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + result = storage.get_record(myid, keys) + self.assertEqual(result, [4, 'hola', 4]) + + def test_get_record_tuple(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": Tuple[int, int], "c": int}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', Tuple[int, int]), ('c', int)]) + fields = fields(4, (6, 6), 4)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + result = storage.get_record(myid, keys) + self.assertEqual(result, [4, (6, 6), 4]) + + def test_get_record_except_key_not_uuid(self): + with self.assertRaises(Exception): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": int}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', str), ('c', int)]) + fields = fields(4, 'abc', 4)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys('abc')._asdict() + result = storage.get_record(myid, keys) + self.assertEqual(result, [4, 'abc', 4]) + + def test_get_record_so(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, "fields": {"a": int, "b": str, "c": int}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', str), ('c', int)]) + fields = fields(4, 'abc', 4)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + result = storage.get_record(myid, keys) + self.assertEqual(result, [4, 'abc', 4]) + + def test_get_record_tuple_so(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageObj, "value_id": {"k": uuid.UUID}, + "fields": {"a": int, "b": Tuple[int], "c": int}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', Tuple[int]), ('c', int)]) + fields = fields(4, (6,), 4)._asdict() + + storage.put_record(myid, keys, fields) + keys = NamedTuple('keys', [('k', uuid.UUID)]) + keys = keys(myid)._asdict() + result = storage.get_record(myid, keys) + self.assertEqual(result, [4, (6, 6), 4]) + + def test_put_record_StorageDict_split_except_uuid_wrong_format(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k1": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k1', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(None, None, None)._asdict() + + storage.put_record(myid, keys, fields) + for partition in storage.split(4, 8): + for val in partition.keys(): + print(val) + + def test_put_record_StorageDict_split_except_subsets_wrong_type(self): + with self.assertRaises(TypeError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k1": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k1', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(None, None, None)._asdict() + + storage.put_record(myid, keys, fields) + for partition in storage.split(myid, 4.8): + for val in partition.keys(): + print(val) + + def test_put_record_StorageDict_split_and_get_data_locality_except_None(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(1, 'a', 3.0)._asdict() + + storage.put_record(myid, keys, fields) + parts = [] + for partition in storage.split(myid, 9): + parts.append(partition) + self.assertTrue(storage.get_data_locality(None)) + + def test_put_record_StorageDict_split_and_get_data_locality_except(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(1, 'a', 3.0)._asdict() + + storage.put_record(myid, keys, fields) + parts = [] + for partition in storage.split(myid, 9): + parts.append(partition) + self.assertTrue(storage.get_data_locality(myid)) + + def test_put_record_StorageDict_split_and_get_data_locality_except_wrong_UUID(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(1, 'a', 3.0)._asdict() + + storage.put_record(myid, keys, fields) + parts = [] + for partition in storage.split(uuid.UUID('123e4567-e89b-12d3-a456-426655440000'), 9): + parts.append(partition) + self.assertTrue(storage.get_data_locality(myid)) + + def test_put_record_StorageDict_split_and_get_data_locality_except_wrong_UUID_2(self): + with self.assertRaises(TypeError): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(1, 'a', 3.0)._asdict() + + storage.put_record(myid, {'k': '3'}, fields) + + def test_put_record_StorageDict_split_and_get_data_locality(self): + given_name = 'storage_test.complex_obj' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + obj = TestClass(name=given_name) + myid = obj.getID() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": int, "b": str, "c": float}} + given_name = 'storage_test.dict' + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', int), ('b', 'name'), ('c', float)]) + fields = fields(1, 'a', 3.0)._asdict() + + storage.put_record(myid, keys, fields) + parts = [] + for partition in storage.split(myid, 9): + parts.append(partition) + self.assertTrue(storage.get_data_locality(parts[0])) + + def test_delete_persistent_except_object_id_not_uuid(self): + with self.assertRaises(ValueError): + given_name = 'storage_test.dict' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + # Setup object + obj = TestClass(given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": StorageNumpy, "value_id": {"k": int}, "fields": {"a": str, "b": str}} + + # Setup persistent storage + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + + storage.register_persistent_object(data_model_id, obj) + + storage.delete_persistent_object('exc') + + def test_delete_persistent_object_return_false(self): + given_name = 'storage_test.dict' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + # Setup object + obj = TestClass(given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": str, "b": str}} + + # Setup persistent storage + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', str), ('b', str)]) + fields = fields('a', 'a')._asdict() + + storage.put_record(myid, keys, fields) + self.assertFalse(storage.delete_persistent_object(uuid.UUID('123e4567-0000-0000-0000-426655440000'))) + + def test_delete_persistent_object_return_true(self): + given_name = 'storage_test.dict' + config.session.execute("DROP TABLE IF EXISTS {}".format(given_name)) + + # Setup object + obj = TestClass(given_name) + myid = obj.getID() + name = obj.get_name() + data_model = {"type": StorageDict, "value_id": {"k": int}, "fields": {"a": str, "b": str}} + + # Setup persistent storage + storage = CQLIface() + data_model_id = storage.add_data_model(data_model) + + storage.register_persistent_object(data_model_id, obj) + + keys = NamedTuple('keys', [('k', int)]) + keys = keys(8)._asdict() + fields = NamedTuple('fields', [('a', str), ('b', str)]) + fields = fields('a', 'a')._asdict() + + storage.put_record(myid, keys, fields) + self.assertTrue(storage.delete_persistent_object(myid)) + + +if __name__ == "__main__": + unittest.main() diff --git a/storage/cql_iface/tests/cassandra_cluster_manager.py b/storage/cql_iface/tests/cassandra_cluster_manager.py new file mode 100644 index 00000000..a155b0ca --- /dev/null +++ b/storage/cql_iface/tests/cassandra_cluster_manager.py @@ -0,0 +1,56 @@ +import atexit +import ccmlib.cluster +import os +import sys +import tempfile +import logging + +from distutils.util import strtobool + +class TestConfig: + pass + + +test_config = TestConfig() +test_config.n_nodes = int(os.environ.get('TEST_CASSANDRA_N_NODES', '2')) +TEST_DEBUG = strtobool(os.environ.get("TEST_DEBUG", "True").lower()) +if TEST_DEBUG: + logging.warning(("You are using TEST_DEBUG=True, a Cassandra cluster must be already running. " + "Keep in mind that the results of the test might be altered by data already existing.")) + + +def set_ccm_cluster(): + global test_config + test_config.ccm_cluster = ccmlib.cluster.Cluster( + tempfile.mkdtemp("tmp_data"), + 'hecuba_test', + cassandra_version=os.environ.get('TEST_CASSANDRA_VERSION', '3.11.4')) + + +def set_up_default_cassandra(): + global test_config + if hasattr(test_config, "ccm_cluster") and any( + map(lambda node: node.is_live(), test_config.ccm_cluster.nodes.values())): + return + + set_ccm_cluster() + try: + test_config.ccm_cluster.populate(test_config.n_nodes).start(allow_root=True,jvm_args=["-Xss512k"]) + except Exception as a: + if TEST_DEBUG: + logging.warning("TEST_DEBUG: ignoring exception") + else: + raise a + + +@atexit.register +def turning_down_cassandra(): + global test_config + if test_config is None or not hasattr(test_config, "ccm_cluster"): + return + + test_config.ccm_cluster.stop() + test_config.ccm_cluster.clear() + + +set_up_default_cassandra() diff --git a/storage/cql_iface/tests/mockIStorage.py b/storage/cql_iface/tests/mockIStorage.py new file mode 100644 index 00000000..29e9f8db --- /dev/null +++ b/storage/cql_iface/tests/mockIStorage.py @@ -0,0 +1,98 @@ +import uuid +from collections import namedtuple + + +class AlreadyPersistentError(RuntimeError): + pass + + +class DataModelNode(object): + def __init__(self, name=None, class_name=None, args=None): + self.name = name + self.class_name = class_name + self.args = args + + +def storage_id_from_name(name): + return uuid.uuid3(uuid.NAMESPACE_DNS, name) + + +class IStorage(object): + args_names = ["storage_id"] + args = namedtuple("IStorage", args_names) + _build_args = args(storage_id="") + + def getID(self): + return self.__storage_id + + def setID(self, st_id): + if st_id is not None and not isinstance(st_id, uuid.UUID): + raise TypeError("Storage ID must be an instance of UUID") + self.__storage_id = st_id + + storage_id = property(getID, setID) + + def __new__(cls, name='', *args, **kwargs): + toret = super(IStorage, cls).__new__(cls) + toret._ksp = '' + toret._table = '' + toret._is_persistent = False + toret.__storage_id = None + toret._name = '' + storage_id = kwargs.get('storage_id', None) + + if storage_id is None and name: + storage_id = storage_id_from_name(name) + + if name or storage_id: + toret.setID(storage_id) + toret.set_name(name) + toret._is_persistent = True + return toret + + def __eq__(self, other): + """ + Method to compare a IStorage object with another one. + Args: + other: IStorage to be compared with. + Returns: + boolean (true - equals, false - not equals). + """ + return self.__class__ == other.__class__ and self.getID() == other.getID() + + def is_persistent(self): + return self.getID() is not None and self.get_name() is not None + + @staticmethod + def _store_meta(storage_args): + pass + + def make_persistent(self, name): + # if not self.storage_id: + # self.storage_id = storage_id_from_name(name) + self._is_persistent = True + self._name = name + + def stop_persistent(self): + self.storage_id = None + self._is_persistent = False + + def delete_persistent(self): + self.storage_id = None + self._is_persistent = False + + def split(self): + """ + Method used to divide an object into sub-objects. + Returns: + a subobject everytime is called + """ + raise NotImplemented("Split not supported yet") + + def set_name(self, name): + if not isinstance(name, str): + raise TypeError("Name -{}- should be an instance of str".format(str(name))) + self._name = name + + def get_name(self): + return self._name diff --git a/storage/cql_iface/tests/mockStorageObj.py b/storage/cql_iface/tests/mockStorageObj.py new file mode 100644 index 00000000..23cffcb3 --- /dev/null +++ b/storage/cql_iface/tests/mockStorageObj.py @@ -0,0 +1,29 @@ +from storage.cql_iface.tests.mockIStorage import IStorage + + +class StorageObj(IStorage): + """ + This class is where information will be stored in Hecuba. + The information can be in memory, stored in a python dictionary or local variables, or saved in a + DB(Cassandra), depending on if it's persistent or not. + """ + + def __new__(cls, *args, name='', **kwargs): + toret = super(StorageObj, cls).__new__(cls) + + return toret + + def __init__(self, *args, **kwargs): + """ + Creates a new storageobj. + Args: + name (string): the name of the Cassandra Keyspace + table where information can be found + tokens (list of tuples): token ranges assigned to the new StorageObj + storage_id (string): an unique storageobj identifier + istorage_props dict(string,string): a map with the storage id of each contained istorage object. + kwargs: more optional parameters + """ + # Assign private attributes + # if self._is_persistent: + # self._load_attributes() + super(StorageObj, self).__init__() diff --git a/storage/cql_iface/tests/mockhdict.py b/storage/cql_iface/tests/mockhdict.py new file mode 100644 index 00000000..f9806615 --- /dev/null +++ b/storage/cql_iface/tests/mockhdict.py @@ -0,0 +1,23 @@ +from storage.cql_iface.tests.mockIStorage import IStorage + +class StorageDict(IStorage, dict): + # """ + # Object used to access data from workers. + # """ + + def __new__(cls, *args, name='', **kwargs): + """ + Creates a new StorageDict. + + Args: + name (string): the name of the collection/table (keyspace is optional) + storage_id (string): the storage id identifier + args: arguments for base constructor + kwargs: arguments for base constructor + """ + toret = super(StorageDict, cls).__new__(cls, kwargs) + return toret + + def __init__(self, *args, **kwargs): + super().__init__(**kwargs) + diff --git a/storage/cql_iface/tests/mockhnumpy.py b/storage/cql_iface/tests/mockhnumpy.py new file mode 100644 index 00000000..2051271c --- /dev/null +++ b/storage/cql_iface/tests/mockhnumpy.py @@ -0,0 +1,67 @@ +from collections import namedtuple +import numpy as np + +from storage.cql_iface.tests.mockIStorage import IStorage + + +class StorageNumpy(IStorage, np.ndarray): + + _build_args = None + _class_name = None + _hcache_params = None + _hcache = None + _ksp = "" + _table = "" + _block_id = None + + args_names = ["storage_id", "class_name", "name", "shape", "dtype", "block_id", "built_remotely"] + args = namedtuple('StorageNumpyArgs', args_names) + + def __new__(cls, input_array=None, storage_id=None, name=None, built_remotely=False, **kwargs): + if input_array is None and name and storage_id is not None: + result = cls.load_array(storage_id) + input_array = result[0] + obj = np.asarray(input_array).view(cls) + obj._name = name + obj.storage_id = storage_id + obj._is_persistent = True + elif not name and storage_id is not None: + raise RuntimeError("hnumpy received storage id but not a name") + elif (input_array is not None and name and storage_id is not None) \ + or (storage_id is None and name): + obj = np.asarray(input_array).view(cls) + obj.storage_id = storage_id + obj._is_persistent = False + obj.make_persistent(name) + else: + obj = np.asarray(input_array).view(cls) + obj.storage_id = storage_id + obj._is_persistent = storage_id is not None + # Finally, we must return the newly created object: + obj._built_remotely = built_remotely + obj._class_name = '%s.%s' % (cls.__module__, cls.__name__) + return obj + + def __init__(self, *args, **kwargs): + super(StorageNumpy, self).__init__() + + @staticmethod + def load_array(storage_id): + #storage.StorageAPI.get_records(storage_id) + ''' + (ksp, table) = extract_ks_table(name) + hcache_params = (ksp, table, + storage_id, [], ['storage_id', 'cluster_id', 'block_id'], + [{'name': "payload", 'type': 'numpy'}], + {'cache_size': config.max_cache_size, + 'writer_par': config.write_callbacks_number, + 'write_buffer': config.write_buffer_size, + 'timestamped_writes': config.timestamped_writes}) + hcache = HNumpyStore(*hcache_params) + result = hcache.get_numpy([storage_id]) + if len(result) == 1: + return [result[0], hcache, hcache_params] + else: + raise KeyError + ''' + return [np.zeros(())] diff --git a/storage/cql_iface/tools.py b/storage/cql_iface/tools.py new file mode 100644 index 00000000..e4297baf --- /dev/null +++ b/storage/cql_iface/tools.py @@ -0,0 +1,217 @@ +import uuid + +from cassandra.metadata import Token + +from . import config + +valid_types = ['counter', 'text', 'boolean', 'decimal', 'double', 'int', 'list', 'set', 'map', 'bigint', 'blob', + 'tuple', 'dict', 'float', 'numpy.ndarray'] + +basic_types = valid_types[:-1] + + +def storage_id_from_name(name): + return uuid.uuid3(uuid.NAMESPACE_DNS, name) + + +def process_path(module_path): + """ + Method to obtain module and class_name from a module path + Args: + module_path(String): path in the format module.class_name + Returns: + tuple containing class_name and module + """ + + if module_path == 'numpy.ndarray': + return 'StorageNumpy', 'hecuba.hnumpy' + if module_path == 'StorageDict': + return 'StorageDict', 'hecuba.hdict' + last = 0 + for key, i in enumerate(module_path): + if i == '.' and key > last: + last = key + module = module_path[:last] + class_name = module_path[last + 1:] + return class_name, module + + +""" + Cassandra related methods +""" + +_size_estimates = config.session.prepare(("SELECT mean_partition_size, partitions_count " + "FROM system.size_estimates WHERE keyspace_name=? and table_name=?")) +_max_token = int(((2 ** 63) - 1)) # type: int +_min_token = int(-2 ** 63) # type: int + +_select_istorage_meta = config.session.prepare("SELECT * FROM hecuba.istorage WHERE storage_id = ?") + + +def extract_ks_tab(name): + """ + Method used to obtain keyspace and table from a given name + Args: + name: a string containing keyspace name and table name, or only table name + Returns: + a tuple containing keyspace name and table name + """ + if not name: + return None, None + + sp = name.split(".") + if len(sp) == 2: + ksp = sp[0] + table = sp[1] + else: + ksp = config.execution_name + table = name + return ksp.lower(), table.lower() + + +def tokens_partitions(ksp, table, tokens_ranges, subsets): + """ + Method that calculates the new token partitions for a given object + Args: + tokens: current number of tokens of the object + min_tokens_per_worker: defined minimum number of tokens + number_of_workers: defined + Returns: + a partition every time it's called + :type tokens_ranges: list[(long,long)] + """ + from collections import defaultdict + from bisect import bisect_right + from cassandra.metadata import Murmur3Token + + splits_per_node = config.splits_per_node + token_range_size = config.token_range_size + target_token_range_size = config.target_token_range_size + + tm = config.cluster.metadata.token_map + tmap = tm.tokens_to_hosts_by_ks.get(ksp, None) + + tokens_murmur3 = map(lambda a: (Murmur3Token(a[0]), a[1]), tokens_ranges) + if not tmap: + tm.rebuild_keyspace(ksp, build_if_absent=True) + tmap = tm.tokens_to_hosts_by_ks[ksp] + + tokens_per_node = defaultdict(list) + for tmumur, t_to in tokens_murmur3: + point = bisect_right(tm.ring, tmumur) + if point == len(tm.ring): + tokens_per_node[tmap[tm.ring[0]][0]].append((tmumur.value, t_to)) + else: + tokens_per_node[tmap[tm.ring[point]][0]].append((tmumur.value, t_to)) + + n_nodes = len(tokens_per_node) + step_size = _max_token // subsets + if token_range_size: + step_size = token_range_size + elif target_token_range_size: + one = config.session.execute(_size_estimates, [ksp, table]).one() + if one: + (mean_p_size, p_count) = one + estimated_size = mean_p_size * p_count + if estimated_size > 0: + step_size = _max_token // ( + max(estimated_size / target_token_range_size, + subsets) + ) + + for tokens_in_node in tokens_per_node.values(): + partition = [] + for fraction, to in tokens_in_node: + while fraction < to - step_size: + partition.append((fraction, fraction + step_size)) + fraction += step_size + partition.append((fraction, to)) + group_size = max(len(partition) // (subsets // n_nodes), 1) + for i in range(0, len(partition), group_size): + yield partition[i:i + group_size] + + +def generate_token_ring_ranges(): + ring = config.cluster.metadata.token_map.ring + tokens = [token.value for token in ring] + return discrete_token_ranges(tokens) + + +def get_hosts(tokens, table_name): + tm = config.cluster.metadata.token_map + hosts = set() + for token in tokens: + t = Token(token) + hosts.add(tm.get_replicas(table_name.split('.')[0], t)[0]) + return list(hosts)[0] + + +def discrete_token_ranges(tokens): + """ + Makes proper tokens ranges ensuring that in a tuple (a,b) a <= b + Args: + tokens: a list of tokens [1, 0, 10] + Returns: + a rationalized list [(-1, 0),(0,10),(10, max)] + """ + tokens.sort() + if len(tokens) == 0: + return tokens + if tokens[0] > _min_token: + token_ranges = [(_min_token, tokens[0])] + else: + token_ranges = [] + n_tns = len(tokens) + for i in range(0, n_tns - 1): + token_ranges.append((tokens[i], tokens[i + 1])) + token_ranges.append((tokens[n_tns - 1], _max_token)) + return token_ranges + + +def count_name_collision(ksp, table, attribute): + import re + m = re.compile("^%s_%s(_[0-9]+)?$" % (table, attribute)) + q = config.session.execute("SELECT table_name FROM system_schema.tables WHERE keyspace_name = %s", + [ksp]) + return sum(1 for elem in q if m.match(elem[0])) + + +def get_istorage_attrs(storage_id): + return list(config.session.execute(_select_istorage_meta, [storage_id])) + + +def build_remotely(args): + """ + Takes the information which consists of at least the type, + :raises TypeError if the object class doesn't subclass IStorage + :param obj_info: Contains the information to be used to create the IStorage obj + :return: An IStorage object + """ + if "built_remotely" not in args.keys(): + built_remotely = True + else: + built_remotely = args["built_remotely"] + + obj_type = args.get('class_name', args.get('type', None)) + if obj_type is None: + raise TypeError("Trying to build an IStorage obj without giving the type") + + # Import the class defined by obj_type + cname, module = process_path(obj_type) + + ''' + if obj_type == str(StorageNumpy.__class__): + return StorageNumpy(name=args["name"], storage_id=args["storage_id"]) + ''' + try: + mod = __import__(module, globals(), locals(), [cname], 0) + except ValueError: + raise ValueError("Can't import class {} from module {}".format(cname, module)) + + imported_class = getattr(mod, cname) + + args = {k: v for k, v in args.items() if k in imported_class.args_names} + args.pop('class_name', None) + args["built_remotely"] = built_remotely + + return imported_class(**args) diff --git a/storage/storage_iface.py b/storage/storage_iface.py new file mode 100644 index 00000000..53ee7a5c --- /dev/null +++ b/storage/storage_iface.py @@ -0,0 +1,60 @@ +from abc import ABCMeta, abstractmethod +from typing import List, Generator +from uuid import UUID +from storage.cql_iface.tests.mockIStorage import IStorage + +class StorageIface(metaclass=ABCMeta): + @abstractmethod + def add_data_model(self, definition: dict) -> int: + """ + Registers a data model describing the data format that will be passed and retrieved from storage. + :param definition: Describes a data model that will be used to fetch and store data + :return: data_model_id: Unique identifier to refer to the data model + """ + pass + + @abstractmethod + def register_persistent_object(self, datamodel_id: int, pyobject: IStorage) -> UUID: + """ + Informs the storage that the Hecuba object `pyobject` will be storing and accessing data + using the data model identified by `datamodel_id`. Returns a unique identifier to identify the object. + If the object has been previously registered nothing happens and its ID is returned. + :param datamodel_id: Identifier of a previously registered data model + :param pyobject: Hecuba persistent object to register with the persistent storage. + :return: object_id: UUID to reference and identify the pyobject in the future. + + """ + pass + + @abstractmethod + def put_record(self, object_id: UUID, key_list: dict, value_list: dict) -> None: + """ + Stores the records contained in value_list, which correspond to the keys in key_list + for the Hecuba object referenced by `object_id`. + :param object_id: Hecuba object identifier + :param key_list: List with the keys of the records to be stored. + :param value_list: List with the records to be stored. + :return: - + """ + pass + + @abstractmethod + def get_record(self, object_id: UUID, key_list: dict) -> List[object]: + """ + Returns a list with the records corresponding to the key_list for the Hecuba object referenced by `object_id`. + :param object_id: Hecuba object identifier + :param key_list: List with the keys of the records to be retrieved. + :return: List of the records corresponding to the keys contained in key_list + """ + pass + + @abstractmethod + def split(self, object_id: UUID, subsets: int) -> Generator[UUID, UUID, None]: + """ + Partitions the data of the Hecuba object referenced by `object_id` following the same data model. + Each partition is assigned an UUID. + :param object_id: Hecuba object identifier + :return: Yield an `object_id` referencing a subset of the data. + """ + pass + diff --git a/storageAPI/storage/__init__.py b/storageAPI/storage/__init__.py deleted file mode 100755 index e69de29b..00000000 diff --git a/storageAPI/storage/api.py b/storageAPI/storage/api.py deleted file mode 100755 index 4ecd4fbf..00000000 --- a/storageAPI/storage/api.py +++ /dev/null @@ -1,109 +0,0 @@ -import uuid - - -def init(config_file_path=None): - """ - Function that can be useful when running the application with COMPSs >= 2.0 - It is executed at the beginning of the application - """ - pass - - -def finish(): - """ - Function that can be useful when running the application with COMPSs >= 2.0 - It is executed at the end of the application - """ - pass - - -def initWorker(config_file_path=None): - """ - Function that can be useful when running the application with COMPSs >= 2.0 - It is executed at the beginning of the application - """ - pass - - -def finishWorker(): - """ - Function that can be useful when running the application with COMPSs >= 2.0 - It is executed at the end of the application - """ - pass - - -def start_task(params): - """ - Initializes, if needed, the global vars for prefetch and batch, and starts the context if batch is activated - Args: - params: a list of objects (Blocks, StorageObjs, strings, ints, ...) - """ - pass - - -def end_task(params): - """ - Terminates, if needed, the context (to save all data remaining in the batch) and the prefetch. It also prints - the statistics of the StorageObjs if desired. - Args: - params: a list of objects (Blocks, StorageObjs, strings, ints, ...) - """ - pass - - -class TaskContext(object): - def __init__(self, logger, values, **kwargs): - self.logger = logger - self.values = values - - def __enter__(self): - # Do something prolog - start_task(self.values) - # Ready to start the task - self.logger.info("Prolog finished") - pass - - def __exit__(self, type, value, traceback): - # Do something epilog - end_task(self.values) - # Finished - self.logger.info("Epilog finished") - pass - - -def getByID(objid): - """ - We rebuild the object from its id. - - Args: - objid (str): object identifier - - Returns: - Hecuba Object - - """ - """ - TODO - Args: - objid (str): object identifier - Returns: - (Block| Storageobj) - """ - from hecuba import log - from hecuba.IStorage import build_remotely - from hecuba import config - - query = "SELECT * FROM hecuba.istorage WHERE storage_id = %s" - - if isinstance(objid, str): - objid = uuid.UUID(objid) - - results = config.session.execute(query, [objid]) - if not results: - raise RuntimeError("Object {} not found on hecuba.istorage".format(objid)) - - results = results[0] - - log.debug("IStorage API:getByID(%s) of class %s", objid, results.class_name) - return build_remotely(results._asdict()) diff --git a/storageAPI/storageItf/.gitignore b/storageAPI/storageItf/.gitignore deleted file mode 100644 index a32a599c..00000000 --- a/storageAPI/storageItf/.gitignore +++ /dev/null @@ -1,66 +0,0 @@ -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/dictionaries - -# Sensitive or high-churn files: -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.xml -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml - -# Gradle: -.idea/**/gradle.xml -.idea/**/libraries - -# Mongo Explorer plugin: -.idea/**/mongoSettings.xml - -## File-based project format: -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties diff --git a/storageAPI/storageItf/pom.xml b/storageAPI/storageItf/pom.xml deleted file mode 100644 index 71e21273..00000000 --- a/storageAPI/storageItf/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - 4.0.0 - storage.StorageItf - StorageItf - jar - 1.0 - StorageItf - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - com.datastax.cassandra - cassandra-driver-core - 3.1.0 - - - com.googlecode.json-simple - json-simple - 1.1 - - - com.google.code.gson - gson - 2.2.4 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.5.1 - - 1.8 - 1.8 - true - 1g - 4g - - - - maven-assembly-plugin - - - - storage.StorageItf.main - storage - - - - jar-with-dependencies - - - - - - - - com.springsource.repository.bundles.release - SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases - http://repository.springsource.com/maven/bundles/release - - - com.springsource.repository.bundles.external - SpringSource Enterprise Bundle Repository - External Bundle Releases - http://repository.springsource.com/maven/bundles/external - - - central - http://repo1.maven.org/maven2/ - - - - diff --git a/storageAPI/storageItf/src/main/java/storage/StorageException.java b/storageAPI/storageItf/src/main/java/storage/StorageException.java deleted file mode 100644 index e91fb7fe..00000000 --- a/storageAPI/storageItf/src/main/java/storage/StorageException.java +++ /dev/null @@ -1,23 +0,0 @@ -package storage; - -import java.util.*; -import java.lang.*; - -import java.io.*; -import static java.lang.System.out; - -public class StorageException extends Exception{ - - public StorageException(String message) { - super(message); - } - - public StorageException(String message, Throwable throwable) { - super(message, throwable); - } - - public String getMessage() - { - return super.getMessage(); - } -} \ No newline at end of file diff --git a/storageAPI/storageItf/src/main/java/storage/StorageItf.java b/storageAPI/storageItf/src/main/java/storage/StorageItf.java deleted file mode 100644 index f9398471..00000000 --- a/storageAPI/storageItf/src/main/java/storage/StorageItf.java +++ /dev/null @@ -1,133 +0,0 @@ -package storage; -import com.datastax.driver.core.*; -import java.util.*; -import java.util.function.Function; -import static java.util.stream.Collectors.*; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.regex.Pattern; - -public class StorageItf { - - private static Cluster cluster = null; - private static Session session = null; - - /** - * This function returns a order list of the hosts that have the higher number of local tokens. - * - * @param objectID the block identifier - * @return - * @throws storage.StorageException - */ - public static List getLocations(String objectID) throws storage.StorageException { - UUID uuid = UUID.fromString(objectID.replace(" ", "")); - List resultSet = Collections.emptyList(); - checkCassandra(); - Row storage_info = session.execute("SELECT class_name FROM hecuba.istorage WHERE storage_id = ?", uuid).one(); - String class_name = storage_info.getString("class_name"); - if(class_name == "hecuba.hdict.StorageDict"){ - Metadata metadata = cluster.getMetadata(); - String name = storage_info.getString("name"); - int pposition = name.indexOf('.'); - if (pposition == -1) { - throw new StorageException("I cannot detect the keyspace name from " + name); - } - final String nodeKp = name.substring(0, pposition); - - Set> hostsTkns = storage_info.getList("tokens", TupleValue.class).stream() - .map(tok -> metadata.newToken(tok.getLong(0) + "")) - .flatMap(token -> - metadata.getReplicas(Metadata.quote(nodeKp), metadata.newTokenRange(token, token)).stream()) - .collect(groupingBy(Function.identity(), counting())).entrySet(); - - ArrayList> result = new ArrayList<>(hostsTkns); - Collections.sort(result, Comparator.comparing(o -> (o.getValue()))); - List toReturn; - toReturn = result.stream().map(a -> a.getKey().getAddress().toString().replaceAll("^.*/", "")).collect(toList()); - List toReturnHN = new ArrayList(); - for (String ip : toReturn){ - try{ - InetAddress addr = InetAddress.getByName(ip); - String host = addr.getHostName(); - String[] HNsplitted = host.split("-"); - HNsplitted = HNsplitted[0].split(Pattern.quote(".")); - toReturnHN.add(HNsplitted[0]); - }catch(UnknownHostException e){ - throw new storage.StorageException("Problem obtaining hostaddress:" + e); - } - } - System.out.println("Result for objectID " + objectID + ":" + toReturnHN.get(0)); - return toReturnHN; - } - if(class_name == "hecuba.hdict.StorageObj"){ - System.out.println("Result for objectID " + objectID + ": []"); - } - return resultSet; - } - - - private static void checkCassandra() { - if (cluster == null) { - String[] nodeIP = System.getenv("CONTACT_NAMES").split(","); - int nodePort = Integer.parseInt(System.getenv("NODE_PORT")); - cluster = new Cluster.Builder() - .addContactPoints(nodeIP) - .withPort(nodePort) - .build(); - session = cluster.connect(); - } - - } - - private static void closeCassandra() { - if (cluster != null) { - session.close(); - session = null; - cluster.close(); - cluster = null; - } - - } - - - public static void newReplica(String objectID, String node) throws StorageException { - } - - public static String newVersion(String objectID, String node) throws StorageException { - //return ""; - return objectID; - } - - public static void consolidateVersion(String objectID) throws StorageException { - } - - public static void delete(String objectID) throws StorageException { - } - - public static void finish() throws StorageException { - closeCassandra(); - - } - - public static java.lang.Object getByID(String objectID) throws StorageException { - return null; - } - - public static void init(String configFile) throws storage.StorageException { - - } - - public static void main(String[] args) throws StorageException { - - StorageItf client = new StorageItf(); - - try { - client.init(null); - } catch (StorageException e) { - e.printStackTrace(); - } - - client.getLocations(args[0]).forEach(System.out::println); - System.out.println("Application ended"); - } -} diff --git a/storageAPI/storageItf/src/main/java/storage/StubItf.java b/storageAPI/storageItf/src/main/java/storage/StubItf.java deleted file mode 100644 index 8c7be25f..00000000 --- a/storageAPI/storageItf/src/main/java/storage/StubItf.java +++ /dev/null @@ -1,7 +0,0 @@ -package storage; - -public interface StubItf{ - - public String getID(); - -}