Commits
- Commit:
24694eb5d5c78b5419ecda03391a5fa2cf7a942f
- From:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
test: fix flakiness in gh_6128_background_mode_test
Previous attempt to fix flakiness in commit 6a2c73f81b30 ("test: fix
flakiness in gh_6128_background_mode_test") used a constant buffer size
in check_err_msg function. Tarantool 2.10 has a bit bigger log before a
desired message that other versions of Tarantool and it leads to a this
resulted in a truncated message ("entering the even" instead of
"entering the event loop"). Patch replaces check_err_msg()
implementation to grep_log used in luatest, it reads the whole log.
Also patch renames check_err_msg to check_msg, because "entering the
event loop" is not an error message.
Follows up #6128
NO_CHANGELOG=fix test
NO_DOC=fix test
- Commit:
6a2c73f81b30cb25dd71c3bd0818f6c119a52ad8
- From:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Via:
- Igor Munkin <imun@tarantool.org>
- Date:
test: fix flakiness in gh_6128_background_mode_test
Test runs an external process with tarantool that writes to a log file.
Then test reads that log file and searches a string with required
message in it (see function check_err_msg). Test was flaky on macOS and
I suspect it was happening due to a high log level - timeout was not
enough to wait message in the log file.
Patch decreases a log level to a default value and replaces io
functions with the similar alternatives in a fio module. Using
fio functions allows to not block fibers.
NO_CHANGELOG=test fix
NO_DOC=test fix
(cherry picked from commit 47380bb7626544800239ca179a6b2c490ebb6d1c)
- Commit:
803cfffc3f36bd570fcd836d87ef179b486f526c
- From:
- Vladimir Davydov <vdavydov@tarantool.org>
- Date:
lua/xlog: don't ignore unknown header fields
The xlog reader Lua module uses the xlog_cursor_next_row, which decodes
the row header with xrow_header_decode. The latter silently ignores any
unknown fields, which complicates catching bugs when garbage is written
to a row header by mistake, for example, see #8783.
Let's parse a row header without using xrow_header_decode in the xlog
reader module, like we parse a row body, and output all unknown/invalid
keys as is.
To do that, we have to extend the xlog cursor API with the new method
xlog_cursor_next_row_raw that returns a pointer to the position in the
tx buffer where the next xrow is stored without advancing it. To avoid
a memory leak in case the caller fails to parse an xrow returned by this
function, we also have to move the call to xlog_tx_cursor_destroy from
xlog_tx_cursor_next_row to xlog_cursor_next_tx.
While we are at it,
- Don't raise an error if a key type encountered in a row body is
invalid (not an integer). Instead, silently ignore such keys.
- Remove the useless body MsgPack validness check because we already
check it after decoding the header.
- Add error injection based tests to check all the corner cases.
NO_DOC=bug fix
(cherry picked from commit 8a25d170ea897d5aa2f1a81e1cbe8292596a6a6d)
- Commit:
f886d9069653e47f83d7164e802326cf99cc9e26
- From:
- Vladimir Davydov <vdavydov@tarantool.org>
- Date:
txn: reset stream_id row header field
To avoid garbage written to xlog.
Closes #8783
NO_DOC=bug fix
NO_TEST=next commit
(cherry picked from commit f058cee74eca494e8fca8e3aae6b94ce8105165b)
- Commit:
fd67e4dee61e2e538188759819bb01586f5c93f8
- From:
- Igor Munkin <imun@tarantool.org>
- Date:
box: reduce luaT_pushtuple Lua GC memory usage
<luaT_pushtuple> function created a new GCfunc object for a tuple __gc
handler (i.e. <lbox_tuple_gc>), having no upvalues, on each call when
tuple object for Lua world is created.
The change introduces the reference to the single GCfunc object created
on Tarantool startup and stored to Lua registry. Using this approach in
scope of <luaT_pushtuple> is aimed to reduce Lua GC memory usage.
Part of #5201
NO_DOC=refactoring
NO_TEST=refactoring
NO_CHANGELOG=refactoring
Reviewed-by: Vladimir Davydov <vdavydov@tarantool.org>
Reviewed-by: Sergey Kaplun <skaplun@tarantool.org>
Signed-off-by: Igor Munkin <imun@tarantool.org>
(cherry picked from commit 8d7d14609853ac7020f15d5239ee05c65817ad29)