Skip to content
Snippets Groups Projects
  1. Oct 20, 2023
    • Sergey Vorontsov's avatar
      ci: dockerize linux workflows · af996bbb
      Sergey Vorontsov authored
      Modify Linux workflows for running jobs inside Docker containers. It
      helps isolate the building and testing environment from the runner's
      system and other workflows.
      
      Closes tarantool/tarantool-qa#327
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      af996bbb
    • Magomed Kostoev's avatar
      util: introduce the ALWAYS_INLINE macro · d08f28df
      Magomed Kostoev authored
      The macro expands to inline keyword and always_inline attribute if
      it's supported. This attribute forces the compiler to inline the
      function if it's possible and raise a diagnostic if it's not.
      
      Needed for tarantool/tarantool-ee#580
      
      NO_DOC=internal
      NO_TEST=internal
      NO_CHANGELOG=internal
      d08f28df
  2. Oct 19, 2023
    • Gleb Kashkin's avatar
      config: unify logs and alerts inside creds applier · 26d508d1
      Gleb Kashkin authored
      With this patch the following log/alert structure is introduced:
      * all informational messages (e.g. some privs granted) use `log.verbose()`
      * all warnings about postponed apply use `config:_alert{type = 'warn'}`
      * all apply errors are reported with `config:_alert{type = 'error'}`
      
      Debug logs are removed.
      
      Part of #8967
      
      NO_DOC=logging and alerts
      NO_CHANGELOG=see NO_DOC
      NO_TEST=see NO_DOC
      26d508d1
    • Gleb Kashkin's avatar
      test: proceed with server on 'check_warnings' status · 1ee7020a
      Gleb Kashkin authored
      Before this patch luatest.server used to fail if the instance status
      was different from 'ready'. Now it allows 'check_warnings' state too.
      It is required to test legal corner cases inside config applier.
      
      Part of #8967
      
      NO_DOC=test helper update
      NO_TEST=see NO_DOC
      NO_CHANGELOG=see NO_DOC
      1ee7020a
    • Vladimir Davydov's avatar
      box: call tuple_free from box_free · 05751e6c
      Vladimir Davydov authored
      There are four problems we have to address to make this possible:
      
       1. memtx_engine_shutdown may delete the tuple referenced by
          box_tuple_last so that tuple_free, which is called later by
          box_free, will crash trying to free it. Fix this by clearing
          box_tuple_last in memtx_engine_shutdown.
      
       2. tuple_format_destroy and tuple_field_delete, called by it, expect
          all constraints to be detached. Let's destroy the constraints if
          this isn't the case. This effectively reverts commit 7a87b9a5
          ("box: do not call constraint[i].destroy() in
          tuple_field_delete()").
      
       3. tuple_field_delete, called by tuple_format_destroy, expects the
          default value function to be unpinned. Let's unpin it if this isn't
          the case. To avoid linking dependencies between the tuple and box
          libraries, we have to introduce a virtual destructor for
          field_default_func.
      
       4. The tuple_format unit test calls tuple_free after box_free. If
          box_free calls tuple_free by itself, this leads to a crash. Fix this
          by removing tuple_free and tuple_init calls from the test.
      
      Closes #9174
      
      NO_DOC=code health
      NO_CHANGELOG=code health
      NO_TEST=checked by existing tests
      05751e6c
  3. Oct 18, 2023
  4. Oct 17, 2023
    • Nikolay Shirokovskiy's avatar
      app: start init script event loop explicitly · 1fcfb8c2
      Nikolay Shirokovskiy authored
      The motivation is to reduce time slip on Tarantool startup before
      running init scripts. Internal ev time is set in fiber_init/ev_default_loop
      and is not get updated until starting event loop. This causes
      timeouts slip up to 0.3 in debug ASAN build in init script (see #9261).
      
      Let's run event loop right at the beginning of the run_script_f before
      executing any script. This way besides updating internal ev time we make
      an explicit place of starting script event loop. Currently it is started
      lazily when config script yields.
      
      This will fix CI for PR https://github.com/tarantool/tarantool-ee/pull/572
      for debug ASAN workflow.
      
      We can also remove start_loop condition. It does not make sense now. It
      was added in the commit 3a851430 ("Fix tarantool -e "os.exit()"
      hang") but since then we start to stop event loop after handling
      os.exit().
      
      Also this fixes #9266. The issue is we don't have an event loop to run
      on shutdown triggers if -e command line expression add such a trigger
      and then call os.exit().
      
      Follow-up #7327
      Closes #9266
      
      NO_DOC=bugfix
      1fcfb8c2
  5. Oct 16, 2023
    • Vladimir Davydov's avatar
      console: forward original URI to net.box when connecting over IPROTO · 33e72567
      Vladimir Davydov authored
      Tarantool supports two console protocols: text and binary. The binary
      protocol is implemented with IPROTO EVAL request so the console module
      reuses the net.box module to establish and maintain a binary connection.
      Currently, instead of passing the original URI specified by the user to
      net.box.connect as is, the console module parses the URI and passes the
      host and port. As a result, extra information that may be specified in
      URI parameters is lost. This prevents the user from connecting to the
      binary console using the SSL transport because to use the SSL transport
      the user must specify transport=ssl URI parameter.
      
      Needed for tarantool/tarantool-ee#567
      
      NO_DOC=no visible changes in CE
      NO_TEST=no visible changes in CE
      NO_CHANGELOG=no visible changes in CE
      33e72567
  6. Oct 13, 2023
    • Gleb Kashkin's avatar
      config: update password hashes after auth_type change · 952d1582
      Gleb Kashkin authored
      User password is stored in a system space is a form of hash when
      'chap-sha1' auth type is set, and in a form of hash with salt when
      'pap-sha256' is set.
      
      Now, if a user is set inside config, and the current auth type is
      different from the type the users password is stored in, the password
      hash will be regenerated.
      
      Part of #8967
      
      NO_DOC=documentation request will be filed manually for the whole
             credentials
      952d1582
    • Gleb Kashkin's avatar
      config: add lua_eval, lua_call and sql support to creds · a21c0e6a
      Gleb Kashkin authored
      With #8906 the object types mentioned above were introduced. They control
      access to code execution over IPROTO.
      This patch adds such object types support to credentials applier. Now
      'execute' can be granted to a user or role for 'lua_eval', 'lua_call' and
      'sql'. Note that similar to 'universe', objects can't be specified in
      the config, only 'all' is allowed.
      
      Part of #8967
      
      NO_DOC=documentation request will be filed manually for the whole
             credentials
      a21c0e6a
    • Vladimir Davydov's avatar
      config: add audit_spaces and audit_extract_key parameters · 09565445
      Vladimir Davydov authored
      The new parameters will be implemented in Tarantool Enterprise Edition.
      This commit just adds configuration stubs.
      
      Needed for tarantool/tarantool-ee#502
      Needed for tarantool/tarantool-ee#503
      
      NO_DOC=stubs for enterprise edition
      NO_CHANGELOG=stubs for enterprise edition
      09565445
    • Vladimir Davydov's avatar
      audit: rework configuration function · 138a4bfa
      Vladimir Davydov authored
      Let's obtain box.cfg parameters from audit_log_init with cfg_get instead
      of passing them as arguments, like we do with the security module, for
      example. This simplifies addition of new audit log parameters.
      
      Needed for tarantool/tarantool-ee#502
      Needed for tarantool/tarantool-ee#503
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      138a4bfa
    • Ilya Verbin's avatar
      box: fix space:bsize() handling on space alter · 54a42186
      Ilya Verbin authored
      During building an index in background, some transaction can perform a dml
      request that affects space size (e.g. a replace), but the size will remain
      the same, because bsize is moved from the old space to the new space in
      memtx_space_prepare_alter() prior to space_execute_dml(). Fix this issue by
      calling space_finish_alter() in alter_space_do().
      In fact, this patch partially reverts commit 9ec3b1a4 ("alter: zap
      space_vtab::commit_alter").
      
      NO_DOC=bugfix
      
      Closes #9247
      54a42186
    • Ilya Verbin's avatar
      main: display a message when local console is exited · fe0f8fd0
      Ilya Verbin authored
      Consider the following example:
      ```
      tarantool -e "box.cfg{} require('console').start()"
      ```
      When a local console is exited by pressing Ctrl+D, Tarantool seemingly
      freezes - console stops to work, typed characters are not echoed. But
      the event loop is not stopped because there are background fibers running.
      This patch adds a message that Ctrl+C should be pressed in such a case.
      
      Closes #7017
      
      NO_DOC=minor
      fe0f8fd0
  7. Oct 12, 2023
    • Andrey Saranchin's avatar
      space: drop space with its triggers set with old API · 7c63eba7
      Andrey Saranchin authored
      Attaching triggers to space id instead of space object is a significant
      pitfall. The users who haven't discovered new triggers may not expect
      the triggers of a dropped space will be fired by a new one. So let's
      drop triggers that were set with old API along with the space.
      
      All the tests, changed because of described above breaking change, are
      restored.
      
      Closes #9223
      
      NO_DOC=later
      7c63eba7
    • Andrey Saranchin's avatar
      core: introduce EVENT_TRIGGER_IS_TEMPORARY flag · f9fa03b8
      Andrey Saranchin authored
      The patch provides event triggers with flags and introduces the first
      one - EVENT_TRIGGER_IS_TEMPORARY. When the new
      event_remove_temporary_triggers method is called, all the temporary
      triggers are removed from the event.
      
      Part of #9223
      
      NO_CHANGELOG=internal
      NO_DOC=internal
      f9fa03b8
    • Nikolay Shirokovskiy's avatar
      asan: turn ASAN allocators on finally · 446201b8
      Nikolay Shirokovskiy authored
      This patch also includes:
        - misc trivial fixes for ASAN discovered issues
        - minor adaptations for ASAN friendly allocators
      
      Closes #7327
      
      NO_DOC=internal
      NO_CHANGELOG=internal
      446201b8
    • Nikolay Shirokovskiy's avatar
      fiber: mark stack slab leak on mprotect fail as a non-leak · 41844ffb
      Nikolay Shirokovskiy authored
      With new ASAN-friendly small implementation unit/fiber_stack.c test
      start to fail. The issue is leak sanitizer reports a leak. This is an
      expected leak of test for mprotect failure on fiber stack destruction.
      Let's tell sanitizer to ignore this case.
      
      By the way let's drop test code for temporary redirecting stderr. It is
      outdated as test is TAP-compatible. It was a PITA as due to this
      redirection there was no leak report only error exit code.
      
      Part of #7327
      
      NO_CHANGELOG=internal
      NO_DOC=internal
      41844ffb
    • Nikolay Shirokovskiy's avatar
      asan: suppress leak reports caused by JIT · f0feb923
      Nikolay Shirokovskiy authored
      With ASAN-friendly small allocators there are a lot test failures due
      to leak reports which are gone if JIT is off.
      
      Fortunately all the reports related to a few functions. Let's suppress
      temporarily such reports.
      
      Part of #7327
      
      NO_TEST=internal
      NO_CHANGELOG=internal
      NO_DOC=internal
      f0feb923
    • Nikolay Shirokovskiy's avatar
      asan: adapt misc stats test for ASAN · 1436eb41
      Nikolay Shirokovskiy authored
      When SMALL_MALLOC_IMPL is defined and ASAN-friendly allocators are used
      the arena allocator is not used at all as we not allocate memory
      directly from there. And other ASAN-friendly allocators are not allocate
      from it too. Thus box.slab.info().arena_size == 0. Same for usage
      of runtime arena box.runtime.info().used.
      
      Also usage with ASAN-friendly lsregion is a bit different as it does
      not account for size of alignment padding. Thus we need to adapt
      box.stat.vinyl().memory.level0 tests. Approach is to check for lower
      and upper limit instead of checking for exact values.
      
      Part of #7327
      
      NO_DOC=test changes
      NO_CHANGELOG=test changes
      1436eb41
    • Nikolay Shirokovskiy's avatar
      asan: prepare for ASAN-friendly ibuf · 4f542bb7
      Nikolay Shirokovskiy authored
      ASAN-friendly implementation poisons memory after allocation with
      ibuf_alloc so we need to fix existing places in code where we access
      memory after allocation.
      
      Part of ibuf implementation is inline functions in headers. Thus ibuf
      implementation in Lua reimplement this parts. We add poison to these
      inline functions in ASAN-friedly implementation so we need add same poison
      in Lua implementation.
      
      Part of #7327
      
      NO_CHANGELOG=internal
      NO_DOC=internal
      4f542bb7
    • Nikolay Shirokovskiy's avatar
      salad: get rid of core memory dependency · d01609a4
      Nikolay Shirokovskiy authored
      We are going to include generated small_config.h into small allocator
      headers (currently it is only included in small source files).
      core/memory.h depends on small headers and salad/heap.h depends on
      core/memory.h. As a result we need to provide a way for salad/heap.h
      users to find small_config.h header.
      
      Instead let's drop dependency from core/memory.h as we only use it for
      typeof definition.
      
      Part of #7327
      
      NO_CHANGELOG=code cleanup
      NO_DOC=code cleanup
      d01609a4
    • Nikolay Shirokovskiy's avatar
      fiber: disable fiber stack protection with ASAN temporarily · 2ee15793
      Nikolay Shirokovskiy authored
      If leak sanitizer reaches the memory protected from read with mprotect
      it exhibits all sorts of odd behaviour. It can hang, can crash, can
      return errors with no leak backtraces.
      
      We use mprotect to create guard zones at the end of fiber stack so if
      stack is overflowed we get a signal and crash. We take protection off
      when fiber is destroyed. Unfortunately we do not destroy cords (and its
      fibers) which cancelled through cord_cancel_and_join. This is going to
      be addressed in patch for issue #8423 ("Get rid of pthread_cancel()").
      Until that moment let's disable protection for ASAN builds.
      
      Note that we did not hit this behaviour before because LSAN only scans
      memory allocated using malloc and regular slab cache uses mmap to get
      memory.
      
      Part of #7327
      
      NO_CHANGELOG=internal
      NO_DOC=internal
      2ee15793
    • Nikolay Shirokovskiy's avatar
      fiber: make madvise(2) arguments page aligned with ASAN slab cache · 130c7807
      Nikolay Shirokovskiy authored
      Regularly fiber stack slab is page aligned. So upper stack border is
      page aligned too when stack grows down. But with ASAN friendly slab
      cache implementation this border is not page aligned. As a result
      madvise call on stack may zero memory beyond stack slab which will cause
      heap corruption. In debug build corruption is detected by assertion:
      
      NO_WRAP
       >  Fatal glibc error: malloc.c:2593 (sysmalloc): assertion failed: (old_top
       >  == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >=
       >  MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize
       >  - 1)) == 0)
      NO_WRAP
      
      Interestingly enough the issue can not be investigated using ASAN. The
      memory is zeroed by kernel code which is not instrumented so it is
      invisible for sanitizer.
      
      Looks like non-ASAN builds are not affected. Even if stack_size is
      not page aligned the slab allocated for stack is page aligned. Thus
      memory zeroing will be inside the slab and there will be no memory
      corruption.
      
      Also when stack grows up lower stack border in not aligned even with
      regular small implementation. So madvise call will fail with EINVAL as
      it is required that start address is page aligned. We ignore the error
      though. Let's fix this issue too while we at it.
      
      Let's introduce fiber_madvise_aligned to align madvise range with proper
      direction before calling madvise(2). To justify its usage note that
      besides fixing the issues described above, in case of stack growing down
      fiber->stack is page aligned and in case of stack growing up
      fiber->stack + fiber->stack_size is page aligned.
      
      Part of #7327
      
      NO_TEST=tested by ASAN (debug build)
      NO_CHANGELOG=has effect only with newly introduced ASAN friendly slab cache
      NO_DOC=has effect only with newly introduced ASAN friendly slab cache
      130c7807
    • Nikolay Shirokovskiy's avatar
      fiber: don't unpoison fiber stack · 0784f7b7
      Nikolay Shirokovskiy authored
      The unpoison was added in the initial commit 1.7.2-68-gafd229393 that
      supported ASAN. It is not clear why do we need it as we don't poison
      stack memory manually.
      
      Part of #7327
      
      NO_TEST=removing unfunctional code
      NO_CHANGELOG=removing unfunctional code
      NO_DOC=removing unfunctional code
      0784f7b7
    • Nikolay Shirokovskiy's avatar
      test: tune tests hitting quota for ASAN · d456a986
      Nikolay Shirokovskiy authored
      ASAN small object allocator implementation has a bit different pattern
      on quota leasing on allocating memory. So we may need to allocate more
      objects to hit the quota etc.
      
      Part of #7327
      
      NO_CHANGELOG=test tuning
      NO_DOC=test tuning
      d456a986
    • Nikolay Shirokovskiy's avatar
      iproto: use obuf API to check whether buffer is destroyed · ea4d19ec
      Nikolay Shirokovskiy authored
      The reason check is different for ASAN and regular versions of obuf.
      
      Part of #7327
      
      NO_DOC=internal
      NO_CHANGELOG=internal
      NO_TEST=<will be tested by asan-debug CI>
      ea4d19ec
  8. Oct 11, 2023
    • Oleg Chaplashkin's avatar
      test: update gh_8083, gh_8445 and gh_7434 tests · 23b61351
      Oleg Chaplashkin authored
      These tests fail after the commit [1] has been added to the Luatest:
      
      - app-luatest/gh_8083_fatal_signal_handler_test.lua
      - app-luatest/gh_8445_crash_during_crash_report_test.lua
      - box-luatest/gh_7434_yield_in_on_shutdown_trigger_test.lua
      
      The issue is due to lack of necessary directories:
      
          sh: 1: cd: can't cd to /tmp/t/001_app-luatest/server-XXX
      
      Just update tests on the simple `fio` module instead `luatest.server`.
      
      [1] tarantool/luatest@7d1358c
      
      NO_CHANGELOG=internal
      NO_DOC=internal
      23b61351
    • Oleg Chaplashkin's avatar
      test: bump test-run to new version · f4bc53e8
      Oleg Chaplashkin authored
      Bump test-run to new version with the following improvements:
      
      - luatest: bump luatest to 0.5.7-48-g18859f6 [1]
      - Adapt use luatest with new --no-clean option [2]
      - luatest: bump luatest to 0.5.7-49-g9c7710e [3]
      
      [1] tarantool/test-run@aa3b34d
      [2] tarantool/test-run@8ebb3aa
      [3] tarantool/test-run@82542d3
      
      NO_DOC=test
      NO_TEST=test
      NO_CHANGELOG=test
      f4bc53e8
    • Andrey Saranchin's avatar
      box: move on_shutdown triggers to the trigger registry · b7489dab
      Andrey Saranchin authored
      The commit moves on_shutdown triggers to the trigger registry. The
      triggers set by C API and internal triggers remain unchanged - only Lua
      user triggers are affected.
      
      Changelog entry of #8657 is populated with box.ctl triggers and is
      slightly improved.
      
      Closes #8657
      
      NO_DOC=later
      b7489dab
    • Andrey Saranchin's avatar
      core: get rid of trigger_fiber_run function · 19c1387d
      Andrey Saranchin authored
      Function trigger_fiber_run is used only for on_shutdown triggers and
      uses internal structure run_list. This structure is another list but all
      the triggers are popped from run_list instead of iteration because this
      approach is safe when triggers are deleted from the list that is being run.
      Also, new triggers are not inserted to run_list.
      
      Since we are running only on_shutdown triggers, which won't be used after
      they are fired, we can move all the triggers to an internal trigger
      list (so that no new triggers will appear) and pop them instead of
      iteration. So let's remove function trigger_fiber_run and run on_shutdown
      core triggers in a new special function. Later, this new function will run
      triggers from on_shutdown event as well.
      
      Part of #8657
      
      NO_TEST=no behavior changes
      NO_CHANGELOG=later
      NO_DOC=later
      19c1387d
    • Andrey Saranchin's avatar
      box: move all box.ctl triggers except for on_shutdown · 267b0877
      Andrey Saranchin authored
      The patch moves all triggers from box.ctl to module trigger instead of
      on_shutdown trigger - they are run in separate fibers, which makes it more
      difficult to move it to the event subsystem, so it will be moved there
      in a separate commit.
      
      Also, box_raft_on_broadcast triggers are renamed to box_raft_on_election.
      Despite they are fired on broadcast, the only place they are installed
      along the whole tarantool organization is box.ctl.on_election.
      
      NO_DOC=later
      NO_CHANGELOG=later
      
      Part of #8657
      267b0877
    • Nikolay Shirokovskiy's avatar
      unit: fix undefined behaviour in prbuf test · 4a868563
      Nikolay Shirokovskiy authored
      The test start to fail in CI on osx_debug (x86_64) workflow
      
      ```
      [033]  	*** test_buffer_foreach_copy_number ***
      [033] -ok 13 - prbuf(size=256, payload=16, iterations=16) has been validated
      [033] -ok 14 - prbuf(size=256, payload=16, iterations=32) has been validated
      [033] -ok 15 - prbuf(size=256, payload=16, iterations=64) has been validated
      [033] +ok 13 - prbuf(size=256, payload=4294967312, iterations=16) has been validated
      [033] +ok 14 - prbuf(size=256, payload=4294967312, iterations=32) has been validated
      [033] +ok 15 - prbuf(size=256, payload=4294967312, iterations=64) has been validated
      [033]  	*** test_buffer_foreach_copy_number: done ***
      ```
      
      NO_CHANGELOG=test fix
      NO_DOC=test fix
      4a868563
  9. Oct 10, 2023
    • Yaroslav Lobankov's avatar
      ci: exclude app-tap/tarantoolctl.test.lua from packaging test · fb64a241
      Yaroslav Lobankov authored
      Tarantool packages don't provide `tarantoolctl` since series 3.
      So there is nothing to test.
      
      NO_DOC=ci
      NO_TEST=ci
      NO_CHANGELOG=ci
      fb64a241
    • Pavel Balaev's avatar
      tarantoolctl: fix luarocks warnings issue · d6ae403e
      Pavel Balaev authored
      This patch fixes issue:
      
      $ tarantoolctl rocks --version 1>/dev/null
      Warning: failed to load command module luarocks.cmd.help
      
      NO_DOC=bugfix
      NO_CHANGELOG=not released yet
      d6ae403e
    • Mergen Imeev's avatar
      sql: assign collation to indexes in CREATE TABLE · 65608d87
      Mergen Imeev authored
      Before this patch, if an index was created due to a column's UNIQUE
      constraint or a column's PRIMARY KEY constraint before adding a
      collation, and if the column's fieldno was not equal to the index's
      position in space->index, the collation would not be assigned to the
      index.
      
      Also, this patch fixes an assertion in debug build for the case when an
      index with more that one field was created before a collation was added.
      
      Closes #9229
      
      NO_DOC=bugfix
      65608d87
    • Magomed Kostoev's avatar
      box: mitigate the tuple.perftest gcc regression · ed21247b
      Magomed Kostoev authored
      Because of inlining rules some parts of comparators aren't optimized
      properly by the gcc compiler, this causes a regression introduced by
      the sort order implementation.
      
      This patch introduces inline hints for the compiler in order to
      mitigate the regression.
      
      perf/tuple.cc test results (RelWithDebInfo, time in nanoseconds):
      
                                   Tiger Lake
      
      gcc 11.4.0:
      
                                   Base    After #8915      Patched
             tuple_tuple_compare   40.5    41.5 (+2.5%)     39.4 (-2.7%)
        tuple_tuple_compare_hint   43.0    33.5 (-22.1%)    35.9 (-16.5%)
      
      clang 14.0.0:
      
                                   Base    After #8915      Patched
             tuple_tuple_compare   25.7    25.1 (-2.3%)     25.7
        tuple_tuple_compare_hint   33.1    32.5 (-1.8%)     33.1
      
                                      Zen 3
      
      gcc 11.4.0:
      
                                   Base    After #8915      Patched
             tuple_tuple_compare   18.9    22.85 (+20.9%)   19.4 (+2.6%)
        tuple_tuple_compare_hint   24.25   22.95 (-5.4%)    23.5 (-3.1%)
      
      clang 14.0.0:
      
                                   Base    After #8915      Patched
             tuple_tuple_compare   17.3    17.0 (-1.7%)     17.0 (-1.7%)
        tuple_tuple_compare_hint   20.3    20.1 (-1.0%)     20.1 (-1.0%)
      
      Closes #9216
      
      NO_DOC=no code modification
      NO_TEST=no code modification
      NO_CHANGELOG=no code modification
      ed21247b
    • Vladimir Davydov's avatar
      config: add security.secure_erasing option · 61fbb31a
      Vladimir Davydov authored
      The new option is backed by `box.cfg.secure_erasing`. It is available
      only in Enterprise Edition builds.
      
      Needed for tarantool/tarantool-ee#540
      
      NO_DOC=will be added to Enterprise Edition
      NO_CHANGELOG=will be added to Enterprise Edition
      61fbb31a
    • Vladimir Davydov's avatar
      xlog: allow to extend inprogress xlog file cleanup · ef8b002f
      Vladimir Davydov authored
      We call xdir_collect_inprogress() at startup to clean up the xlog
      directory of files left from the previous run. Let's rename it to
      xdir_remove_temporary_files() and make it delete all files for which
      the new callback function xlog_file_is_temporary() returns true. By
      default, the callback returns true only for .inprogress files but it
      can be overridden to make xdir_remove_temporary_files() delete other
      kinds of files. This is required for thorough file deletion.
      
      Needed for tarantool/tarantool-ee#540
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      ef8b002f
    • Vladimir Davydov's avatar
      xlog: introduce xlog_remove_file function for removing xlog files · d139f245
      Vladimir Davydov authored
      This commit introduces the xlog_remove_file() function that removes
      a file by name and logs the error on failure. We use this function
      everywhere we delete xlog files so that there's a single place where we
      call unlink(). We also factor out the core functionality to a callback
      function that can be overridden. This will help us implement thorough
      file deletion.
      
      Needed for tarantool/tarantool-ee#540
      
      NO_DOC=refactoring
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      d139f245
Loading