Skip to content
Snippets Groups Projects
  1. Mar 09, 2023
    • Gleb Kashkin's avatar
      console: fix lang identification in local_read() · 01ad9e7b
      Gleb Kashkin authored
      Language in `local_read()` used to be set to `box.session.language` while
      the latter is always `nil` and `set_language()` sets `self.language`.
      
      Now the language in `local_read()` is identified correctly. This is
      required for performing continuation check (gh-4317) on any language
      while the check for complete lua statement happens only in Lua mode.
      
      Needed for #4317
      
      NO_DOC=refactoring
      NO_CHANGELOG=refactoring
      NO_TEST=invisible to user
      01ad9e7b
    • Gleb Kashkin's avatar
      console: force disable readline bracketed paste · 04bd3293
      Gleb Kashkin authored
      GNU Readline starting from version 8.1 has bracketed paste[0] enabled by
      default which complicates handling pasted multiline text and is not
      supported for now.
      
      This patch disables the feature even if it is enabled in inputrc, by user
      or by default.
      
      [0] https://cirw.in/blog/bracketed-paste
      
      Needed for #4317
      
      NO_TEST=readline config
      NO_DOC=readline config
      NO_CHANGELOG=readline config
      04bd3293
  2. Mar 07, 2023
    • Nikita Zheleztsov's avatar
      test: fix fail of gh_4669_applier_reconnect_test · 1051aa7f
      Nikita Zheleztsov authored
      In the test we start replicas only with master in box.cfg.replication.
      We cannot use bootstrap_strategy = 'auto' mode, which is default, as
      it properly works only when all participants of the cluster are listed
      in replication parameter. Sometimes, when one replica connects to the
      master, the other one has already successfully joined, so the first
      replica sees in ballot, that it doesn't have all nodes from cluster
      in box.cfg.replication and fails to start.
      
      Let's use 'legacy' bootstrap strategy for now.
      
      Closes tarantool/tarantool-qa#310
      
      NO_DOC=test-fix
      NO_CHANGELOG=test-fix
      1051aa7f
    • Georgiy Lebedev's avatar
      msgpack: fix unsafe extension decoding · 1de6a071
      Georgiy Lebedev authored
      In some cases unsafe extension decoding was done without bound and type
      checks: add necessary checks.
      
      Closes tarantool/security#73
      
      NO_DOC=bugfix
      1de6a071
  3. Mar 06, 2023
    • Oleg Jukovec's avatar
      httpc: check region_join result · 089cbfa9
      Oleg Jukovec authored
      This patch addresses coverity complain 1535241.
      
      Follow-up #8047
      
      NO_TEST=nit
      NO_CHANGELOG=nit
      NO_DOC=nit
      089cbfa9
    • Vladimir Davydov's avatar
      box: check iterator position against search criteria · c561202d
      Vladimir Davydov authored
      If the 'after' key is less than the search key in case of ge/gt or
      greater than the search key in case of le/lt, the iterator either
      crashes (vinyl) or returns invalid result (memtx). This happens because
      the engine implementation doesn't expect an invalid 'after' key.
      Let's fix this by raising an error at the top level in case the 'after'
      key doesn't meet the search criteria.
      
      Closes #8403
      Closes #8404
      
      NO_DOC=bug fix
      NO_CHANGELOG=unreleased
      c561202d
    • Vladimir Davydov's avatar
      box: raise ER_ITERATOR_POSITION on any kind of invalid position · 81d43c17
      Vladimir Davydov authored
      Currently, if the position isn't compatible with the index, we raise
      an error like "Invalid key part count ...". From this error it's
      difficult to figure out whether it's for the given iterator position of
      for the search key. Let's always raise ER_ITERATOR_POSITION in this
      case. Later on we'll use stacked diag to add extra error info.
      
      Needed for #8403
      Needed for #8404
      
      NO_DOC=bug fix
      NO_CHANGELOG=unreleased
      81d43c17
    • Vladimir Davydov's avatar
      key_def: make key_compare take keys without header · 41b8a012
      Vladimir Davydov authored
      We need to compare a tuple position with a search key in select() and
      pairs() to make sure the tuple position meets the search criteria. The
      problem is that we strip the MessagePack header from the position while
      key_compare() takes keys with headers. Let's make key_compare take keys
      without headers like the rest of comparator functions. Since in Vinyl we
      often need to compare keys with headers, we also add vy_key_compare()
      helper function.
      
      Needed for #8403
      Needed for #8404
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      41b8a012
    • Yaroslav Lobankov's avatar
      ci: fix code block indentation in pack-and-deploy · dcf1f1ec
      Yaroslav Lobankov authored
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      dcf1f1ec
    • Yaroslav Lobankov's avatar
      ci: enable for release/x.y.z branches · 9fe135c5
      Yaroslav Lobankov authored
      Enable CI for branches with names `release/x.y.z`. Sometimes we are
      going to create such branches, and we need to have working CI for them.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      9fe135c5
    • Mergen Imeev's avatar
      test: add rule to ignore Makefile · 25d93952
      Mergen Imeev authored
      This patch adds a rule to ignore the Makefile on the path test/*/*/.
      
      NO_DOC=No need, changes in .gitignore
      NO_TEST=No need, changes in .gitignore
      NO_CHANGELOG=No need, changes in .gitignore
      25d93952
  4. Mar 03, 2023
    • Yaroslav Lobankov's avatar
      ci: introduce 3.x related logic for workflows · 140e2c16
      Yaroslav Lobankov authored
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      140e2c16
    • Yaroslav Lobankov's avatar
      ci: eliminate 1.10 related logic for workflows · e0c5a41f
      Yaroslav Lobankov authored
      The 1.10 branch is not supported anymore and there is no need to keep
      the logic for it.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      e0c5a41f
    • Yaroslav Lobankov's avatar
      ci: not to push sources on `*-entrypoint` tag · 45cc4930
      Yaroslav Lobankov authored
      Sources should be pushed to the repo on a release tag only,
      an `*-entrypoint` tag is an auxiliary one.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      45cc4930
    • Vladimir Davydov's avatar
      memtx: fix eq pagination in case after tuple is absent · bf275ed5
      Vladimir Davydov authored
      If the tuple pointed to by 'after' isn't in the space, eq pagination
      would skip it because of the broken 'equals' flag update in the memtx
      iterator.
      
      Closes #8373
      
      NO_DOC=bug fix
      NO_CHANGELOG=unreleased
      bf275ed5
    • Igor Munkin's avatar
      ci: enable testing on macOS/M1 back · d807022b
      Igor Munkin authored
      Since JIT is disabled in the previous commit, regular testing on
      macOS/M1 can be returned back to Tarantool CI routine. Furthermore, all
      specialized targets in .test.mk and auxiliary environment tweaks in
      macOS-related workflows are also removed in scope of this patch.
      
      Follows up #8252
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      d807022b
    • Igor Munkin's avatar
      test: disable app-luatest/fiber_parent_backtrace_test.lua on macOS/M1 · f1fc70f4
      Igor Munkin authored
      Regular testing routine on macOS/M1 platforms will be enabled back in
      the last patch of the series, but there are some failures unrelated to
      the changes made within the previous commits. Hence it was decided to
      add the skip_if directive to app-luatest/fiber_parent_backtrace_test.lua
      for now.
      
      Relates to tarantool/tarantool-qa#309
      
      NO_DOC=tests
      NO_CHANGELOG=tests
      f1fc70f4
    • Igor Munkin's avatar
      test: disable app/fiber.test.lua on macOS/M1 · dfa2f128
      Igor Munkin authored
      Regular testing routine on macOS/M1 platforms will be enabled back in
      the last patch of the series, but there are some failures unrelated to
      the changes made within the previous commits. Hence it was decided to
      add the skipcond unit to app/fiber.test.lua for now.
      
      Relates to tarantool/tarantool-qa#308
      
      NO_DOC=tests
      NO_CHANGELOG=tests
      dfa2f128
    • Igor Munkin's avatar
      lua: disable JIT engine on macOS by default · ae0db476
      Igor Munkin authored
      To improve customer experience it was decided to disable JIT engine on
      Tarantool startup for macOS builds. Either way, JIT will be aboard as a
      result of the changes and more adventurous users will be able to enable
      it via <jit.on> in their code.
      
      Furthermore, for convenient maintenance of JIT default behaviour CMake
      configuration option "LUAJIT_JIT_STATUS" is introduced.
      
      Closes #8252
      
      NO_DOC=no behaviour changes
      ae0db476
    • Igor Munkin's avatar
      test: drop test-run skipcond for gh-7762 test · 3548afdb
      Igor Munkin authored
      Since luatest provides <skip_if> helper, .skipcond file is not necessary
      anymore and is removed.
      
      Needed for #8252
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      3548afdb
    • Igor Munkin's avatar
      test: rewrite test for gh-5983 with luatest · 2369b8d4
      Igor Munkin authored
      As a result of the patch, all required files are moved to app-luatest
      subdirectory. The test itself is rewritten via <justrun> and <treegen>
      helpers to make it more clear and easy to maintain.
      
      Since luatest provides <skip_if> helper, .skipcond file is not necessary
      anymore and is removed.
      
      Needed for #8252
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      2369b8d4
    • Igor Munkin's avatar
      test: rewrite test for gh-1700 with luatest · 455a862c
      Igor Munkin authored
      As a result of the patch, all required files are moved to app-luatest
      subdirectory. introducing the following layout:
      
        app-luatest/
        |- <name>_test.lua
        |- lib/
           |- CMakeLists.txt
           |- <libname>.c
      
      The test itself is rewritten via <justrun> and <treegen> helpers to make
      it more clear and easy to maintain.
      
      Since luatest provides <skip_if> helper, .skipcond file is not necessary
      anymore and is removed.
      
      Needed for #8252
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      455a862c
    • Sergey Bronnikov's avatar
      build: bump zstd submodule · ecbbc925
      Sergey Bronnikov authored
      Updated third_party/zstd submodule from v1.5.2 to pre-1.5.5 version.
      The new version fixes a rare bug that was introduced in 1.5.0 [1].
      
      A v1.5.5 release version will be produced in March.
      
      1. https://github.com/facebook/zstd/pull/3517
      
      Fixes #8391
      
      NO_DOC=build
      NO_TEST=build
      ecbbc925
    • Igor Munkin's avatar
      luajit: bump new version · 61da8e87
      Igor Munkin authored
      * ci: add nojit flavor for exotic builds
      * test: fix lua-Harness JIT-related tests
      * test: adjust JIT-related tests in tarantool-tests
      * build: fix build with JIT disabled
      * Minor fixes.
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      NO_CHANGELOG=test
      61da8e87
  5. Mar 02, 2023
    • Georgiy Lebedev's avatar
      box: refactor `check_select_safety` and add it to `box.internal` · 4221a983
      Georgiy Lebedev authored
      Refactor logging of dangerous `select` call out of `check_select_safety`
      and add it to `box.internal` so that it can be reused for read views.
      
      Change all occurrences of 'dangerous' to 'long' to be consistent with the
      log message.
      
      Needed for tarantool/tarantool-ee#211
      
      NO_CHANGELOG=<refactoring>
      NO_DOC=<refactoring>
      NO_TEST=<refactoring>
      4221a983
    • Ilya Verbin's avatar
      main: fix wrong log level printed at first box.cfg{} · 41ead021
      Ilya Verbin authored
      The `log_level' configuration parameter can be set as a number or a string.
      When it is a string, cfg_geti() returns 0. Use log_default->level instead,
      which is initialized earlier during box_init_say().
      
      Closes #8287
      
      NO_DOC=bugfix
      NO_CHANGELOG=minor bug
      41ead021
    • Serge Petrenko's avatar
      replication: add remote peer connection timeout · 0486a489
      Serge Petrenko authored
      We use coio_connect() to connect the replica to a remote peer. It
      implies no timeout, and does a non-blocking connect() to the peer and
      then waits for the socket to become writable indefinitely.
      
      When the remote peer changes its IP address, connect() might try
      connecting to the old address for as long as ~ 2 minutes (given the
      default tcp_syn_retries value of 6).
      
      This blocks replica from trying to reconnect to the updated address and
      is pretty inconvenient.
      
      Let's use coio_connect_timeout() instead and use
      replication_disconnect_timeout() as a timeout, like everywhere else in
      master-replica communication.
      
      Closes #7294
      
      NO_DOC=bugfix
      0486a489
    • Yaroslav Lobankov's avatar
      test: add cleanup to digest_crc32_recording_test · 5cbb0daf
      Yaroslav Lobankov authored
      Add missing `server:drop()` to digest_crc32_recording_test.lua to avoid
      running tarantool processes after the test.
      
      NO_DOC=test fix
      NO_TEST=test fix
      NO_CHANGELOG=test fix
      5cbb0daf
    • Vladimir Davydov's avatar
      test: fix gh_7974_force_recovery_bugs flaky test · 1490228a
      Vladimir Davydov authored
      The test fails with
      
       fail | 2023-03-01 15:54:30.550 [3724975] main/103/server_instance.lua
       F> can't initialize storage: unlink, called on fd 63,
       aka unix/:(socket), peer of unix/:(socket): Address already in use
      
      We fixed a similar issue in commit 3d3e9dea ("test: fix flaky
      box-luatest/gh_7917_log_row_on_recovery_error_test") by using unique
      instance names. Let's do the same here.
      
      Fixes commit b1095c1c ("memtx: fix force recovery handling").
      Follow-up #7974
      
      NO_DOC=test
      NO_CHANGELOG=test
      1490228a
  6. Mar 01, 2023
    • Sergey Bronnikov's avatar
      box: fix segfault in box.internal.compact · 6a3e3133
      Sergey Bronnikov authored
      There is an internal Lua function `box.internal.compact` that used in
      `index_object:compact()` [1]. Tarantool has crashed when
      `box.internal.compact` running with id of non-existent space.
      
      Patch adds spaces cache initialization to box_init() and removes
      excessive check in space_cache_destroy().
      
      1. https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_index/compact/
      
      Fixes #8196
      
      NO_DOC=bugfix for internal Lua function
      NO_CHANGELOG=bugfix for internal Lua function
      6a3e3133
    • Georgiy Lebedev's avatar
      memtx: fix force recovery handling · b1095c1c
      Georgiy Lebedev authored
      Force recovery needs to follow the following logic: any unsuccessful system
      space request must make recovery fail (including failure to decode an xrow,
      when we are not sure we have finished processing system space request). If
      the request is a non-insert one (e.g., raft or synchro) or addresses a user
      space, it means we have finished processing system space requests, and from
      this moment force recovery can be enabled — change the behaviour
      accordingly.
      
      We assume the request order in the snapshot is the following:
      1. system space requests;
      2. user space requests;
      3. non-insert requests (e.g., raft or synchro).
      
      Refactor the force recovery logic: add a enumeration to track snapshot
      recovery state and add a new diagnostic for the case when the snapshot
      contains has no system spaces.
      
      Closes #7974
      
      NO_DOC=bugfix
      b1095c1c
    • Georgiy Lebedev's avatar
      box: add `space_id_is_system` helper · 928e5733
      Georgiy Lebedev authored
      In some cases we don't have the whole space struct, but we want to
      determine whether the provided space identifier corresponds to a system
      space — add a `space_id_is_system` helper and refactor `space_is_system` to
      reuse it.
      
      Needed for #7974
      
      NO_CHANGELOG=refactoring
      NO_DOC=refactoring
      NO_TEST=refactoring
      928e5733
    • Vladimir Davydov's avatar
      git: mark snap and xlog files as binary · 24dd505f
      Vladimir Davydov authored
      We often commit snap/xlog files for tests. A snap/xlog file is binary,
      but it contains a plain text header and, as a result, may be identified
      as a text file by git, which would enable checkpatch checks for it.
      Apparently, we don't need to check these files so let's force git to
      identify them as binary.
      
      NO_DOC=git
      NO_TEST=git
      NO_CHANGELOG=git
      24dd505f
    • Ilya Verbin's avatar
      box: make space_foreach() strictly ordered · 2c39ff71
      Ilya Verbin authored
      This also changes the order in which spaces are stored in .snap files.
      
      Currently space_foreach() iterates over spaces in the following order:
      1. Spaces with id in the range [256..510], ordered by id;
      2. All other (non-system) spaces in unspecified order.
      
      This patch changes the order to:
      1. Spaces with id in the range [256..511], ordered by id;
      2. All other (non-system) spaces, ordered by id.
      
      Strict ordered of non-system spaces is required by users who iterate
      over .snap files with xlog.pairs().
      
      Closes #7954
      
      @TarantoolBot document
      Product: Tarantool
      Title: Update the description of .snap file format
      Root document: https://www.tarantool.io/en/doc/latest/dev_guide/internals/file_formats/#the-snapshot-file-format
      
      Change "the .snap file’s records are ordered by space id" to:
      
      Since Tarantool 3.0 the .snap file's records have the following order:
      1. System spaces (id >= 256 && id <= 511), ordered by id;
      2. All other (non-system) spaces, ordered by id.
      
      In older versions of Tarantool the order of non-system spaces is
      unspecified.
      2c39ff71
    • Sergey Bronnikov's avatar
      httpc: add a test with decoding using a custom body decoder · cccd1f9a
      Sergey Bronnikov authored
      Follows up #8363
      
      NO_CHANGELOG=see previous commit
      NO_DOC=added a test
      cccd1f9a
    • Sergey Bronnikov's avatar
      httpc: add a decoders to a http response · 83168b25
      Sergey Bronnikov authored
      Patch fixes a bug when body in response couldn't be decoded:
      
      NO_WRAP
      ```
      tarantool> httpc = require('http.client').new()
      tarantool> response = httpc:get('https://jsonplaceholder.typicode.com/todos/1'
      
      )
      tarantool> response:decode()
      
      ---
      - error: 'builtin/http.client.lua:301: attempt to index field ''decoders'' (a nil
          value)'
      ...
      ```
      NO_WRAP
      
      Now response object contains table with decoders defined by user in his
      http client instance. We hide this table on response serialization by
      adding underscore because decoders there is not a part of API.
      
      Reported-by: default avatarAlexander Turenko <alexander.turenko@tarantool.org>
      
      Fixes #8363
      
      NO_DOC=bugfix
      83168b25
    • Igor Munkin's avatar
      luajit: bump new version · 48f73867
      Igor Munkin authored
      * test: make skipcond helper more convenient
      * test: introduce test:skiprest TAP helper
      * test: introduce test:skipall TAP helper
      * test: stop using utils.selfrun in tests
      * ci: use LuaJIT-test target in testing workflows
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      NO_CHANGELOG=test
      48f73867
  7. Feb 27, 2023
Loading