Skip to content
Snippets Groups Projects
  1. Jan 19, 2024
    • Aleksandr Lyapunov's avatar
      memtx: simplify and refactor memtx_tx_history_add_stmt · 6e106e97
      Aleksandr Lyapunov authored
      Almost completely rewrite, simplify and comment this part of code.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 63da3bed)
      6e106e97
    • Aleksandr Lyapunov's avatar
      memtx: replace is_pure_insert flag with is_own_change flag · e73208c2
      Aleksandr Lyapunov authored
      The latter flag is a bit wider: it reveals not only inserting
      statements after deleting by the same transaction, but also
      replacing and deleting statements after all kinds of previois
      changes but the same transaction. This extended behavior will
      be used in further commits.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 3cfa6756)
      e73208c2
    • Aleksandr Lyapunov's avatar
      memtx: remove does_require_old_tuple member · baf340a5
      Aleksandr Lyapunov authored
      It was an ugly solution when MVCC engine requires outside engine
      to set this flag which is not convenient.
      
      Remove it and use mode arguments to set up proper read trackers.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 74149734)
      baf340a5
    • Aleksandr Lyapunov's avatar
      memtx: remove dead code · 9ca2b75a
      Aleksandr Lyapunov authored
      The function memtx_tx_story_delete is expected to delete fully
      unlinked stories and thus should not try to unlink something by
      itself. So remove unlink and add asserts instead.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 07067407)
      9ca2b75a
    • Aleksandr Lyapunov's avatar
      memtx: join and unify mvcc gap trackers · 7cd97957
      Aleksandr Lyapunov authored
      Now there are three kinds of very close trackers:
      * The transaction have read some tuple that is not committed and
        thus not visible. This kind is now stored as gap_item with
        is_nearby = false.
      * The transaction made a select or range scan, reading a key or
        range between two adjacent tuples of the index. This kind is
        stored as gap_iteam with is_nearby = true.
      * A transaction completed a full scan of unordered index. This
        kind is stored as full_scan_item.
      
      All these trackers serve for the same thing: to record a fact
      that a transaction read something but didn't see anything.
      
      There are some problems with the current solution:
      * gap_item with is_nearby = false has several unused members that
        just consume space.
      * bool is_nearby flag for type descriptin is an ugly solution.
      * full_scan_item is separated from logically close items.
      
      This commit joins all these trackers under one base (that is
      struct gap_item_base) and solves problems above.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit f8d97a2e)
      7cd97957
    • Aleksandr Lyapunov's avatar
      memtx: logically divide read tracking and gap tracking · d10baaf9
      Aleksandr Lyapunov authored
      Now read trackers are used both for cases when a transaction has
      read an existing value and it has read nothing (read by key but
      there was no visible tuple in this place). For latter case an
      additional index_mask was used to identify from which index the
      read was done. Along with that there was per-index interval gap
      trackers.
      
      This patch divides area of responsibility between read trackers
      and gap tracker in the following way:
      * Reads of existing visible values are stored in read trackers.
      * Reads of non-existing or non-visible values are store in gap
        trackers.
      
      This new approach allows to provide new invariants: gap trackers
      are stored only at top of chain, and read trackers are stored
      only at topmost committed story in chain.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 7b8b78be)
      d10baaf9
    • Aleksandr Lyapunov's avatar
      memtx: rename nearby_gaps -> read_gaps · 0086b230
      Aleksandr Lyapunov authored
      In further commit this list will be used for tracking all read
      gaps, not only 'nearby'. Since this rename has rather huge
      diff, let's make it in separate commit.
      
      No logical changes.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit d3feb691)
      0086b230
    • Aleksandr Lyapunov's avatar
      memtx: check for ephemeral spaces in a uniform way · 618a9f01
      Aleksandr Lyapunov authored
      In our SQL implementation temporary spaces are used. They come to
      MVCC engine in two variants - NULL or ephemeral. In both cases
      MVCC engine must not do anything, there are several checks for
      that in different parts of code.
      
      Normalize these checks and make them similar to each other.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 86a8155c)
      618a9f01
    • Aleksandr Lyapunov's avatar
      memtx: drop memtx_tx_track_read_story_slow · 80c7ce62
      Aleksandr Lyapunov authored
      The only place where this static function is used is more general
      static function - memtx_tx_track_read_story. This is a bit
      confusing - usually slow variant stand for public inline 'fast'
      method.
      
      So merge both functions in one.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 32e41b7a)
      80c7ce62
    • Aleksandr Lyapunov's avatar
      memtx: fix lost gap and full scan items · bf33bbff
      Aleksandr Lyapunov authored
      By a mistake in 8a565144 a shortcut was added to procedure
      that handles gap write: it was considered that if the writing
      transaction is the same as reading - there is no actual conflict
      that must be stored further. That was a wrong decision: if such
      a transaction yields and another transaction comes and commits
      a value with the same key - the first one must go to conflicted
      state since it has read no more possible state.
      
      Another similar mistake was made in e6f5090c, where writing
      after full scan of the same transaction was not tracked as read.
      Obviously that was wrong: if some other transaction overwrites
      the key and commits - this transaction must go to read view since
      it did not see anything by this key which is not so anymore.
      
      Fix it, reverting the first commit and an modifying the second and
      add a test.
      
      Closes #8326
      
      NO_DOC=bugfix
      
      (cherry picked from commit b41c4546)
      bf33bbff
    • Aleksandr Lyapunov's avatar
      memtx: refactor handling point write · cc873ad5
      Aleksandr Lyapunov authored
      There's a special 'point hole' mechanism in mvcc transactional
      manager that manages point gap reads by full key when no raw
      tuple was found in the index. For instance, it's the only way
      to collect gap reads for non-tree indexes.
      
      Once a new tuple is inserted to the index, the read records are
      transferred to the normal read set in the corresponding story.
      Actually after that the 'point hole' record in no more needed.
      
      So let's remove it.
      
      While we are here, drop unused point_holes_size, improve names
      and comments.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 62c65639)
      cc873ad5
    • Aleksandr Lyapunov's avatar
      memtx: refactor mvcc story linking to the top of chain · 767b78d4
      Aleksandr Lyapunov authored
      Before this patch there were several different places in the code
      that deal with referencing tuple in space, setting in_index member
      and marking the story as retained or not. But logically all above
      is about the same - about placing a story to the top of a chain,
      i.e. the first story in version list to which index points.
      
      This commit refactors these things a bit. This mostly relates to
      two functions - memtx_tx_story_new and memtx_tx_story_link_top.
      
      Changes in memtx_tx_story_new are based on the fact that if a story
      is created by tuple, it is or immediately will be at the top of
      chain. Considering this we can omit argument `is_referenced_to_pk`
      and always create a story ready to be in top of chain. If a story
      is already in the top - nothing else is needed; if it is to become
      the top - memtx_tx_story_link_top must be called after.
      
      Further, linking to top of chain is needed exactly in two cases:
      * if a story just created by memtx_tx_story_new must become a top
      * if a chain is reordered involving the top story (the top and the
        next stories are swapped)
      These two cases are logically very close but still different.
      Even more, previously there were two functions for that:
      memtx_tx_story_link_top_light and memtx_tx_story_link_top
      correspondingly. This commit introduces one function for that
      (although with one more argument) that also incapsulates
      activities about referencing tuples and marking stories as
      retained.
      
      After this patch the rules are logical and simple:
      * if a tuple is inserted - call _story_new and _link_top(.. true).
      * if a story of existing clean tuple is needed - call _story_new.
      * if a chain is reordered involving top story - _link_top(.. false).
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit 202340b7)
      767b78d4
    • Aleksandr Lyapunov's avatar
      memtx: use xallocation in mvcc engine · 149c35b5
      Aleksandr Lyapunov authored
      Remove runtime allocation error handling and use panic-on-fail
      versions of allocation functions. Reasons for that:
      * Memory error handling was never tested an probably doesn't work.
      * Some return codes was ignored so the code had obvious flaws.
      * Rollback in case of memory error made some code overcomplicated.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=no new functionality added
      NO_TEST=no new functionality added
      NO_CHANGELOG=no new functionalily added
      
      (cherry picked from commit c951c9de)
      149c35b5
    • Aleksandr Lyapunov's avatar
      memtx: replace conflict trackers with read trackers · 41748afa
      Aleksandr Lyapunov authored
      Conflict trackers are used to store information that if some
      transaction is committed then some another transaction must be
      aborted. This happens when the first transaction writes some
      key while the other reads the same key. On the other hand there
      are another trackers - read trackers - that are designed to
      handle exactly the same situation. That's why conflict trackers
      can be simply replaced with read trackers.
      
      That would allow to remove conflict trackers as not needed
      anymore.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit a6c2b9ff)
      41748afa
    • Aleksandr Lyapunov's avatar
      xmemtx: refactor rollbacked stories · 204581ac
      Aleksandr Lyapunov authored
      If addition of a tuple is rolled back while the corresponding
      story is needed for something else (for example it stores a read
      set of another transaction) - the story cannot be deleted.
      Now there's a special flag `rollbacked` that is set to true
      for such stories, and the flag must be considered in places
      where history chains are scanned. That approach also requires
      psn to be set for rolled-back transactions, which surprisingly
      not as simple as it to say. All that makes the code complicated
      and hard to maintain.
      
      There's another approach for managing rolled back stories: simply
      set their del_psn to a low enough value (lower than any existing
      transaction's PSN) and (if necessary) push them to the end of
      history chain. Such a story would be invisible to any transaction
      due to already existing mechanisms, that's what is needed.
      
      In order to provide "low enough" del_psn it will be natural to
      assign real PSN starting from some predefined value, so any value
      below that predefined value will be less that any existing PSN and
      thus "low enough".
      
      Implement this more simple approach.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      
      (cherry picked from commit ba394a58)
      204581ac
    • Aleksandr Lyapunov's avatar
      memtx: add a couple of test cases to tx_man.test · 7e9bc0b0
      Aleksandr Lyapunov authored
      That's strange, but in this test in a group of simple test cases
      there are test cases that checks replaces, updates and deletes,
      but occasionally there's no test case that checks inserts.
      
      Fix it and add simple test cases for inserts.
      
      No logical changes.
      
      Part of #8648
      Part of #8654
      
      NO_DOC=new test case
      NO_CHANGELOG=new test case
      
      (cherry picked from commit 37b4561f)
      7e9bc0b0
    • Oleg Jukovec's avatar
      httpc: fix content-length with a stream · bd258a52
      Oleg Jukovec authored
      The description of CURLOPT_UPLOAD [1] is confusing:
      
          If you use PUT to an HTTP 1.1 server, you can upload data without
          knowing the size before starting the transfer if you use chunked
          encoding. You enable this by adding a header like
          "Transfer-Encoding: chunked" with CURLOPT_HTTPHEADER.
      
      In fact, libcurl adds this header itself. Actually we need to avoid
      adding this header by libcurl with CURLOPT_INFILESIZE [2].
      
      The CURLOPT_UPLOAD documentation has been updated [3].
      
      1. https://github.com/curl/curl/blob/555bacd6d522bcca497573765056354f4d5d7b33/docs/libcurl/opts/CURLOPT_UPLOAD.3
      2. https://curl.se/libcurl/c/httpput.html
      3. https://github.com/curl/curl/pull/11300
      
      Closes #8744
      
      NO_DOC=bugfix
      
      (cherry picked from commit e2e5ef4b)
      bd258a52
    • Vladimir Davydov's avatar
      Revert "build: do not disable hardening on AArch64 systems" · 0ad49345
      Vladimir Davydov authored
      This reverts commit 1c0a0c90.
      
      Cherry-picked by mistake. Tarantool 2.11 still depends on libgomp.
      
      NO_DOC=revert
      NO_TEST=revert
      NO_CHANGELOG=revert
      0ad49345
    • Ilya Verbin's avatar
      build: do not disable hardening on AArch64 systems · 3cf5ee28
      Ilya Verbin authored
      It was disabled because ligomp.a on some AArch64 systems (e.g. CentOS)
      is compiled without PIC support. Now Tarantool doesn't depend on ligomp,
      so it's safe to turn on PIC for AArch64 systems.
      
      Follow-up #7536
      
      NO_DOC=build
      NO_TEST=build
      
      (cherry picked from commit 5c1968ca)
      3cf5ee28
    • Ilya Verbin's avatar
      build: do not disable hardening on FreeBSD · 78008ab3
      Ilya Verbin authored
      It was disabled because dlsym tests failed when PIC is on (#7640).
      However, later it turned out that the issue is not related to PIC, and
      LuaJIT was turned off for such tests by commit 67e79b15 ("test: turn
      LuaJIT off in tests with dlsym"). Now it's safe to turn on PIC for FreeBSD.
      
      Follow-up #7536
      
      NO_DOC=build
      NO_TEST=build
      
      (cherry picked from commit 05eba830)
      78008ab3
    • Yaroslav Lobankov's avatar
      ci: extend default tests run with osx wokflows · 1b49ea4e
      Yaroslav Lobankov authored
      It was decided to include the `osx_debug.yml` and `osx_release.yml`
      workflows to the default tests run (without the `full-ci` label).
      Now we can get test results for macOS faster and without an extra
      load on CI.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit de404cb0)
      1b49ea4e
    • Nikita Zheleztsov's avatar
      limbo: set user for triggers on sync transaction · e878da54
      Nikita Zheleztsov authored
      Commit/rollback triggers are run asynchronously, upon receiving the
      write status from WAL. We can't run them in the original fiber that
      submitted the WAL request, because it would open a time window between
      writing a transaction to WAL and committing it in tx, which could lead
      to violating the cascading rolback principles. As a result,
      commit/rollback triggers run with admin privileges.
      
      The issue was already solved for confirming async transaction, but
      session and user are still not correct, when the transaction is
      confirmed by the limbo. Let's fix this issue by temporarily setting
      session and credentials to the original fiberfor running
      commit/rollback triggers.
      
      Closes #8742
      
      NO_DOC=bugfix
      
      (cherry picked from commit 8cd0cd09)
      e878da54
    • Nikita Zheleztsov's avatar
      limbo: fix commit/rollback failures with triggers · 6cc0383b
      Nikita Zheleztsov authored
      Currently some transactions on synchronous space fail to complete with
      the `ER_CURSOR_NO_TRANSACTION` error, when on_rollback/on_commit triggers
      are set.
      
      This is caused due to the fact, that some rollback/commit triggers
      require in_txn fiber variable to be set but it's not done when a
      transaction is completed from the limbo. Callbacks, which are used to
      work with iterators (`lbox_txn_pairs` and `lbox_txn_iterator_next`),
      acquire tnx statements from the current transactions, but they cannot
      do that, when this transaction is not assigned to the current fiber, so
      `ER_CURSOR_NO_TRANSACTION` is thrown.
      
      Let's assign in_txn variable when we complete transaction from the limbo.
      Moreover, let's add assertions, which check whether in_txn() is correct,
      in order to be sure, that `txn_complete_success/fail` always run with
      in_txn set.
      
      Closes #8505
      
      NO_DOC=bugfix
      
      (cherry picked from commit 6fadc8a0)
      6cc0383b
    • Yan Shtunder's avatar
      xreplication: recovery mixed transacrtions · 96edd75b
      Yan Shtunder authored
      See the docbot request for details.
      
      Closes #7932
      
      @TarantoolBot document
      Title: correct recovery of mixed transactions
      
      In this patch implemented correct recovery of mixed transactions. To do
      this, set  `box.cfg.force_recovery` to `true`. If you need to revert to
      the old behavior, don't set the `force_recovery` option.
      
      What to do when one node feeds the other a xlog with mixed transactions?
      Let there be two nodes (`node#1` and `node#2`). And let the data be
      replicated from `node#1` to `node#2`. Suppose that at some point in time,
      `node#1` is restoring data from an xlog containing mixed transactions. To
      replicate data from `node#1` to `node#2`, do the following:
      1. Stop `node#2` and delete all xlog files from it
      2. Restart `node#1` by setting `force_recovery` to `true`
      3. Make `node#2` rejoin to `node#1` again.
      
      (cherry picked from commit 2b1c8713)
      96edd75b
    • Yan Shtunder's avatar
      trivia: add xlsregion_alloc macros and xlsregion_alloc_object · 8c4339f2
      Yan Shtunder authored
      A new macros have been introduced because OOM errors are not handled in the
      code.
      
      Needed for #7932
      
      NO_DOC=internal
      NO_TEST=internal
      NO_CHANGELOG=internal
      
      (cherry picked from commit 53857148)
      8c4339f2
    • Vladislav Shpilevoy's avatar
      box: store box.cfg.force_recovery in C · b67c42e8
      Vladislav Shpilevoy authored
      box.cfg.force_recovery used to be needed only during box.cfg() in
      a few places, but its usage is going to extend.
      
      In future commits about cluster/replicaset/instance names it will
      be needed to allow rename. It won't be entirely legal (hence can't
      be done without any flags), but won't be fully illegal either.
      
      The "valid" rename will be after upgrading, when an
      old cluster updated to a new version and wants to start using the
      names. Then it will have to set force_recovery, set the names,
      sync the instances, drop force_recovery. One-time action to allow
      old installations use the new feature - the names.
      
      Part of #5029
      
      NO_DOC=refactoring
      NO_CHANGELOG=refactoring
      NO_TEST=already covered
      
      (cherry picked from commit ae4c96c7)
      b67c42e8
    • Serge Petrenko's avatar
      core: fix wal saving an empty xlog during startup failure · 0b1151ac
      Serge Petrenko authored
      After the commit a392eb76 ("box: destroy its modules even if box.cfg
      not done") wal_free() on exit is called even if box.cfg() isn't finished
      yet, and thus wal isn't yet enabled. This leads to a bug when wal would
      unconditionally write a 00...0.xlog regardless of the actual xlog
      directory contents or the actual vclock.
      
      Let's fix this by not writing an empty xlog on exit if wal writer's
      vclock is zero. It means the writer either wasn't enabled yet, or was
      enabled, but hasn't written anything. In both cases writing the empty
      xlog is extraneous.
      
      Closes #8704
      
      NO_DOC=bugfix
      
      (cherry picked from commit f78908c9)
      0b1151ac
    • Serge Petrenko's avatar
      replication: fix waiting for remote ballot updates during bootstrap · 74d91f3d
      Serge Petrenko authored
      There was a problem in applier_wait_bootstrap_leader_uuid_is_set():
       * it didn't set an error cause when the ballot watcher was dead,
         leading to a segfault when trying to diag_add() to the cause.
       * it didn't expect the ballot watcher to exit without an error
         before the bootstrap leader uuid is known, hanging forever.
      
      The first issue could be reproduced by trying to bootstrap a replicaset
      consisting of both "old" (Tarantool 2.10 or less) and "new" instances.
      Or by bootstrapping a replicaset consisting of "new" instances and
      stopping some of them in a specific manner.
      
      The second issue could be reproduced only by manually broadcasting an
      empty "internal.ballot" event.
      
      Fix both issues. The first one by setting an ER_UNKNOWN error when
      the ballot watcher fiber is dead. And the second one by checking if the
      ballot watcher has died during waiting for the ballot update.
      
      The test only covers the first issue: the second one can only happen
      with manual intervention and is hard to test: it involves broadcasting
      an empty "internal.ballot" from the replica while it's still connecting
      to remote nodes during an initial `box.cfg{}` call.
      
      Closes #8757
      
      NO_DOC=bugfix
      
      (cherry picked from commit 1c25efb4)
      74d91f3d
    • Georgiy Lebedev's avatar
      box: fix typo in pagination `after` position option validation · 6db1834b
      Georgiy Lebedev authored
      Closes #8716
      
      NO_DOC=bugfix
      
      (cherry picked from commit 3d0afc60)
      6db1834b
    • Georgiy Lebedev's avatar
      build: replace `string` with JOIN option to `string_join` helper in CMake · 07230fa6
      Georgiy Lebedev authored
      `string` with JOIN option is only available since CMake 3.12, but we have
      developers using CMake 3.1: implement a utility `string_join` function to
      remove this dependency.
      
      Closes #5881
      
      NO_CHANGELOG=<build fix>
      NO_DOC=<build fix>
      NO_TEST=<build fix>
      
      (cherry picked from commit 55298308)
      07230fa6
    • Vladimir Davydov's avatar
      xrow: fix large bit shift error in xrow_decode_dml · a9fd246b
      Vladimir Davydov authored
      Reported by ASAN. The issue was fixed in the master branch in commit
      b9550f19 ("box: support space and index names in IPROTO requests").
      
      NO_TEST=asan
      NO_DOC=bug fix
      NO_CHANGELOG=minor
      a9fd246b
    • Vladimir Davydov's avatar
      xrow: ignore unknown IPROTO keys on decode · 4b468da5
      Vladimir Davydov authored
      The xrow_decode_* functions are written in such a way that they ignore
      unknown IPROTO keys. This is required for connectivity between different
      Tarantool version. However, there's bug in the code connected with the
      value type checking: we fail if the key is >= iproto_key_MAX. This
      worked fine as long as we added new IPROTO keys in the middle of the key
      space, without bumping iproto_key_MAX, but this assumption broke when we
      added IPROTO_AUTH_TYPE. The issue is exacerbated by the fact that
      IPROTO_AUTH_TYPE is used by IPROTO_ID, which is sent unconditionally on
      connect. Let's fix the value type check and add some tests.
      
      Notes:
       - xrow_decode_heartbeat turns out to be unused. Drop it.
       - Fix the net.box helpers response_body_decode and netbox_decode_table
         to handle unknown keys and empty body. This is needed to properly
         decode a response to an injection in tests.
       - Testing unknown keys in replication requests would be complicated.
         Instead we add a bunch of unit tests.
       - Convert the xrow unit test to TAP.
      
      Closes #8745
      
      NO_DOC=bug fix
      
      (cherry picked from commit ee0660b8)
      4b468da5
    • Georgiy Lebedev's avatar
      box: refactor net.box response body decoding · d700f973
      Georgiy Lebedev authored
      Response body decoding of DML and call/eval requests is very ad-hoc and
      hard to extend: introduce a new `response_body_decode` helper that decodes
      the response body similarly to `xrow_decode_dml` — this will allow to
      separate decoding from processing.
      
      Needed for #8147
      
      NO_CHANGELOG=refactoring
      NO_DOC=refactoring
      NO_TEST=refactoring
      
      (cherry picked from commit 1d6043fa)
      d700f973
    • Yaroslav Lobankov's avatar
      test: fix box-tap/gh-5602-environment-vars-cfg · f98da651
      Yaroslav Lobankov authored
      Fix the `box-tap/gh-5602-environment-vars-cfg.test.lua` diff test after
      disabling stdout bufferization in test-run.
      
      NO_DOC=test
      NO_TEST=test
      NO_CHANGELOG=test
      
      (cherry picked from commit d2d06824)
      f98da651
    • Magomed Kostoev's avatar
      memtx: round up memtx_memory to the lower bound if less is set · e4cf9c00
      Magomed Kostoev authored
      The memtx engine has two quota consumers: `index_slab_cache` and
      `slab_cache`. They both acquire SLAB_SIZE of space on first tuple
      insert in "small" allocator mode, so the quota less than the slab
      size times two exceeds right there.
      
      It was decided to introduce a theoretically minimal size of the
      quota and round-up any value given in box.cfg if it's less than
      the lower bound.
      
      Closes #7389
      
      NO_DOC=bugfix
      
      (cherry picked from commit de0731bd)
      e4cf9c00
    • Yaroslav Lobankov's avatar
      ci: fix test-sdk job in submodule_update.yml · 5b7eccd7
      Yaroslav Lobankov authored
      Fix the `test-sdk` job in the `submodule_update.yml` workflow according
      to the new name policy for supported branches (2.10 -> release/2.10,
      2.11 -> release/2.11).
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 83158695)
      5b7eccd7
    • Yaroslav Lobankov's avatar
      ci: fix README.md in report-job-status action · ac24d723
      Yaroslav Lobankov authored
      README.md in the `report-job-status` action was fixed in accordance
      with the new name policy for supported branches (2.10 -> release/2.10,
      2.11 -> release/2.11).
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit fa33c5e5)
      ac24d723
    • Yaroslav Lobankov's avatar
      ci: fix condition for S3 upload artifact step · 69175c08
      Yaroslav Lobankov authored
      The condition for uploading test artifact to S3 was fixed in accordance
      with the new name policy for supported branches (2.10 -> release/2.10,
      2.11 -> release/2.11).
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 76c79e4e)
      69175c08
    • Yaroslav Lobankov's avatar
      ci: fix cuncurrency condition in all workflows · 562db869
      Yaroslav Lobankov authored
      The condition for workflow concurrency was fixed in accordance with
      the new name policy for supported branches (2.10 -> release/2.10,
      2.11 -> release/2.11).
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 0c117197)
      562db869
    • Yaroslav Lobankov's avatar
      ci: fix trigger in submodule_update.yml workflow · b98d12b2
      Yaroslav Lobankov authored
      The push trigger in the submodule_update.yml workflow was fixed
      in accordance with the new name policy for supported branches
      (2.10 -> release/2.10, 2.11 -> release/2.11).
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      
      (cherry picked from commit 9518f322)
      b98d12b2
Loading