Conversation
4f16a56 to
b710328
Compare
b710328 to
15e588f
Compare
7470d5e to
3279431
Compare
3279431 to
58d8951
Compare
| @@ -0,0 +1,3 @@ | |||
| ## bugfix/lua | |||
|
|
|||
| - Fixed iconv object memory leak. | |||
There was a problem hiding this comment.
| - Fixed iconv object memory leak. | |
| - Fixed an iconv object memory leak. |
| @@ -0,0 +1,3 @@ | |||
| ## bugfix/vinyl | |||
|
|
|||
| - Fixed memory leak in vinyl on dump/compaction failure. | |||
There was a problem hiding this comment.
| - Fixed memory leak in vinyl on dump/compaction failure. | |
| - Fixed a memory leak in vinyl on dump/compaction failure. |
| - Fixed memory leak on disconnectiong from replica. | ||
| - Fixed memory leak on user ddl on access check failure. | ||
| - Fixed memory leak on xlog open failure. | ||
| - Fixed memory leak on space ddl on certain condition. | ||
| - Fixed memory leak on iproto override usage (since 3.1). | ||
| - Fixed memory leak on ddl failed due to foreign key constraint check. | ||
| - Fixed memory leak on space drop with sequence bound to json path. |
There was a problem hiding this comment.
| - Fixed memory leak on disconnectiong from replica. | |
| - Fixed memory leak on user ddl on access check failure. | |
| - Fixed memory leak on xlog open failure. | |
| - Fixed memory leak on space ddl on certain condition. | |
| - Fixed memory leak on iproto override usage (since 3.1). | |
| - Fixed memory leak on ddl failed due to foreign key constraint check. | |
| - Fixed memory leak on space drop with sequence bound to json path. | |
| - Fixed a memory leak on disconnection from a replica. | |
| - Fixed a memory leak on user DDL on access check failure. | |
| - Fixed a memory leak on `xlog` open failure. | |
| - Fixed a memory leak on space ddl on certain condition. | |
| - Fixed a memory leak on iproto override usage (since 3.1). | |
| - Fixed a memory leak on DDL failed due to foreign key constraint check. | |
| - Fixed a memory leak on space drop with sequence bound to json path. |
58d8951 to
c8ee2a4
Compare
| - Fixed memory leak on ddl failed due to foreign key constraint check. | ||
| - Fixed memory leak on space drop with sequence bound to json path. | ||
|
|
||
| ## bugfix/core |
There was a problem hiding this comment.
You can't mix release notes for different subsystems in the same file - gen-release-notes won't combine them properly.
src/box/alter.cc
Outdated
| alter->new_space->sequence_path = alter->old_space->sequence_path; | ||
| if (alter->old_space->sequence_path != NULL) | ||
| alter->new_space->sequence_path = | ||
| (char *)xstrdup(alter->old_space->sequence_path); |
There was a problem hiding this comment.
Let's split this patch into different commits, for example:
- Leak on DDL access check failure.
- Leak on xlog open failure.
- Leak on iproto override.
- Leak on replication reconfiguration.
- Leak on network address resolution error.
Also, it's preferable to submit some fixes in separate PRs because a PR with > 5-7 commits is difficult to review.
src/trivia/util.h
Outdated
| #endif | ||
|
|
||
| /** If false then LSAN will not be run on Tarantool exit. */ | ||
| extern bool lsan_enabled; |
There was a problem hiding this comment.
I think this should be defined only if ENABLE_ASAN is set.
| } | ||
|
|
||
| int | ||
| __lsan_is_turned_off(void) |
There was a problem hiding this comment.
Please add a comment explaining that this a function called internally by ASAN to check if it should report leaks.
| void | ||
| swim_gc(struct swim *swim) | ||
| { | ||
| if (swim->event_handler == NULL) { |
There was a problem hiding this comment.
Please reference the commit that introduced the leak in the commit message.
| /* tarantool_L is freed on Tarantool shutdown. */ | ||
| if (L == NULL) | ||
| return 0; |
There was a problem hiding this comment.
Shouldn't box be destroyed before Lua? I don't like that there are so many places now where we have to check tarantool_L.
src/box/memtx_engine.cc
Outdated
| bool stop = false; | ||
| while (!stop) | ||
| memtx_engine_run_gc(memtx, &stop); |
There was a problem hiding this comment.
I think this should be done when the engine is destroyed, not when we schedule garbage collection.
src/box/txn_limbo.h
Outdated
| * Denitialize qsync engine. | ||
| */ | ||
| void | ||
| txn_limbo_destroy(); |
There was a problem hiding this comment.
Should be named txn_limbo_free according to our naming convention. Anyway, there are so many susbystems touched in this commit with so different cases so it may be better to split this commit as well and submit it in a different PR.
| # TODO(gh-9213): remove when the issue is fixed | ||
| leak:luaT_push_key_def | ||
|
|
||
| # TODO(gh-8890): remove when the issue is fixed |
There was a problem hiding this comment.
Let's add Closes #XXXX to commit messages where applicable. Also, it'd be better if you removed the suppressions in the commits that actually fix the leaks.
91dfe4c to
ff5e624
Compare
ff5e624 to
1f7fbd6
Compare
06eacc3 to
cd541ec
Compare
GC fiber is dead at this point. We don't need to free tuples anyway for non ASAN builds on shutdown. For ASAN builds let's free tuples in memtx_engine_free(). Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
Otherwise we got a lot of FP leak reports. We also need to add check if global Lua state is closed in several places which can be executed after closing Lua state. Part-of tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
It was introduced in the commit 446201b ("asan: turn ASAN allocators on finally"). I probably added `ibuf_destroy` to fix a memory leak report but `ibuf` is passed from Lua so it is garbage collected by Lua. We don't have issues with double free probably because we don't close Lua on Tarantool exit until now. Part-of tarantool#10211 NO_CHANGELOG=internal NO_DOC=internal
On Tarantool shutdown first swim worker fiber is finished as managed on shutdown one. So later when swim is collected we got crash in swim_gc() because `event_handler` is NULL at this point. There is no worker fiber so we need to free swim synchronously. The issue was hidden because we do not call lua_close() earlier. It had little change to occur. Now it is revealed. Closes tarantool#10495 Part-of tarantool#10211 NO_TEST=covered by existing tests NO_DOC=bugfix
Introduced in the commit ab3746b ("gc: persist WAL GC consumers"). Part-of tarantool#10211 NO_TEST=covered by existing tests NO_CHANGELOG=not released NO_DOC=bugfix
Closes tarantool#10211 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal
cd541ec to
4bfa9c8
Compare
Required small changes - tarantool/small#91
EE part - https://github.com/tarantool/tarantool-ee/pull/835