Skip to content

Commit 91b835a

Browse files
author
Slawomir Maludzinski
committed
"Bug#35290223 Memory used by binlog compression is not instrumented"
This reverts commit 54b2818fe1b025ee9b9e1bb6bc4cc54b2bb3eeeb. Change-Id: If82b16652ebde2e0c951e39a078ddfdb4e15da23
1 parent dd02eb4 commit 91b835a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+37
-1713
lines changed

cmake/zstd.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ MACRO (MYSQL_CHECK_ZSTD)
9999
ENDIF()
100100

101101
ADD_LIBRARY(ext::zstd ALIAS zstd_interface)
102-
ADD_DEFINITIONS(-DWITH_ZSTD_${WITH_ZSTD})
103102

104103
IF(ZSTD_VERSION VERSION_LESS MIN_ZSTD_VERSION_REQUIRED)
105104
MESSAGE(FATAL_ERROR

libbinlogevents/include/compression/base.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@
2727

2828
namespace binary_log::transaction::compression {
2929

30-
// ZSTD version boundary below which instrumented
31-
// ZSTD_create[CD]Stream_advanced functions are allowed.
32-
// When new ZSTD versions are released and they do not
33-
// break prototype for ZSTD_create[CD]Stream_advanced
34-
// increase the number '10505' accordingly
35-
constexpr unsigned int ZSTD_INSTRUMENTED_BELOW_VERSION = 10505;
36-
3730
// Todo: use enum class and a more specific name.
3831
// Use contiguous values.
3932
enum type {

libbinlogevents/include/compression/factory.h

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,13 @@
2626
#include <memory>
2727
#include "compressor.h"
2828
#include "decompressor.h"
29-
#include "libbinlogevents/include/resource/memory_resource.h" // Memory_resource
3029

3130
namespace binary_log::transaction::compression {
3231

3332
class Factory {
34-
using Memory_resource_t = mysqlns::resource::Memory_resource;
35-
3633
public:
37-
static std::unique_ptr<Compressor> build_compressor(
38-
type t, const Memory_resource_t &memory_resource = Memory_resource_t());
39-
static std::unique_ptr<Decompressor> build_decompressor(
40-
type t, const Memory_resource_t &memory_resource = Memory_resource_t());
34+
static std::unique_ptr<Compressor> build_compressor(type t);
35+
static std::unique_ptr<Decompressor> build_decompressor(type t);
4136
};
4237

4338
} // namespace binary_log::transaction::compression

libbinlogevents/include/compression/zstd_comp.h

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@
2323
#ifndef LIBBINLOGEVENTS_COMPRESSION_ZSTD_COMP_H_
2424
#define LIBBINLOGEVENTS_COMPRESSION_ZSTD_COMP_H_
2525

26-
#define ZSTD_STATIC_LINKING_ONLY 1
2726
#include <zstd.h>
2827

2928
#include "compressor.h"
3029
#include "libbinlogevents/include/buffer/buffer_sequence_view.h"
3130
#include "libbinlogevents/include/nodiscard.h"
32-
#include "libbinlogevents/include/resource/memory_resource.h" // Memory_resource
3331

3432
struct ZSTD_outBuffer_s;
3533

@@ -41,14 +39,13 @@ class Zstd_comp : public Compressor {
4139
using typename Compressor::Char_t;
4240
using typename Compressor::Managed_buffer_sequence_t;
4341
using typename Compressor::Size_t;
44-
using Memory_resource_t = mysqlns::resource::Memory_resource;
4542
using Compression_level_t = int;
4643
static constexpr type type_code = ZSTD;
4744

4845
/// The default compression level for this compressor.
4946
static constexpr Compression_level_t default_compression_level = 3;
5047

51-
Zstd_comp(const Memory_resource_t &memory_resource = Memory_resource_t());
48+
Zstd_comp() = default;
5249

5350
~Zstd_comp() override;
5451

@@ -147,14 +144,6 @@ class Zstd_comp : public Compressor {
147144

148145
/// Compression level that was given in @c set_compression_level
149146
Compression_level_t m_next_compression_level{default_compression_level};
150-
151-
/// Instrumented memory allocator object
152-
Memory_resource_t m_memory_resource;
153-
154-
/// ZSTD memory allocator objects and functions
155-
ZSTD_customMem m_zstd_custom_mem;
156-
static void *zstd_mem_res_alloc(void *opaque, size_t size);
157-
static void zstd_mem_res_free(void *opaque, void *address);
158147
};
159148

160149
} // namespace binary_log::transaction::compression

libbinlogevents/include/compression/zstd_dec.h

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@
2323
#ifndef LIBBINLOGEVENTS_COMPRESSION_ZSTD_DEC_H_
2424
#define LIBBINLOGEVENTS_COMPRESSION_ZSTD_DEC_H_
2525

26-
#define ZSTD_STATIC_LINKING_ONLY 1
2726
#include <zstd.h>
2827

2928
#include "decompressor.h"
3029
#include "libbinlogevents/include/nodiscard.h"
31-
#include "libbinlogevents/include/resource/memory_resource.h" // Memory_resource
3230

3331
namespace binary_log {
3432
namespace transaction {
@@ -40,10 +38,9 @@ class Zstd_dec : public Decompressor {
4038
using typename Decompressor::Char_t;
4139
using typename Decompressor::Grow_constraint_t;
4240
using typename Decompressor::Size_t;
43-
using Memory_resource_t = mysqlns::resource::Memory_resource;
4441
static constexpr type type_code = ZSTD;
4542

46-
Zstd_dec(const Memory_resource_t &memory_resource = Memory_resource_t());
43+
Zstd_dec();
4744
~Zstd_dec() override;
4845

4946
Zstd_dec(const Zstd_dec &) = delete;
@@ -78,14 +75,6 @@ class Zstd_dec : public Decompressor {
7875
ZSTD_inBuffer m_ibuf{nullptr, 0, 0};
7976

8077
bool m_frame_boundary = false;
81-
82-
/// Instrumented memory allocator object
83-
Memory_resource_t m_memory_resource;
84-
85-
/// ZSTD memory allocator objects and functions
86-
ZSTD_customMem m_zstd_custom_mem;
87-
static void *zstd_mem_res_alloc(void *opaque, size_t size);
88-
static void zstd_mem_res_free(void *opaque, void *address);
8978
};
9079

9180
} // namespace compression

libbinlogevents/src/compression/factory.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@
3030

3131
namespace binary_log::transaction::compression {
3232

33-
std::unique_ptr<Compressor> Factory::build_compressor(
34-
type t, const Memory_resource_t &memory_resource) {
33+
std::unique_ptr<Compressor> Factory::build_compressor(type t) {
3534
switch (t) {
3635
case ZSTD:
37-
return std::make_unique<Zstd_comp>(memory_resource);
36+
return std::make_unique<Zstd_comp>();
3837
case NONE:
3938
return std::make_unique<None_comp>();
4039
default:
@@ -43,11 +42,10 @@ std::unique_ptr<Compressor> Factory::build_compressor(
4342
return std::unique_ptr<Compressor>();
4443
}
4544

46-
std::unique_ptr<Decompressor> Factory::build_decompressor(
47-
type t, const Memory_resource_t &memory_resource) {
45+
std::unique_ptr<Decompressor> Factory::build_decompressor(type t) {
4846
switch (t) {
4947
case ZSTD:
50-
return std::make_unique<Zstd_dec>(memory_resource);
48+
return std::make_unique<Zstd_dec>();
5149
case NONE:
5250
return std::make_unique<None_dec>();
5351
default:

libbinlogevents/src/compression/payload_event_buffer_istream.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,7 @@ void Payload_event_buffer_istream::set_error_str(const std::string &s) {
113113

114114
void Payload_event_buffer_istream::initialize() {
115115
try {
116-
m_decompressor = Factory_t::build_decompressor(m_compression_algorithm,
117-
m_memory_resource);
116+
m_decompressor = Factory_t::build_decompressor(m_compression_algorithm);
118117
if (m_decompressor == nullptr) {
119118
set_error_str(
120119
concat("Unknown compression algorithm in Payload_log_event: ",

libbinlogevents/src/compression/zstd_comp.cpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@
2828

2929
namespace binary_log::transaction::compression {
3030

31-
Zstd_comp::Zstd_comp(const Memory_resource_t &memory_resource)
32-
: m_memory_resource(memory_resource),
33-
m_zstd_custom_mem{zstd_mem_res_alloc, zstd_mem_res_free,
34-
static_cast<void *>(&m_memory_resource)} {}
35-
3631
Zstd_comp::~Zstd_comp() { destroy(); }
3732

3833
void Zstd_comp::destroy() {
@@ -211,14 +206,4 @@ Compressor::Grow_constraint_t Zstd_comp::do_get_grow_constraint_hint() const {
211206
return ret;
212207
}
213208

214-
void *Zstd_comp::zstd_mem_res_alloc(void *opaque, size_t size) {
215-
Memory_resource_t *mem_res = static_cast<Memory_resource_t *>(opaque);
216-
return mem_res->allocate(size);
217-
}
218-
219-
void Zstd_comp::zstd_mem_res_free(void *opaque, void *address) {
220-
Memory_resource_t *mem_res = static_cast<Memory_resource_t *>(opaque);
221-
mem_res->deallocate(address);
222-
}
223-
224209
} // namespace binary_log::transaction::compression

libbinlogevents/src/compression/zstd_dec.cpp

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,7 @@
2727

2828
namespace binary_log::transaction::compression {
2929

30-
Zstd_dec::Zstd_dec(const Memory_resource_t &memory_resource)
31-
: m_ctx{nullptr},
32-
m_memory_resource{memory_resource},
33-
m_zstd_custom_mem{zstd_mem_res_alloc, zstd_mem_res_free,
34-
static_cast<void *>(&m_memory_resource)} {}
30+
Zstd_dec::Zstd_dec() : m_ctx(nullptr) {}
3531

3632
Zstd_dec::~Zstd_dec() { destroy(); }
3733

@@ -141,14 +137,4 @@ Decompressor::Grow_constraint_t Zstd_dec::do_get_grow_constraint_hint() const {
141137
return ret;
142138
}
143139

144-
void *Zstd_dec::zstd_mem_res_alloc(void *opaque, size_t size) {
145-
Memory_resource_t *mem_res = static_cast<Memory_resource_t *>(opaque);
146-
return mem_res->allocate(size);
147-
}
148-
149-
void Zstd_dec::zstd_mem_res_free(void *opaque, void *address) {
150-
Memory_resource_t *mem_res = static_cast<Memory_resource_t *>(opaque);
151-
mem_res->deallocate(address);
152-
}
153-
154140
} // namespace binary_log::transaction::compression

libs/mysql/binlog/event/compression/base.h

Lines changed: 0 additions & 72 deletions
This file was deleted.

libs/mysql/binlog/event/compression/factory.cpp

Lines changed: 0 additions & 59 deletions
This file was deleted.

libs/mysql/binlog/event/compression/factory.h

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)