Skip to content
Snippets Groups Projects
  1. Dec 08, 2021
    • Alexander Turenko's avatar
      build: fix linking of debug curl library · 6ab951fd
      Alexander Turenko authored
       | [100%] Linking C static library libcurl-d.a
       | <...>
       | make[3]: *** No rule to make target `build/curl/dest/lib/libcurl.a',
       |     needed by `test/unit/luaL_iterator.test'. Stop.
      
      The problem appears on Mac OS. It is a bit strange that we don't see it
      on Linux. However I didn't dig into this, just fixed the observed
      problem.
      
      Related: https://github.com/curl/curl/issues/2121
      
      Fixes #6656
      6ab951fd
    • Serge Petrenko's avatar
      replication: fix flaky gh-3160-misc... test · 8c187df5
      Serge Petrenko authored
      The test fails quite often with one of the following results.
      
      Either
      
      [001] @@ -60,7 +60,7 @@
      [001]  ...
      [001]  test_timeout()
      [001]  ---
      [001] -- true
      [001] +- false
      [001]  ...
      [001]  test_run:cmd("switch default")
      [001]  ---
      [001]
      
      Or
      
      [034]  test_timeout()
      [034]  ---
      [034] -- true
      [034] +- error: 'replicas are not in the follow status'
      [034]  ...
      
      Both errors are caused by wait_cond checking saved
      `box.info.replication` values instead of actual `box.info.replication`
      output. Fix this.
      
      Also, the test's quite long for no reason.
      
      The wait_cond waiting for replication to break lasts a whole
      `replication_timeout`, which is excess.
      
      The test's idea, as stated in the commit that has introduced it
      (195d4462: Send relay heartbeat if wal changes won't be send) is to
      constantly relay some data to the remote peers and make
      it so their relays never send heartbeats.
      
      If we wait for a whole replication timeout between inserts, there's a high
      chance of peer relays waking up naturally (after replication_timeout passes).
      
      In this case the test tests nothing. Fix the issue by waiting for ~ 1/5
      of replication_timeout in between the despatches. This also reduces test
      run time from ~4.5 to ~1.5 seconds on my machine.
      
      Remove the test from fragile list, since it shouldn't be flaky anymore.
      
      Closes #4940
      8c187df5
  2. Dec 07, 2021
    • Georgiy Lebedev's avatar
      popen: change vfork deprecation error to a warning · c9787d57
      Georgiy Lebedev authored
      vfork got deprecated on macOS: for now, change the vfork deprecation
      error to a warning until we find a suitable solution. We plan to review
      popen's design and get rid of vfork completely or change vfork to
      posix_spawn only on macOS in #6674.
      
      Closes #6576
      c9787d57
    • Georgiy Lebedev's avatar
      core: refactor crash signal handler · f779df96
      Georgiy Lebedev authored
      vfork got deprecated on macOS: change vfork to more portable
      posix_spawn.
      
      Needed for #6576
      f779df96
    • mechanik20051988's avatar
      small: fix incorrect mempool group creation · 173ce9fb
      mechanik20051988 authored
      If slab order of first several pools was equal to zero,
      all these pools added to same group with pools with slab
      order is equal to one. It's leds to incorrect behavior
      of `smfree` function, because this function relies on
      same slab order size of all pools in mempool group.
      Fix this and add assertion and test to check it.
      
      Closes #6659
      173ce9fb
  3. Dec 06, 2021
    • Georgiy Lebedev's avatar
      box: fix tuple field count overflow handling · 33334f30
      Georgiy Lebedev authored
      Tuple field count overflow is not handled: before inserting, explicitly
      compare the current tuple size to box.schema.FIELD_MAX and set a newly
      introduced diagnostic message if overflow occurs.
      
      Closes #6198
      33334f30
    • Georgiy Lebedev's avatar
      msgpuck: bump optimization patch · e7b854a6
      Georgiy Lebedev authored
      Tests inserting fields into tuples, causing it to append lots of
      nil's, work unacceptably slow: optimize mp_next.
      
      Needed for #6198
      e7b854a6
    • Georgiy Lebedev's avatar
      vinyl: optimize deletion of compacted run files · 599f0c13
      Georgiy Lebedev authored
      On completion of compaction tasks we remove compacted run files created
      after the last checkpoint immediately to save disk space. In order to
      perform this optimization we compare the unused runs' dump LSN with the
      last checkpoint's one.
      
      But during replica's initial JOIN stage we set the LSN of all rows
      received from remote master to 0 (see
      box/box.cc/boostrap_journal_write). Considering that the LSN of an
      initial checkpoint is also 0, our optimization stops working, and we
      receive a huge disk space usage spike (as the unused run files will
      only get removed when garbage collection occurs).
      
      We should check the vinyl space engine's status and perform
      our optimization unconditionally if we are in replica's initial JOIN
      stage.
      
      Closes #6568
      599f0c13
    • Yaroslav Lobankov's avatar
      ci: simplify export of env variable in action · 08ca70fe
      Yaroslav Lobankov authored
      In the 'pack_and_deploy' action we have such a line:
      
          echo PACKPACK_EXTRA_DOCKER_RUN_PARAMS='--init' | tee -a $GITHUB_ENV
      
      Usually, the `echo FOO=bar | tee -a $GITHUB_ENV` construction is used
      to propagate an env variable outside the action/step so it could be used
      in other actions/steps via ${{ env.FOO }} or $FOO.
      
      The 'PACKPACK_EXTRA_DOCKER_RUN_PARAMS' variable is used only inside the
      action and we can change the mentioned line to as follows:
      
          export PACKPACK_EXTRA_DOCKER_RUN_PARAMS='--init'
      08ca70fe
    • Yaroslav Lobankov's avatar
      cd: use RWS instead of update_repo.sh script · 4689c95e
      Yaroslav Lobankov authored
      This patch introduces the use of RWS (repository web service) instead
      of old update_repo.sh script for uploading packages to S3 repositories.
      RWS fully replaces facilities of update_repo.sh + provides new features
      like support of uploading ARM packages. Also, it is very simple to use,
      just do `curl` to the RWS endpoint with some params and that's it.
      
      Closes #6482
      4689c95e
  4. Dec 03, 2021
    • Vladimir Davydov's avatar
      test: fix flaky box/func_reload test · 1b34d3d5
      Vladimir Davydov authored
      This commit fixes the following failure:
      
      ```
      --- box/func_reload.result        Fri Dec  3 15:15:05 2021
      +++ var/rejects/box/func_reload.reject    Fri Dec  3 15:15:12 2021
      @@ -202,11 +202,11 @@
       ...
       ch:get()
       ---
      +- [[2]]
      +...
      +ch:get()
      +---
       - [[1]]
      -...
      -ch:get()
      ----
      -- [[2]]
       ...
       s:drop()
       ---
      ```
      
      The function reloaded in this test yields, so there's no guarantee that
      the first reload completes before the second one. Fix this by discarding
      `ch:get()` result.
      
      Closes https://github.com/tarantool/tarantool-qa/issues/15
      1b34d3d5
    • Vladimir Davydov's avatar
      Revert "test: disable Lua JIT for net.box_reconnect_after_gh-3164" · d9b8c0db
      Vladimir Davydov authored
      This reverts commit 5546cde0.
      
      And remove the test from the flaky list. The test seems to have been
      fixed by commit c13b3a31 ("net.box:
      rewrite state machine (transport) in C").
      
      Closes #5081
      d9b8c0db
    • Aleksandr Lyapunov's avatar
      tools: add a script that checks submodules' commits · 7fcaf4d0
      Aleksandr Lyapunov authored
      Sometimes to fix an issue we need to patch our submodule, update it
      in tarantool and then patch tarantool using changes in submodule.
      
      During development and review stages we have to create a branch (S)
      in submodule and a branch (T) in tarantool that references head of
      (S) branch.
      
      When the fix is merged to mater it's very simple to make a mistake:
      merge-and-push submodule's branch S and then tarantool's branch T.
      It sounds obvious, but that's wrong: tarantool's master should
      reference a commit from submodule's master, not a commit from
      temporary developer's branch.
      
      It's not hard to fix it but still a maintainer must always remember
      that problem. In order to simplify their life it was decided to
      create a script that is designed to check such thing before pushing
      tarantool to origin/master.
      
      Here is it, with simple usage:
      ./tools/check_push_master.sh && git push origin master
      7fcaf4d0
  5. Dec 02, 2021
  6. Dec 01, 2021
  7. Nov 30, 2021
  8. Nov 29, 2021
  9. Nov 26, 2021
    • Yaroslav Lobankov's avatar
      ci: run 'integration.yml' WF in pre-commit testing · 0c277b84
      Yaroslav Lobankov authored
      Problem:
      
      For now, the integration testing runs only on a push of changes/tags
      to the 'master' and release branches. This approach is not good enough
      because we become aware of integration issues after the changes were
      merged already to the target branch.
      
      So this patch adds the facility to run the integration testing on a dev
      branch to catch integration issues before the changes are merged to the
      target branch. Now it can be done via naming the branch as `*-full-ci`
      and pushing it to the main repository or setting the 'full-ci' label on
      the pull request.
      0c277b84
    • Alexander Turenko's avatar
      ci: enable CentOS 7 on aarch64 · 65f06ca5
      Alexander Turenko authored
      This commit actually reverts 2.10.0-beta1-136-gaa2a6bc83 ('ci:
      temporarily disable deploy for CentOS 7 for aarch64').
      
      I built packages necessary for testing for CentOS 7 on aarch64 and
      placed them into packpack backports [1].
      
      The source packages are from CentOS 8 [2] and are the following:
      
      * Cython-0.29.14-4.module_el8.3.0+441+3b561464.src.rpm
      * python-gevent-1.2.2-4.el8.src.rpm
      * PyYAML-5.3.1-1.module_el8.3.0+441+3b561464.src.rpm
      * python-six-1.12.0-9.module_el8.3.0+441+3b561464.src.rpm
      
      [1]: https://packagecloud.io/packpack/backports
      [2]: https://vault.centos.org/8.3.2011/AppStream/Source/SPackages/
      
      If you're curious about steps to re-build the packages for CentOS 7,
      read below.
      
      ----
      
      Build steps are the following:
      
      ```sh
      $ ssh <aarch64 machine>
      $ docker run -it -v <...>:/src -v <...>:/res centos:7
      ```
      
      Install tools:
      
      ```sh
      $ yum install yum-utils rpm-build
      ```
      
      (Here I also installed epel-release, but I doubt that it is necessary.)
      
      Build and install Cython:
      
      ```sh
      $ rpmbuild --rebuild /src/Cpython*.src.rpm
      $ vim /root/rpmbuild/SPECS/Cython.spec
      <..fix changelog dates..>
      $ rpmbuild -bb /root/rpmbuild/SPECS/Cython.spec
      <...>
      error: Failed build dependencies:
        gcc is needed by Cython-0.29.14-4.el7.aarch64
        python3-devel is needed by Cython-0.29.14-4.el7.aarch64
        python3-setuptools is needed by Cython-0.29.14-4.el7.aarch64
        python3-rpm-macros is needed by Cython-0.29.14-4.el7.aarch64
      $ yum install gcc python3-devel python3-rpm-macros python3-setuptools
      $ rpmbuild -bb /root/rpmbuild/SPECS/Cython.spec # repeat, yep
      $ ls -1 /root/rpmbuild/RPMS/aarch64/
      Cython-debuginfo-0.29.14-4.el7.aarch64.rpm
      python3-Cython-0.29.14-4.el7.aarch64.rpm
      $ cp /root/rpmbuild/RPMS/aarch64/* /res/
      $ rpm -i /root/rpmbuild/RPMS/aarch64/*
      ```
      
      Build python-gevent:
      
      ```sh
      $ rpmbuild --rebuild /src/python-gevent*.src.rpm
      <...>
      error: Failed build dependencies:
        c-ares-devel is needed by python-gevent-1.2.2-4.el7.aarch64
        libev-devel is needed by python-gevent-1.2.2-4.el7.aarch64
        python2-devel is needed by python-gevent-1.2.2-4.el7.aarch64
      $ yum install c-ares-devel libev-devel # but not python2-devel
      $ vim /root/rpmbuild/SPECS/python-gevent.spec
      <..leave '%bcond_with python2'..>
      $ rpmbuild -bb /root/rpmbuild/SPECS/python-gevent.spec
      $ ls -1 /root/rpmbuild/RPMS/aarch64/*gevent*
      /root/rpmbuild/RPMS/aarch64/python-gevent-debuginfo-1.2.2-4.el7.aarch64.rpm
      /root/rpmbuild/RPMS/aarch64/python3-gevent-1.2.2-4.el7.aarch64.rpm
      $ cp /root/rpmbuild/RPMS/aarch64/*gevent* /res/
      ```
      
      Build PyYAML:
      
      ```sh
      $ rpmbuild --rebuild /src/PyYAML*.src.rpm
      <...>
      error: Failed build dependencies:
          libyaml-devel is needed by PyYAML-5.3.1-1.el7.aarch64
      $ yum install libyaml-devel
      $ rpmbuild --rebuild /src/PyYAML*.src.rpm # again, yep
      $ ls -1 /root/rpmbuild/RPMS/aarch64/*{pyyaml,PyYAML}*
      /root/rpmbuild/RPMS/aarch64/PyYAML-debuginfo-5.3.1-1.el7.aarch64.rpm
      /root/rpmbuild/RPMS/aarch64/python3-pyyaml-5.3.1-1.el7.aarch64.rpm
      $ cp /root/rpmbuild/RPMS/aarch64/*{pyyaml,PyYAML}* /res/
      ```
      
      Build python-six:
      
      ```sh
      $ rpmbuild --rebuild /src/python-six*.src.rpm
      error: Failed build dependencies:
          python3-wheel is needed by python-six-1.12.0-9.el7.noarch
          python3-pytest is needed by python-six-1.12.0-9.el7.noarch
          python3-tkinter is needed by python-six-1.12.0-9.el7.noarch
      $ yum install python3-wheel python3-pytest python3-tkinter
      $ rpmbuild --rebuild /src/python-six*.src.rpm # again, yep
      error: Failed build dependencies:
          python3-pytest is needed by python-six-1.12.0-9.el7.noarch
      $ vim /root/rpmbuild/SPECS/python-six.spec
      <..change '%bcond_without tests' to '%bcond_with tests'..>
      $ rpmbuild -bb /root/rpmbuild/SPECS/python-six.spec
      $ ls -1 /root/rpmbuild/RPMS/noarch/
      python3-six-1.12.0-9.el7.noarch.rpm
      $ cp /root/rpmbuild/RPMS/noarch/* /res/
      ```
      65f06ca5
    • Georgiy Lebedev's avatar
      box: fix 'log.cfg' update on 'box.cfg' error · d30d6cfd
      Georgiy Lebedev authored
      If 'box.cfg' fails with error, 'log.cfg' still gets updated: instead,
      update 'log.cfg' after verifying 'box.cfg', and rollback if update of
      'log.cfg' fails.
      
      Closes #6086
      d30d6cfd
    • Georgiy Lebedev's avatar
      log: fix box_api_cfg_set_log_{level, format} · e18a07b3
      Georgiy Lebedev authored
      box_api_cfg_set_log_{level, format} are part of dynamic_cfg (see
      box/lua/load_cfg.lua) and are expected to throw exceptions (see
      reload_cfg ib.).
      
      Needed for #6086
      e18a07b3
    • Georgiy Lebedev's avatar
      box.xlog: reduce snapshot verbosity · a945a198
      Georgiy Lebedev authored
      On big instances core produces too much logs related to shapshotting,
      which feels redudant: reduce snapshot verbosity.
      
      Closes #6220
      a945a198
    • Georgiy Lebedev's avatar
      core.say: improve say_ratelimit macro and friends · 3d0898a8
      Georgiy Lebedev authored
      Make say_ratelimit_check emit warnings about suppressed messages only if
      the correspoding log level is greater or equal then WARN.
      
      Add say_crit_ratelimited and say_info_ratelimited macros for
      convenience.
      
      Needed for #6220
      3d0898a8
  10. Nov 24, 2021
    • Igor Munkin's avatar
      luajit: bump new version · e8765ba5
      Igor Munkin authored
      * memprof: add info about trace start to symtab
      * memprof: group allocations on traces by traceno
      * memprof: refactor location parsing
      * test: separate memprof Lua API tests into subtests
      
      Closes #5814
      e8765ba5
    • Mergen Imeev's avatar
      sql: introduce field type MAP · 1364629e
      Mergen Imeev authored
      This patch introduces MAP to SQL. After this patch, all SQL operations
      and built-in functions should work correctly with MAP values. However,
      there is currently no way to create MAP values using only SQL tools.
      
      Part of #4763
      
      @TarantoolBot document
      Title: Field type MAP in SQL
      
      Properties of type MAP in SQL:
      1) a value of type MAP can be implicitly and explicitly cast only to
      ANY;
      2) only a value of type ANY with primitive type MAP can be explicitly
      cast to MAP;
      3) a value of any other type cannot be implicitly cast to MAP;
      4) a value of type MAP cannot participate in arithmetic, bitwise,
      comparison, and concatination operations.
      1364629e
Loading