Skip to content
Snippets Groups Projects
  1. Mar 14, 2023
    • Mergen Imeev's avatar
      sql: incomparable types in ORDER BY and GROUP BY · 0ead015b
      Mergen Imeev authored
      This patch prohibits the use of ARRAY, MAP and INTERVAL in ORDER BY.
      In addition, GROUP BY now also checks the types of the arguments when
      building the VDBE.
      
      Closes #6668
      
      NO_DOC=bugfix
      0ead015b
    • Mergen Imeev's avatar
      sql: support collation for ANY · da8336ce
      Mergen Imeev authored
      This patch makes SQL to support collations for the ANY type.
      
      Closes #8070
      
      NO_DOC=ANY already supports collations in BOX.
      da8336ce
    • Denis Smirnov's avatar
      box: fix 64-bit schema version for message pack. · ec9bdca7
      Denis Smirnov authored
      0b876b76 introduced `uint64_t` schema version to deal with the
      possible 32-bit counter overflow problem. But for some reason
      message pack still serialized 64-bit schema version as 32-bit one.
      Current commit fixes the issue.
      
      NO_CHANGELOG=internal fix
      NO_DOC=internal fix
      NO_TEST=internal fix
      ec9bdca7
  2. Mar 13, 2023
    • Nikolay Shirokovskiy's avatar
      Bump msgpuck submodule · 3c4e5526
      Nikolay Shirokovskiy authored
      This update pulls the following commits:
      
      * Add mp_memcpy and mp_memcpy_safe
      * Add mp_encode_*_safe family that handles buffer overflow
      
      Required for refactoring emerged when fixing issues:
      
      https://github.com/tarantool/tarantool-ee/issues/357
      https://github.com/tarantool/tarantool-ee/issues/358
      
      NO_DOC=submodule update
      NO_TEST=submodule update
      NO_CHANGELOG=submodule update
      3c4e5526
    • Vladimir Davydov's avatar
      test: fix flaky box/gh-6293-implement-new-net-stat · 4e9bffc1
      Vladimir Davydov authored
      The test checks that the number of IPROTO requests handled by a test
      server is reported correctly in statistics. Since a net.box connection
      sends a few "service" requests (e.g. to fetch schema), the test excludes
      them from the total count. The problem is this doesn't always work with
      service requests sent to enable graceful shutdown.
      
      To enable graceful shutdown a client sends an IPROTO_WATCH request.
      The server replies to the client with IPROTO_EVENT. Upon receiving
      the event, the client sends another IPROTO_WATCH request to ack it.
      The whole procedure is fully asynchronous, which means it may finish
      after we start processing user requests over the connection.
      
      To correctly account service requests, let's disable this feature.
      
      Closes tarantool/tarantool-qa#269
      
      NO_DOC=test fix
      NO_CHANGELOG=test fix
      4e9bffc1
  3. Mar 11, 2023
    • Igor Munkin's avatar
      luajit: bump new version · 15e62a67
      Igor Munkin authored
      * ARM64: Avoid side-effects of constant rematerialization.
      * ARM64: Fix {AHUV}LOAD specialized to nil/false/true.
      * ARM64: Fix pcall() error case.
      * Fix math.min()/math.max() inconsistencies.
      * test: add test case for math.modf
      
      Closes #6163
      Part of #8069
      Follows up #7230
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      15e62a67
  4. Mar 10, 2023
    • Nikolay Shirokovskiy's avatar
      prbuf: add prbuf_max_record_size · 2c7490e7
      Nikolay Shirokovskiy authored
      This is the maximum record size we can store in the buffer.
      
      Needed for:
        https://github.com/tarantool/tarantool-ee/issues/358
      
      NO_DOC=internal
      NO_CHANGELOG=internal
      2c7490e7
    • Georgiy Lebedev's avatar
      iproto: write push responses to flight recorder · c71bfcfa
      Georgiy Lebedev authored
      Apparently, push responses were not considered when designing flight
      recorder: write push responses to flight recorder immediately when a push
      is initiated (i.e., synchronously).
      
      Needed for tarantool/tarantool-ee#338
      
      NO_CHANGELOG=<affects EE feature>
      NO_DOC=<bugfix>
      NO_TEST=<tested in EE PR>
      c71bfcfa
    • Ilya Verbin's avatar
      test: add workaround for gh_3211_per_module_log_level_test · f1ae7264
      Ilya Verbin authored
      Periodically this test hangs on pthread_join() on macOS.
      This patch adds a workaround until #8423 is implemented.
      
      Closes #8420
      
      NO_DOC=test fix
      NO_CHANGELOG=test fix
      f1ae7264
    • Andrey Saranchin's avatar
      icu: fix potential UB in DangiCalendar · 4305d397
      Andrey Saranchin authored
      Method `getDangiCalZoneAstroCalc` is used to calculate an argument for
      base class constructor when it is not built yet. Fortunately, it does not
      use class fields - let's make it static to use it before class
      initialization legitimately.
      
      Closes tarantool/security#96
      
      NO_TEST=no behaviour changes
      NO_CHANGELOG=no behaviour changes
      NO_DOC=no behaviour changes
      4305d397
    • Andrey Saranchin's avatar
      alter: fix potential UB in RebuildFuncIndex · b5163ef7
      Andrey Saranchin authored
      Method `func_index_def_new` is used to calculate an argument for base
      class constructor when it is not built yet. Fortunately, it does not
      use class fields - let's make it static to use it before class
      initialization legitimately.
      
      Part of tarantool/security#96
      
      NO_TEST=no behaviour changes
      NO_CHANGELOG=no behaviour changes
      NO_DOC=no behaviour changes
      b5163ef7
  5. Mar 09, 2023
    • Gleb Kashkin's avatar
      console: configure continuation · 56a43147
      Gleb Kashkin authored
      Continuation marker can be set up with `\set continuation` command.
      Works on both server and client side in any language.
      
      Closes #4317
      Requires #7357
      
      @TarantoolBot document
      Title: introduce line carrying slash
      
      Now we can use multiline commands with lines ending by configuring
      continuation symbol. Works only when there is no set delimiter.
      Consider the example where the marker is set, used and removed:
      ```
      tarantool> \set continuation on
      ---
      - true
      ...
      
      tarantool> a = 10\
               > + 12
      ---
      ...
      
      tarantool> \set continuation off
      ---
      - true
      ...
      
      tarantool> a = 10\
      ---
      - error: '[string "a = 10\"]:1: unexpected symbol near ''\'''
      ...
      
      tarantool>
      
      ```
      56a43147
    • 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
  6. 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
  7. 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
  8. 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
  9. 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
Loading