Skip to content
Snippets Groups Projects
  1. Apr 15, 2021
    • Alexander Turenko's avatar
      security: update libcurl from 7.71.1 to 7.76.0 · c0e253fe
      Alexander Turenko authored
      The reason of the update is to protect us against possible MITM attack
      from a malicious HTTPS proxy server with trusted certificate when TLS
      1.3 is used (CVE-2021-22890, [1]). libcurl versions prior to 7.76.0 can
      skip a TLS handshake with a target host in this circumstances.
      
      Other vulnerabilities fixed in the (7.71.1; 7.76.0] version range do not
      look relevant to our built-in http client. See [2] for the full list.
      
      The CMake version requirement is updated from 3.1 to 3.2, because curl's
      CMakeLists.txt has the following clause at beginning:
      
       | cmake_minimum_required(VERSION 3.2...3.16 FATAL_ERROR)
      
      (It was there in vanilla curl 7.71.1 too and we had to remove it in
      order to support CMake 2. Now we don't support CMake 2, so it is good
      time to get rid of the extra patch upward vanilla curl repository.)
      
      According to the CMake versions table in
      8a7702b1 ('github-ci: purge Debian
      Jessie from CI'), CMake 3.2+ is available on all supported OSes.
      
      [1]: https://curl.se/docs/CVE-2021-22890.html
      [2]: https://curl.se/docs/vulnerabilities.html
      
      @TarantoolBot document
      Title: Now we require CMake 3.2 to build tarantool
      
      In https://github.com/tarantool/doc/issues/1780 we requested to update
      the CMake minimum version to 3.1. Now it is time for 3.2. See details in
      the linked commit.
      
      Please, update the 'Building from source' manual.
      c0e253fe
  2. Apr 14, 2021
    • Sergey Kaplun's avatar
      luajit: bump new version · 8a09e18c
      Sergey Kaplun authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: disable too deep recursive PUC-Rio test
      * test: disable PUC-Rio hanging GC test
      * test: disable PUC-Rio test checking -h option
      * test: disable PUC-Rio test for checking arg layout
      * test: disable PUC-Rio tests for several -l options
      * test: disable PUC-Rio test for syntax level error
      * test: disable PUC-Rio test for non-ascii variable
      * test: disable PUC-Rio test for fast function name
      * test: disable PUC-Rio test for variables in error
      * test: disable PUC-Rio test for getfenv in tailcall
      * test: remove string.gfind assert in PUC-Rio test
      * test: use math.fmod in PUC-Rio tests
      * test: disable locale-dependent PUC-Rio tests
      * test: adapt PUC-Rio test for %q in string.format
      * test: disable PUC-Rio test for per-coroutine hooks
      * test: adapt PUC-Rio test with activeline check
      * test: disable PUC-Rio test for tailcall info
      * test: adapt PUC-Rio test with count hooks
      * test: adapt PUC-Rio test for debug in vararg func
      * test: adapt PUC-Rio tests with vararg functions
      * test: disable PUC-Rio suite tests for line hook
      * test: adapt PUC-Rio tests counting GC steps
      * test: disable PUC-Rio tests for bytecode header
      * test: disable PUC-Rio tests confused by -v output
      * test: adapt PUC-Rio test for arg presence
      * test: remove quotes in progname from PUC-Rio
      * test: adapt PUC-Rio suite for out-of-source build
      * test: build auxiliary C libs from PUC-Rio Lua 5.1
      * test: add PUC-Rio Lua 5.1 test suite
      
      Within this changeset PUC-Rio Lua 5.1 suite[1] is added to Tarantool
      testing. Considering Tarantool specific changes in runtime the suite
      itself is adjusted in LuaJIT submodule.
      
      <test/luajit-test-init.lua> pretest runner is adjusted by setting custom
      `_loadstring()` and `_dofile()` global function to run tests correctly
      for out-of-source build.
      
      Also, this patch excludes PUC-Rio-Lua-5.1 test suite from ASAN checks.
      
      [1]: https://www.lua.org/tests/lua5.1-tests.tar.gz
      
      
      
      Closes #5845
      Closes #5686
      Closes #5694
      Closes #5701
      Closes #5708
      Closes #5710
      Closes #5711
      Closes #5712
      Part of #4473
      
      Reviewed-by: default avatarIgor Munkin <imun@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      8a09e18c
    • Sergey Kaplun's avatar
      luajit: bump new version · ef55e488
      Sergey Kaplun authored
      
      LuaJIT submodule is bumped to introduce the following changes:
      * tools: introduce --leak-only memprof parser option
      
      Within this changeset the new Lua module providing post-processing
      routines for parsed memory events is introduced:
      * memprof/process.lua: post-process the collected events
      
      The changes provide an option showing only heap difference. One can
      launch memory profile parser with the introduced option via the
      following command:
      $ tarantool -e 'require("memprof")(arg)' - --leak-only filename.bin
      
      Closes #5812
      
      Reviewed-by: default avatarIgor Munkin <imun@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      ef55e488
  3. Apr 07, 2021
  4. Mar 29, 2021
  5. Mar 19, 2021
    • Sergey Nikiforov's avatar
      base64: fix decoder output buffer overrun (reads) · 778d34e8
      Sergey Nikiforov authored
      Was caught by base64 test with enabled ASAN.
      
      It also caused data corruption - garbage instead of "extra bits" was
      saved into state->result if there was no space in output buffer.
      
      Decode state removed along with helper functions.
      
      Added test for "zero-sized output buffer" case.
      
      Fixes: #3069
      (cherry picked from commit 7214add2c7f2a86265a5e08f2184029a19fc184d)
      778d34e8
  6. Mar 17, 2021
    • Sergey Kaplun's avatar
      luajit: bump new version · a0ade206
      Sergey Kaplun authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: disable LuaJIT CLI tests in lua-Harness suite
      * test: set USERNAME env var for lua-Harness suite
      * test: adjust lua-Harness tests that use dofile
      * test: adjust lua-Harness suite to CMake machinery
      * test: add lua-Harness test suite
      
      Within this changeset lua-Harness suite[1] is added to Tarantool
      testing. Considering Tarantool specific changes in runtime the suite
      itself is adjusted in LuaJIT submodule.
      
      However, Tarantool provides and unconditionally loads TAP module
      conflicting with the one used in the new suite. Hence, the Tarantool
      built-in module is "unloaded" in test/luajit-test-init.lua.
      
      Furthermore, Tarantool provides UTF-8 support via another built-in
      module. Its interfaces differ from the ones implemented in Lua5.3 and
      moonjit. At the same time our LuaJIT fork provides no UTF-8 support, so
      lua-Harness UTF-8 detector is simply confused with non-nil utf8 global
      variable. As a result, utf8 is set to nil in test/luajit-test-init.lua.
      
      There are also some tests launching Lua interpreter, so strict need to
      be disabled for their child tests too. Hence `strict.off()` is added to
      `progname` (i.e. arg[-1] considering the way Tarantool parses its CLI
      arguments) command used in these tests.
      
      [1]: https://framagit.org/fperrad/lua-Harness/tree/a74be27/test_lua
      
      
      
      Closes #5844
      Part of #4473
      
      Reviewed-by: default avatarSergey Ostanevich <sergos@tarantool.org>
      Reviewed-by: default avatarIgor Munkin <imun@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      a0ade206
  7. Mar 10, 2021
    • Igor Munkin's avatar
      luajit: bump new version · 1458a2b2
      Igor Munkin authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: adjust LuaJIT test suite for Tarantool
      * test: change LuaJIT test suite to match b4e6bf0
      * test: change LuaJIT test suite to match 5a61e1a
      * test: change LuaJIT test suite to match c198167
      * test: change LuaJIT test suite to match de5568e
      * test: add LuaJIT-test-cleanup test suite
      * test: fix Lua command in utils.selfrun
      * test: fix luacheck invocation for non-real paths
      
      Within this changeset LuaJIT-test-cleanup suite[1] is added to Tarantool
      testing. Considering Tarantool specific changes in runtime the suite
      itself is adjusted in LuaJIT submodule. However, there is <strict>
      module enabled by default in Debug build, so the testing environment
      need to be tweaked via test/luajit-test-init.lua script to be run prior
      to every LuaJIT suite test is started.
      
      [1]: https://github.com/LuaJIT/LuaJIT-test-cleanup/tree/014708b/test
      
      
      
      Closes #4064
      Part of #4473
      
      Reviewed-by: default avatarSergey Kaplun <skaplun@tarantool.org>
      Reviewed-by: default avatarSergey Ostanevich <sergos@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      1458a2b2
  8. Mar 04, 2021
  9. Feb 28, 2021
    • Igor Munkin's avatar
      build: adjust LuaJIT build system · 07c83aab
      Igor Munkin authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: run luacheck static analysis via CMake
      * test: fix warnings found with luacheck in misclib*
      * test: run LuaJIT tests via CMake
      * build: replace GNU Make with CMake
      * build: preserve the original build system
      
      Since LuaJIT build system is ported to CMake in scope of the changeset
      mentioned above, the module building the LuaJIT bundled in Tarantool is
      completely reworked. There is no option to build Tarantool against
      another prebuilt LuaJIT due to a91962c0
      ('Until Bug#962848 is fixed, don't try to compile with external
      LuaJIT'), so all redundant options defining the libluajit to be used in
      Tarantool are dropped with the related auxiliary files.
      
      To run LuaJIT related tests or static analysis for Lua files within
      LuaJIT repository, <LuaJIT-test> and <LuaJIT-luacheck> targets are used
      respectively as a dependency of the corresponding Tarantool targets.
      
      As an additional dependency to run LuaJIT tests, prove[1] utility is
      required, so the necessary binary packages are added to the lists with
      build requirements.
      
      [1]: https://metacpan.org/pod/TAP::Harness#prove
      
      
      
      Closes #4862
      Closes #5470
      Closes #5631
      
      Reviewed-by: default avatarSergey Kaplun <skaplun@tarantool.org>
      Reviewed-by: default avatarTimur Safin <tsafin@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      07c83aab
  10. Jan 25, 2021
    • Alexander V. Tikhonov's avatar
      build: bump zstd submodule · c7094cd7
      Alexander V. Tikhonov authored
      Updated third_party/zstd submodule from v1.3.3 to v1.4.8 version.
      
      Found issue building on Fedora 33:
      
        third_party/zstd/lib/decompress/zstd_decompress.c: In function ‘ZSTD_findFrameCompressedSize’:
        third_party/zstd/lib/decompress/zstd_decompress.c:1502:18: error: ‘zfh.headerSize’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
         1502 |         ip += zfh.headerSize;
              |                  ^
      
      Also found that later releases of third_party/zstd submodule already
      fixed it. Decided to bump third_party/zstd submodule from v1.3.3 to
      v1.4.8. Added to zstd cmake build rules new files appeared on bumping.
      
      Found that some checking in static-build test exporting symbols like:
      
        ZSTD_free
        ZSTD_malloc
      
      never were public symbols and should not be tested for presence in the
      Tarantool executable, but also these symbols currently outdated and
      broke the testing. To avoid of it these symbols removed from test.
      
      Needed for #5502
      Closes #5697
      c7094cd7
  11. Dec 30, 2020
  12. Dec 28, 2020
    • Igor Munkin's avatar
      luajit: bump new version · 434e1c5c
      Igor Munkin authored
      * tools: introduce a memory profile parser
      * misc: add Lua API for memory profiler
      * core: introduce memory profiler
      * vm: introduce VM states for Lua and fast functions
      * core: introduce write buffer module
      * utils: introduce leb128 reader and writer
      
      Relates to #5490
      Closes #5442
      Unverified
      434e1c5c
  13. Dec 07, 2020
  14. Dec 01, 2020
  15. Nov 26, 2020
  16. Oct 30, 2020
  17. Oct 21, 2020
    • Kirill Yukhin's avatar
      luajit: bump new version · 4c6bc051
      Kirill Yukhin authored
      * misc: add lmisclib.h to lua.hpp header
      * build: fix build for Windows-like systems
      * test: fix warning for old gcc at testgetmetrics.c
      4c6bc051
  18. Oct 16, 2020
  19. Oct 15, 2020
  20. Oct 13, 2020
  21. Jul 22, 2020
  22. Jul 17, 2020
  23. Jul 02, 2020
  24. Apr 20, 2020
  25. Apr 14, 2020
  26. Apr 13, 2020
    • Serge Petrenko's avatar
      box: add MsgPack encoding/decoding for UUID · d68fc292
      Serge Petrenko authored
      A special format for encoding UUIDs to MsgPack is introduced.
      It is supported by both lua and C encoders/decoders, and it is now
      possible to insert UUIDs into spaces, but only into unindexed fields
      without format for now.
      
      Prerequisite #4268
      
      @TarantoolBot document
      Title: Internals: msgpack format for UUID
      
      UUID values share the MessagePack type with decimals:
      both use MP_EXT. A new subtype is introduced for UUIDs,
      MP_UUID = `0x02`
      UUID is encoded as follows:
      ```
          +--------+---------+-----------+
          | MP_EXT | MP_UUID | UuidValue |
          +--------+---------+-----------+
      ```
      Since UUID is 16 bytes in size, the header, MP_EXT, is always the same:
      `0xd8`. MP_UUID = `0x02` follows. The header is followed by the 16
      bytes of the UuidValue.
      
      UuidValue consists of 11 fields, which are encoded as big endian
      unsigned integers in the following order: `time_low` (4 bytes), `time_mid`
      (2 bytes), `time_hi_and_version` (2 bytes), `clock_seq_hi_and_reserved` (1
      byte), `clock_seq_low` (1 byte), `node[0], ..., node[5]` (1 byte each).
      
      The total size of such a representation is 18 bytes, whereas storing
      uuids as strings requires from 34 (when '-'s are ommitted) to 38 bytes
      per UUID, giving a 2x space usage improvement.
      d68fc292
  27. Mar 20, 2020
    • Kirill Yukhin's avatar
      luajit: bump new version · 3c641629
      Kirill Yukhin authored
      Cleaned up the tests code according to the Lua style guide:
      - made scoped variables local
      - added os.exit call at the end of the test chunk
      - adjusted the messages in test:ok calls
      3c641629
  28. Mar 05, 2020
    • Kirill Yukhin's avatar
      luajit: bump new version · 12694d72
      Kirill Yukhin authored
      - Make string to number conversions fail on NUL char.
      12694d72
    • Kirill Yukhin's avatar
      luajit: bump new version · a81453b9
      Kirill Yukhin authored
      - gdb: adjust the extension to be used with Python 2
      - gdb: introduce luajit-gdb extension
      a81453b9
    • Serge Petrenko's avatar
      build: link bundled libcurl with c-ares · 23837076
      Serge Petrenko authored
      libcurl has a built-in threaded resolver used for asynchronous DNS
      requests, however, when DNS server is slow to respond, the request still
      hangs tarantool until it is finished. The reason is that curl calls
      thread_join on the resolving thread internally upon timeout, making the
      calling thread hang until resolution has ended.
      Use c-ares as an asynchronous resolver instead to eliminate the problem.
      
      Closes #4591
      23837076
  29. Feb 19, 2020
  30. Feb 15, 2020
    • Olga Arkhangelskaia's avatar
      json: don't spoil instance with per-call options · f54f4dc0
      Olga Arkhangelskaia authored
      When json.decode is used with 2 arguments, 2nd argument seeps out to the
      json configuration of the instance. Moreover, due to current
      serializer.cfg implementation it remains invisible while checking
      settings using json.cfg table.
      
      This fixes commit 6508ddb7 ('json: fix
      stack-use-after-scope in json_decode()').
      
      Closes #4761
      Unverified
      f54f4dc0
Loading