Tarantool 1.10.4 LTS released

16 views
Skip to first unread message

Кирилл Юхин

unread,
Sep 26, 2019, 9:44:14 AM9/26/19
to tarantool-ru

Date: 2019-09-26


Tag: 1.10.4-0-g9dbcdba


Overview

1.10.4 is the next stable release in the 1.10 series. The label 'stable' means we have had systems running in production without known crashes, bad results or other showstopper bugs for quite a while now.

This release resolves about 50 issues since 1.10.3. There may be bugs in less common areas, please feel free to file an issue at GitHub.


Compatibility

Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary data layout, client-server protocol and replication protocol. Please upgrade using the box.schema.upgrade() procedure to unlock all the new features of the 1.10.x series.


Functionality added or changed

Engines

  • Improve dump start/stop logging. When initiating memory dump, print how much memory is going to be dumped, expected dump rate, ETA, and the recent write rate. Upon dump completion, print observed dump rate in addition to dump size and duration.
  • Look up key in reader thread. If a key isn't found in the tuple cache, we fetch it from a run file. In this case disk read and page decompression is done by a reader thread, however key lookup in the fetched page is still performed by the TX thread. Since pages are immutable, this could as well be done by the reader thread, which would allow us to save some precious CPU cycles for TX. gh-4257

Core

Replication

  • Print corrupted rows on decoding error. Improve row printing to log. Print the header row by row, 16 bytes in a row, and format output to match xxd output:
    [001] 2019-04-05 18:22:46.679 [11859] iproto V> Got a corrupted row:
    [001] 2019-04-05 18:22:46.679 [11859] iproto V> 00000000: A3 02 D6 5A E4 D9 E7 68 A1 53 8D 53 60 5F 20 3F
    [001] 2019-04-05 18:22:46.679 [11859] iproto V> 00000010: D8 E2 D6 E2 A3 02 D6 5A E4 D9 E7 68 A1 53 8D 53
    

Lua

  • Add type of operation to space trigger parameters. For example, a trigger function may now look like this:
    function before_replace_trig(old, new, space_name, op_type)
        if op_type == 'INSERT' then
            return old
        else
            return new
        end
    end
    

Consult with documentation for more details, gh-4099

  • Add debug.sourcefile() and debug.sourcedir() helpers (and debug.__file__ and debug.__dir__ shortcuts) to determine the location of a current Lua source file, part of gh-4193

HTTP client

  • Add max_total_connections option in addition to total_connection to allow more fine-grained tuning of libcurl connection cache. Don't restrict total_connections with a constant value by default, but use libcurl's default, which scales the threshold according to easy handles count. More infogh-3945.

Bugs fixed

Vinyl

  • Fix assertion failure in vy_tx_handle_deferred_deletegh-4294
  • Don't purge deleted runs from vylog on compaction, cherry-picked from gh-4218
  • Don't throttle DDL, gh-4238
  • Fix deferred DELETE statement lost on commit, gh-4248
  • Fix assertion while recovering dumped statement, gh-4222
  • Reset dump watermark after updating memory limit, gh-3864
  • Be pessimistic about write rate when setting dump watermark, gh-4166
  • Fix crash if space is dropped while space.get is reading from it, gh-4109
  • Fix crash during index build, gh-4152
  • Don't compress L1 runs, gh-2389
  • Account statements skipped on read
  • Take into account primary key lookup in latency accounting
  • Fix vy_range_update_compaction_priority hang
  • Free region on vylog commit instead of resetting it and clean up region after allocating surrogate statement
  • Increase even more the open file limit in systemd unit file
  • Increment min range size to 128MB

Memtx

  • Cancel checkpoint thread at exit, gh-4170

Core

  • Fix crash for update with empty tuple, gh-4041
  • Fix use-after-free in space_truncategh-4093
  • Fix error while altering index with sequence, gh-4214
  • Detect a new invalid json path case, gh-4419
  • Fix empty password authentication, gh-4327
  • Fix txn::sub_stmt_begin array size
  • Account index.pairs in box.stat.SELECT()

Replication

  • Disallow bootstrap of read-only masters, gh-4321
  • Enter orphan mode on manual replication configuration change, gh-4424
  • Set last_row_time to now in relay_new and relay_startgh-4431
  • Stop relay on subscribe error, gh-4399
  • Init coio watcher before join/subscribe, gh-4110
  • Allow to change instance id during join, gh-4107
  • Fix garbage collection logic, gh-4106
  • Revert packet boundary checking for iproto
  • Do not abort replication on ER_UNKNOWN_REPLICA
  • Reduce effects of input buffer fragmentation on large cfg.readahead
  • Fix upgrade from 1.7 (it doesn't recognize IPROTO_VOTE request type)
  • Fix memory leak in call / eval in the case when a transaction is not committed, gh-4388

Lua

  • Fix fio.mktree() error reporting, gh-4044
  • Fix segfault on ffi.C_say() without filename, gh-4336
  • Fix segfault on json.encode() on a recursive table, gh-4366
  • Fix pwd.getpwall() and pwd.getgrall() hang on CentOS 6 and FreeBSD 12, gh-4428gh-4447
  • Fix a segfault during initialization of a cipher from crypto module, gh-4223

HTTP client

  • Reduce stack consumption during waiting for a DNS resolving result, gh-4179
  • Increase max outgoing header size to 8 KiB, gh-3959
  • Verify "headers" option stronger. gh-4281gh-3679
  • Use bundled libcurl rather than system-wide by default, gh-4318gh-4180gh-4288gh-4389gh-4397. This closes several known problems that were fixed in recent libcurl versions, including segfaults, hangs, memory leaks and performance problems.

LuaJIT

  • Fix overflow of snapshot map offset, part of gh-4171
  • Fix rechaining of pseudo-resurrected string keys, part of gh-4171
  • Fix fold machinery misbehaves, gh-4376
  • Fix for debug.getinfo(1,'>S')gh-3833
  • Fix string.find recording, gh-4476
  • Fixed a segfault when unsinking 64-bit pointers.

Misc

  • Increase even more the open file limit in systemd unit file
  • Raise error in tarantoolctl when box.cfg isn't called, gh-3953
  • Support systemd’s NOTIFY_SOCKET on OS X, gh-4436
  • Fix coio_getaddrinfo() when 0 timeout is passed (affects netbox’s connect_timeout), gh-4209
  • Fix coio_do_copyfile() to perform truncate of destination (affects fio.copyfile()), gh-4181
  • Make hints in coio_getaddrinfo() optional
  • Validate msgpack.decode() cdata size argument, gh-4224
  • Fix linking with static openssl library, gh-4437
Reply all
Reply to author
Forward
0 new messages