Skip to content
Snippets Groups Projects
  1. Feb 15, 2024
    • Igor Munkin's avatar
      luajit: bump new version · aba538da
      Igor Munkin authored
      * test: fix initialization in lj-549-lua-load.test.c
      * codehealth: add `nd` to the codespell ignore list
      * LJ_GC64: Always snapshot functions for non-base frames.
      * Avoid assertion in case of stack overflow from stitched trace.
      * Fix recording of __concat metamethod.
      * Avoid out-of-range number of results when compiling select(k, ...).
      * Consider slots used by upvalues in use-def analysis.
      * Only emit proper parent references in snapshot replay.
      * Optimize table.new() with constant args to (sinkable) IR_TNEW.
      * Followup fix for embedded bytecode loader.
      * Fix embedded bytecode loader.
      * LJ_GC64: Fix HREFK optimization.
      * Fix unsinking of IR_FSTORE for NULL metatable.
      * Fix zero stripping in %g number formatting.
      * Follow-up fix for stack overflow handling cleanup.
      * Cleanup stack overflow handling.
      * Improve error reporting on stack overflow.
      * sysprof: disable runtime host symtab updates
      * codehealth: fix the typo
      * Simplify handling of instable types in TNEW/TDUP load forwarding.
      * Respect jit.off() on pending trace exit.
      * Limit exponent range in number parsing.
      * Emit sunk IR_NEWREF only once per key on snapshot replay.
      
      Closes #7937
      Closes #8140
      Part of #9145
      Part of #9595
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      aba538da
  2. Feb 13, 2024
    • Yaroslav Lobankov's avatar
      test: bump test-run to new version · 4a0bfc9c
      Yaroslav Lobankov authored
      Bump test-run to new version with the following improvements:
      
      - Bump luatest to 1.0.0-5-gf31fe34 [1]
      - get_iproto_port: remove duplicates [2]
      - requirements: bump gevent to 22.10.2 [3]
      - Fix decoding error when reading server's log file [4]
      
      [1] tarantool/test-run@bfcc9e8
      [2] tarantool/test-run@da98d7f
      [3] tarantool/test-run@bc1c473
      [4] tarantool/test-run@434cbec
      
      NO_DOC=test
      NO_TEST=test
      NO_CHANGELOG=test
      
      (cherry picked from commit d75cd423)
      4a0bfc9c
  3. Feb 09, 2024
    • Ilya Verbin's avatar
      key_def: ignore json path in key_def_find_by_fieldno · 7dbdd493
      Ilya Verbin authored
      This function returns a key_def part by a field number. However, currently
      it returns NULL for parts that contain a JSON path to indexed data. Fix it.
      
      Needed for tarantool/tarantool-ee#671
      
      NO_DOC=bugfix
      NO_CHANGELOG=not visible in CE
      
      (cherry picked from commit cb0264c3)
      7dbdd493
    • Serge Petrenko's avatar
      replication: fix ER_PROTOCOL in relay · a708a94a
      Serge Petrenko authored
      We've had numerous problems with transaction boundaries in replication.
      They were mostly caused by various cases when either the beginning or
      end of the transaction happened to be a local row. Local rows are not
      replicated, so the peer saw "corrupted" transactions with either no
      beginning or no end flag, even though the transaction contents were
      fine.
      
      The problem with starting a transaction with a local row was solved in
      commit f41d1ddd ("wal: fix tx boundaries"), and that fix seems to
      continue working fine to this day.
      
      The problem with ending transactions with a local row was first fixed
      in commit 25382617 ("replication: append NOP as the last tx row"),
      however there were problems with this approach: when a user tried to
      write to local spaces on a replica from a replication trigger, it made
      it impossible to ever start replicating from replica back to master.
      
      Another fix was proposed: in commit f96782b5 ("relay: send rows
      transactionally") we made relay read a full transaction into memory and
      then send it all at once mangling with transanction start and end flags
      when necessary.
      
      After that the NOPs were removed in commit f5e52b2c ("box: get rid
      of dummy NOPs after transactions ending with local rows"), since relay
      became capable of fixing transaction boundaries itself.
      
      Turns out the assumption that relay always sees a full transaction and
      may correctly set transaction boundaries is wrong: when a replica
      reconnects to master we set its starting vclock[0] to the one master has
      at the moment of reconnect, so when recovery reads local rows with lsns
      less than vclock[0] it silently skips them without showing them to
      relay. When such skipped rows contain the is_commit flag for a currently
      sent transaction we get the same problem as described before.
      
      Let's make recovery track whether it has pushed any transaction rows to
      relay or not, and if yes, recover rows with is_commit flag regardless of
      whether the rows were already applied. To prevent recovering the same
      data twice, recovery replaces such row contents with NOPs. Basically the
      row is "recovered" only for the sake of showing its is_commit flag to
      relay. Relay will skip the row anyway, since it remains local.
      
      Follow-up #8958
      Closes #9491
      
      NO_DOC=bugfix
      
      (cherry picked from commit 60d45765)
      a708a94a
    • Serge Petrenko's avatar
      recovery: move lsn comparison after the replica_id assertion · 1c51dd5e
      Serge Petrenko authored
      It doesn't make sense to assert that replica_id is correct in a row
      after using that replica id to make some decisions based on it. Let's
      switch the order of operations: first assert that replica_id is correct,
      then compare row lsn with the already recovered one.
      
      In-scope-of #9491
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 4ec51b4b)
      1c51dd5e
  4. Feb 05, 2024
  5. Jan 29, 2024
  6. Jan 25, 2024
  7. Jan 23, 2024
    • Yaroslav Lobankov's avatar
      ci: fix fail on artifact upload to S3 for freebsd · 6c7fc21c
      Yaroslav Lobankov authored
      This patch fixes the following issue:
      
          Error: Unable to retrieve job ID by provided job name
      
      The `${{ github.job }} (${{ join(matrix.*, ', ') }})` expression was
      evaluated to `freebsd (Object)` instead of proper job name. It looks
      like the ChristopherHX/github-act-runner agent has a bug somewhere.
      Now the job name is made manually to bypass the issue.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 9717c31f)
      Unverified
      6c7fc21c
  8. Jan 17, 2024
  9. Jan 11, 2024
    • Yaroslav Lobankov's avatar
      ci: drop testing for macOS 12, add for macOS 14 · cdd512f9
      Yaroslav Lobankov authored
      - Drop testing for macOS 12 since macOS 14 is available
      - Add testing for macOS 14
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 19f9786f)
      Unverified
      cdd512f9
    • Yaroslav Lobankov's avatar
      ci: rm workarounds from `install-deps-osx` action · d1898f2d
      Yaroslav Lobankov authored
      The issue [1] is closed, and it looks like the problem doesn't exist
      now. So removing the respective workaround from the action.
      
      Also, removing the workaround with upgrading packages as it is not
      needed anymore because now `brew` just gives a warning instead of
      failing when the package is already installed.
      
      [1] https://github.com/gevent/gevent/issues/1721
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 3142fb66)
      Unverified
      d1898f2d
    • Yaroslav Lobankov's avatar
      ci: ignore fail on artifact upload to S3 for osx · ec4edf9a
      Yaroslav Lobankov authored
      From time to time, the step to upload job artifacts to S3 fails due to
      the following error:
      
          Error: Unable to retrieve job ID by provided job name
      
      It happens in the `s3-upload-artifact` action that tries to get job ID
      by the name via the `get-job-id` action. Job ID is needed to compose the
      proper artifact name. `get-job-id` performs a request to GitHub for the
      list of workflow jobs and finds the job by its name and then gets its
      ID.
      
      For some reason, sometimes GitHub doesn't give the complete job list and
      there is no chance to find the job and get its ID. At least, it has been
      noticed for the osx.yml workflow with 36 parallel jobs.
      
      It looks like the issue resides on the GitHub side and the simplest way
      to resolve this is to ignore the failure and not fail the whole workflow
      due to this GitHub bug.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 5137ea59)
      Unverified
      ec4edf9a
    • Yaroslav Lobankov's avatar
      ci: fix uploading build artifacts to S3 for freebsd · 20ae8e65
      Yaroslav Lobankov authored
      When the `freebsd` workflow has become a matrix one in 0bd15468
      ("ci: mv freebsd testing from per-commit to nightly"), we forgot
      to do the corresponding changes in the `Upload artifacts to S3` step.
      So adding missing changes.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 5fa3d5a2)
      Unverified
      20ae8e65
    • Yaroslav Lobankov's avatar
      ci: fix saving build artifacts for osx and freebsd · d7dde3fd
      Yaroslav Lobankov authored
      When `${{ matrix.tarantool-branch}}` is `release/3.0` or similar, the
      step to save build artifacts will fail with the following error:
      
          Error: Artifact name is not valid: osx-13-x86_64-release/3.0-debug.
          Contains the following character:  Forward slash /
      
      This commit fixes the issue.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 64363b43)
      Unverified
      d7dde3fd
    • Sergey Kaplun's avatar
      test: fix flaky tests when JIT is enabled · e45737d0
      Sergey Kaplun authored
      <box/net.box_reconnect_after_gh-3164.test.lua> and
      <vinyl/tx_gap_lock.test.lua> checking some objects that should be
      collected may fail because these objects are referenced as the upvalues
      for a function inlined on some JIT trace. The objects aren't leaked;
      tests don't consider the JIT semantics. See more details in [1].
      
      This patch disables JIT for the first test.
      
      The second test itself isn't affected since the commit
      tarantool/test-run@33fbace8307e64e66b0b2178ac952b2697673917 ("Add
      default server restart to each test run"). Because of this commit, the
      `tx.gap_locks` can't be affected by the use of the `create_iterator()`
      function in other tests.
      But to avoid similar situations in the future, the JIT is disabled for
      the `res.next()` function in test utils.
      
      [1]: https://github.com/tarantool/tarantool/wiki/LuaJIT-function-inlining
      
      Closes tarantool/tarantool-qa#233
      Closes tarantool/tarantool-qa#276
      
      NO_DOC=fix flaky test
      NO_CHANGELOG=see NO_DOC
      
      (cherry picked from commit 1a5e3bf3)
      Unverified
      e45737d0
  10. Jan 10, 2024
    • Sergey Bronnikov's avatar
      third_party: update libcurl from 8.4.0 to 8.5.0 · c722fc5a
      Sergey Bronnikov authored
      The patch updates curl module to the version 8.5.0 [1][2] that brings a
      number of functional fixes and security fix for CVE-2023-46219 (HSTS
      long file name clears contents), see description in [2], and updates
      CMake module for building curl library.
      
      Changes in CMake module:
      
      - Option `CURL_DISABLE_HEADERS_API` was added and disabled by default [4].
      - Option `CURL_DISABLE_BINDLOCAL` was added and disabled by default [5].
      - Option `CURL_DISABLE_INSTALL` was added and disabled by default [6].
      
      1. https://curl.se/changes.html#8_5_0
      2. https://github.com/curl/curl/compare/curl-8_4_0...curl-8_5_0
      3. https://curl.se/docs/CVE-2023-46219.html
      4. https://github.com/curl/curl/commit/33493db2af2dc6d9910f5d7c702aae6f63b8a6a6
      5. https://github.com/curl/curl/commit/20bb363f25151febe9026b41b8ad65df6db20b68
      6. https://github.com/curl/curl/commit/aace27b0965c10394544d1dacc9c2cb2fe0de3d3
      
      NO_DOC=libcurl submodule bump
      NO_TEST=libcurl submodule bump
      
      (cherry picked from commit b8d733df)
      c722fc5a
    • Sergey Bronnikov's avatar
      cmake: reflect changes with CURL_DISABLE_CRYPTO_AUTH · 55020d31
      Sergey Bronnikov authored
      The commit "lib: add ability to disable auths individually" [1][2] in
      Curl 8.3.0 removes CURL_DISABLE_CRYPTO_AUTH and introduces CMake options
      for a number crypto protocols.
      
      The patch reflects this change in Tarantool's build infrastructure.
      
      1. https://github.com/curl/curl/commit/e92edfbef64448ef461117769881f3ed776dec4e
      2. https://github.com/curl/curl/pull/11490
      
      Follows up #9086
      
      NO_CHANGELOG=third_party
      NO_DOC=third_party
      NO_TEST=third_party
      
      (cherry picked from commit c9daf9bf)
      55020d31
    • Sergey Bronnikov's avatar
      cmake: reflect changes with CURL_USE_OPENLDAP · 5d727272
      Sergey Bronnikov authored
      The commit "cmake: improve OpenLDAP builds" [1][2] in Curl deletes CMake
      option CURL_USE_OPENLDAP.
      
      The patch reflects this change in Tarantool's build infrastructure.
      
      1. https://github.com/curl/curl/commit/751e168d93b4a58f3fbbe2908c0041ae2f934329
      2. https://github.com/curl/curl/pull/12024
      
      Follows up #9086
      
      NO_CHANGELOG=third_party
      NO_DOC=third_party
      NO_TEST=third_party
      
      (cherry picked from commit 7e3dc177)
      5d727272
    • Sergey Bronnikov's avatar
      httpc: fix a race in GC finalizers · 7f3ded43
      Sergey Bronnikov authored
      `httpc` module has two GC-finalizers: the first one for a Lua http
      client (C function `luaT_httpc_cleanup`) and the second one for a Lua
      http chunked requests (C function `luaT_httpc_io_cleanup`) introduced in
      commit 417c6cb7 ("httpc: introduce stream input/output interface").
      In a C implementation HTTP requests depends on structures of HTTP client
      and there is a problem with destroying Lua objects in `httpc` module -
      these GC-finalizers are not synchronized. This could lead to at least
      two problems:
      
      There is a race with GC-finalization that leads to use-after-free errors
      when HTTP client is collected before collecting HTTP request. In a
      stacktrace the problem looks as below:
      
      ```
      0x55ca7d47652e in crash_collect+256
      0x55ca7d476f6a in crash_signal_cb+100
      0x7fb876c42520 in __sigaction+80
      0x55ca7d641e51 in curl_slist_free_all+35
      0x55ca7d441498 in httpc_request_delete+45
      0x55ca7d4653f1 in httpc_io_destroy+27
      0x55ca7d4674bc in luaT_httpc_io_cleanup+36
      0x55ca7d4e00c7 in lj_BC_FUNCC+70
      0x55ca7d4f8364 in gc_call_finalizer+668
      0x55ca7d4f8946 in gc_finalize+1387
      0x55ca7d4f91e2 in gc_onestep+864
      0x55ca7d4f9716 in lj_gc_fullgc+276
      ...
      ```
      
      Lua object `http.client` could be GC-collected when chunked HTTP request
      is alive. This will lead to an error "IllegalParams: io: request must be
      io" because we call a method when Lua object is already a `nil`.
      
      ```lua
      local url = 'https://bronevichok.ru/'
      local c = require('http.client').new()
      local r = c:get(url, {chunked = true})
      c = nil
      collectgarbage()
      collectgarbage()
      r:read(1) -- IllegalParams: io: request must be io
      ```
      
      The patch introduces two functions: `httpc_env_finish` and
      `curl_env_finish`, that prepares curl and httpc environments for
      destruction. HTTP client's GC finalizer now calls `httpc_env_finish`
      instead of `httpc_env_destroy`, this prevents from destroying memory
      that could be in use by HTTP requests. Additionally `httpc_env_finish`
      sets a flag `cleanup`. HTTP environment destroying is called when flag
      `cleanup` is set and a there are no active HTTP requests. The main idea
      of the patch is a synchronization of destructors for HTTP client and
      HTTP chunked requests. Unfortunately, GC will eventually collect HTTP
      client object after calling its `__gc`. To prevent this we put a
      reference to a Curl's userdata in Lua objects with HTTP chunked requests
      and HTTP default client.
      
      Fixes #9346
      Fixes #9453
      
      NO_DOC=bugfix
      
      (cherry picked from commit 17e9c6ff)
      7f3ded43
    • Sergey Bronnikov's avatar
      httpc: fix a crash triggered by gc · 3c617ca9
      Sergey Bronnikov authored
      Bump curl version to 8.4.0 triggers a crash in Tarantool due to commit
      "h2: testcase and fix for pausing h2 streams" [1]. The original
      reproducer involves etcd and an etcd-client Lua module, running
      etcd-client tests as a part of Tarantool integration testing is planned
      to do in scope of [1].
      
      However, the problem could be reproduced with a Lua code below:
      
      ```
      local url = 'https://google.com/'
      
      local c = require('http.client').new()
      
      r1 = c:get(url, {chunked = true})
      r1:read(1)
      r2 = c:get(url, {chunked = true})
      r2:read(1)
      r3 = c:get(url, {chunked = true})
      r3:read(1)
      r4 = c:get(url, {chunked = true})
      r4:read(1)
      
      c = nil
      collectgarbage()
      collectgarbage()
      
      r1:read(1)
      r2:read(1)
      r3:read(1)
      r4:read(1)
      
      collectgarbage()
      collectgarbage()
      ```
      
      According to Curl documentation, `curl_multi_cleanup` [1] must be called
      before any easy handles are cleaned up. The patch adds a cleanup of easy
      handles on running `curl_env_destroy`, right before calling
      `curl_multi_cleanup`. The patch uses a function 'curl_multi_get_handles'
      that returns all added easy handles introduced in Curl 8.4.0. Therefore
      bump to 8.4.0 is required.
      
      1. https://github.com/curl/curl/commit/6b9a591bf7d82031f463373706d7de1cba0adee6
      2. https://curl.se/libcurl/c/curl_multi_cleanup.html
      
      Fixes #9283
      
      1. https://github.com/tarantool/tarantool/issues/9093
      
      NO_DOC=bugfix
      NO_TEST=no simple reproducer, covered by tests in etcd-client
      
      (cherry picked from commit c6e6dd93)
      3c617ca9
    • Sergey Bronnikov's avatar
      httpc: prefer curl headers in submodule by default · dfc46bc0
      Sergey Bronnikov authored
      FreeBSD instances in Tarantool CI have installed libcurl package (as a
      dependency of Zabbix monitoring agent). Curl 8.4.0 introduces a new
      function `curl_multi_get_handles` that is used in the following commit
      in `src/curl.c`, but libcurl system package has no such symbol in
      headers. On building on FreeBSD in Tarantool CI C compiler produces a
      warning about implicit declaration of function, because it looks at
      system headers by default and due to enabled CMake option
      `-DENABLE_WERROR=ON` building has failed:
      
      ```
      [ 63%] Building C object src/CMakeFiles/server.dir/title.c.o
      /.cache/act/55d136250dd94303/hostexecutor/src/curl.c:266:17: error: implicit declaration of function 'curl_multi_get_handles' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                      CURL **list = curl_multi_get_handles(env->multi);
                                    ^
      /.cache/act/55d136250dd94303/hostexecutor/src/curl.c:266:17: note: did you mean 'curl_multi_add_handle'?
      /usr/local/include/curl/multi.h:140:23: note: 'curl_multi_add_handle' declared here
      CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle,
                            ^
      /.cache/act/55d136250dd94303/hostexecutor/src/curl.c:266:10: error: incompatible integer to pointer conversion initializing 'CURL **' (aka 'void **') with an expression of type 'int' [-Werror,-Wint-conversion]
                      CURL **list = curl_multi_get_handles(env->multi);
                             ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      2 errors generated.
      ```
      
      The patch fixes that by reordering headers passed to compiler, see [1].
      
      1. https://cmake.org/cmake/help/latest/command/include_directories.html
      
      Needed for #9283
      
      NO_CHANGELOG=build
      NO_DOC=build
      NO_TEST=build
      
      (cherry picked from commit 0a3500d3)
      dfc46bc0
    • Sergey Bronnikov's avatar
      tests: suppress message 'Broken pipe exception handling' · 91e53899
      Sergey Bronnikov authored
      Message below is printed every time on shutdown `httpd.py` when
      `test/app-luatest/http_client_test.lua` is running by luatest without
      capturing stdout:
      
      ```
      BrokenPipeError: [Errno 32] Broken pipe exception handling
      ```
      
      The patch suppress this exception by adding a handler for a signal
      `SIGPIPE`.
      
      NO_CHANGELOG=testing
      NO_DOC=testing
      NO_TEST=testing
      
      (cherry picked from commit 8912df25)
      91e53899
    • Sergey Bronnikov's avatar
      httpc: fix typos · 489d89a2
      Sergey Bronnikov authored
      NO_CHANGELOG=fixed typos
      NO_DOC=fixed typos
      NO_TEST=fixed typos
      
      (cherry picked from commit 2aaf0115)
      489d89a2
    • Sergey Bronnikov's avatar
      cmake: propagate debug mode to third party components · 32cc24f6
      Sergey Bronnikov authored
      The patch propagates debug mode to building of third party components:
      c-ares, libcurl, libeio, nghttp2, zstd. Other components enables debug
      mode automatically once it is enabled in Tarantool build.
      
      Curl has two similar options that enables debug mode, however they are
      different: `ENABLE_CURLDEBUG` enable memory debugging and `ENABLE_DEBUG`
      restricts code which is only compiled for debug enabled builds [1].
      
      1. https://everything.curl.dev/internals/memory-debugging
      
      NO_CHANGELOG=build
      NO_DOC=build
      NO_TEST=build
      
      (cherry picked from commit 3dbf19b6)
      32cc24f6
    • Sergey Bronnikov's avatar
      third_party: update libcurl from 8.3.0 to 8.4.0 · e2fcf100
      Sergey Bronnikov authored
      The patch updates curl module to the version 8.4.0 [1] that brings a
      number of functional fixes and security fix of SOCKS5 heap buffer
      overflow (CVE-2023-38545), see description in [2] and commit
      fb4415d8aee6 ("socks: return error if hostname too long for remote
      resolve") in [3].
      
      1. https://curl.se/changes.html#8_4_0
      2. https://curl.se/docs/CVE-2023-38545.html
      3. https://github.com/curl/curl/commit/fb4415d8aee6c1045be932a34fe6107c2f5ed147
      
      NO_DOC=libcurl submodule bump
      NO_TEST=libcurl submodule bump
      
      (cherry picked from commit ee575fef)
      e2fcf100
  11. Jan 09, 2024
    • Alexander Turenko's avatar
      test: allow to quote CLI arguments in justrun · bbbfb7d2
      Alexander Turenko authored
      Sometimes shell quoting is needed in tests to trigger a validation
      error. For example, if the argument is empty or contains whitespaces.
      
      Left the default unchanged to don't affect existing tests.
      
      Part of #8862
      
      NO_DOC=testing helper change
      NO_CHANGELOG=see NO_DOC
      NO_TEST=see NO_DOC
      
      (cherry picked from commit 761273f2)
      bbbfb7d2
    • Gleb Kashkin's avatar
      test: make treegen.clean more durable · 635b5a1d
      Gleb Kashkin authored
      Usually treegen.clean is called after a test by g.after_all function
      or an equivalent. In some rare cases internal helpers use their own
      treegen and clean up after themself. In such a case, treegen.clean
      would look for an internal list of all directories and find nil. This
      causes an error in ipairs iteration in internal logic and fails the
      whole test.
      
      This patch adds minor durability improvement for such a case. Now if
      internal list of all directories is nil (e.g. when treegen.clean was
      called beforehand), the function does nothing.
      
      Part of #8967
      
      NO_DOC=test helper update
      NO_CHANGELOG=see NO_DOC
      NO_TEST=see NO_DOC
      
      (cherry picked from commit 9b0896d9)
      635b5a1d
    • Nikolay Shirokovskiy's avatar
      test: reset readline configuration for justrun too · 7e769d99
      Nikolay Shirokovskiy authored
      This fixes gh_8613_new_cli_behaviour_test run with my custom .inputrc
      (I use vi-cmd-mode-string/vi-ins-mode-string).
      
      We already reset readline configuration in interactive_tarantool.lua.
      
      Follows up ground works done for #7774
      
      NO_DOC=test harness
      NO_TEST=test harness
      NO_CHANGELOG=test harness
      
      (cherry picked from commit 028c65e0)
      7e769d99
    • Alexander Turenko's avatar
      test: adjust treegen for TMPDIR ending with slash · 659a646b
      Alexander Turenko authored
      Our macOS runners have such a TMPDIR value. It breaks
      `config-luatest/basic_test.lua`, because net.box seems unable to connect
      a Unix domain socket using an URI with a double slash in the middle.
      
      See the comment in the code for details.
      
      NO_DOC=testing helper change
      NO_CHANGELOG=see NO_DOC
      NO_TEST=see NO_DOC
      
      (cherry picked from commit 8c3b4c08)
      659a646b
    • Alexander Turenko's avatar
      test: return a dir from treegen.prepare_directory() · db86ddaf
      Alexander Turenko authored
      It makes the helper a bit more convenient to use it tests.
      
      NO_DOC=testing helper
      NO_TEST=see NO_DOC
      NO_CHANGELOG=see NO_DOC
      
      (cherry picked from commit f81b1aac)
      db86ddaf
  12. Dec 29, 2023
  13. Dec 28, 2023
    • Alexander Turenko's avatar
      box: support TT_* uri env vars with query params · aadec75d
      Alexander Turenko authored
      `TT_LISTEN` and `TT_REPLICATION` environment variables were interpreted
      by `box.cfg()` in a confusing way if query parameters with values are
      present. For example, `localhost:3301?transport=plain` was interpreted
      as the following map: `{['localhost:3301?transport'] = 'plain'}`. Later,
      `box.cfg()` looks into this map for known URI fields like `login`,
      `password`, `uri`, `host`, `service` and so on. It found nothing and
      doesn't start a listening socket.
      
      The reason of such a behaviour is that the environment value is
      interpreted as a mapping in the `key=value,key=value` format, because
      there is `=` in it.
      
      The patch changes this behavior for an `key=value,key=value` environment
      variable that contains `?` in a key: now such a value is not interpreted
      as a mapping.
      
      Note: Everything said above is also applicable to the so called
      multilisten case: when several URIs are defined in the environment
      variable. The following URI list is interpreted correctly now.
      
      NOWRAP
      ```sh
      export TT_LISTEN=localhost:3301?transport=plain,localhost:3302?transport=plain
      ```
      NOWRAP
      
      Note 2: Examples are given with the `plain` transport, which is default,
      but the query parameters are the way to define TLS options. They're
      supported in Tarantool Enterprise Edition, see [1].
      
      Fixes #9539
      
      NO_DOC=bugfix
      
      [1]: https://www.tarantool.io/en/doc/latest/enterprise/security/#traffic-encryption
      
      (cherry picked from commit dde7342c)
      aadec75d
  14. Dec 22, 2023
    • Alexander Turenko's avatar
      doc: drop 'breaking change' mark from 2.11.2 notes · d0fbb0ca
      Alexander Turenko authored
      The release notes states one change as breaking, but the new behavior
      was enabled on 3.0 branch, see commit 6cb39116 ("box: set default
      c_func_iproto_multireturn to new"), and not enabled on 2.11 branch.
      
      Thanks @mons for the notice!
      
      NO_DOC=no code changes
      NO_CHANGELOG=see NO_DOC
      NO_TEST=see NO_DOC
      d0fbb0ca
    • Mergen Imeev's avatar
      sql: properly check result of decimal parsing · 450da026
      Mergen Imeev authored
      This patch fixes a crash that can occur when SQL parses a decimal
      literal that represents a number greater than or equal to 10^38.
      
      Closes #9469
      
      NO_DOC=bugfix
      
      (cherry picked from commit 05551a55)
      450da026
    • Astronomax's avatar
      box: fix failing assertion in box_promote_qsync · d9608c99
      Astronomax authored
      Fixed a bug when the assertion in box_promote_qsync would fail.
      The assertion is that at the moment when box_promote_qsync is
      executed, no other promote is executed. It turned out that this
      assertion is basically incorrect. Now after this patch the newly
      elected leader is trying to repeat box_promote_qsync in
      box_raft_update_synchro_queue until it fails due to the fact
      that some other promotion is currently being executed.
      
      Closes #9263
      
      NO_DOC=bugfix
      
      (cherry picked from commit ebe4cd9b)
      d9608c99
    • Maksim Kokryashkin's avatar
      ci: fix action for submodule bump · f9ccb414
      Maksim Kokryashkin authored
      It turns out, GitHub actions don't allow `env` usage in their
      definition. This patch fixes this issue in submodule bump action
      by moving the environment definition into the executed shell
      script.
      
      NO_DOC=CI
      NO_TEST=CI
      NO_CHANGELOG=CI
      f9ccb414
    • Maksim Kokryashkin's avatar
      ci: add optional submodule bump step · e2f2db07
      Maksim Kokryashkin authored
      Currently, if there is a need to test submodule integration with
      Tarantool and its integration, it is required to create a PR.
      That is inconvenient, so this patch introduces the option to run
      the same jobs that are triggered by the `full-ci` label as
      reusable workflows with the desired submodule revision. This
      allows for integration testing of submodules within their
      designated repositories.
      
      NO_DOC=CI
      NO_TEST=CI
      NO_CHANGELOG=CI
      e2f2db07
  15. Dec 21, 2023
    • Igor Munkin's avatar
      luajit: bump new version · f8fbfa4f
      Igor Munkin authored
      * FFI: Fix dangling reference to CType in carith_checkarg().
      * FFI: Fix dangling reference to CType. Improve checks.
      * FFI: Fix dangling reference to CType.
      * FFI: Ensure returned string is alive in ffi.typeinfo().
      * FFI: Fix missing cts->L initialization in argv2ctype().
      * Abstract out on-demand loading of FFI library.
      * test: fix flaky finalizer error handler tests
      * test: adjust lua-Harness test error assertion
      * Fix snapshot PC when linking to BC_JLOOP that was a BC_RET*.
      * snap: check J->pc is within its proto bytecode
      * Fix HREFK forwarding vs. table.clear().
      * Fix FOLD rule for BUFHDR append.
      * Prevent CSE of a REF_BASE operand across IR_RETF.
      * test: rewrite sysprof test using managed execution
      * test: disable buffering for the C test engine
      
      Part of #9145
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      f8fbfa4f
Loading