Skip to content
Snippets Groups Projects
  1. Sep 19, 2019
    • Alexander V. Tikhonov's avatar
      build: FreeBSD packages installation · 272081ac
      Alexander V. Tikhonov authored
      Found that the curl failed to build on FreeBSD with errors:
      gmake[2]: Entering directory '/home/vagrant/tarantool/third_party/curl/src'
        CCLD     curl
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `SSLv23_client_method'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `CONF_modules_free'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `ERR_free_strings'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `sk_value'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `ENGINE_cleanup'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `SSL_library_init'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `EVP_MD_CTX_destroy'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `sk_pop_free'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `SSLeay'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `SSL_get_ex_new_index'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `OPENSSL_add_all_algorithms_noconf'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `SSL_COMP_free_compression_methods'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `EVP_MD_CTX_create'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `EVP_cleanup'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `sk_num'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `sk_pop'
      /usr/local/bin/ld: ../lib/.libs/libcurl.so: undefined reference to `SSL_load_error_strings'
      collect2: error: ld returned 1 exit status
      gmake[2]: *** [Makefile:921: curl] Error 1
      
      Found root cause of the issue at the `./configure <...>` output:
       | checking for OpenSSL headers version... 1.0.2 - 0x1000214fL
       | checking for OpenSSL library version... 1.1.1
       | configure: WARNING: OpenSSL headers and library versions do not match.
      It is seen that the Tarantool bootstrap installed pkg 'openssl'
      of the version '1.0.2', while the currently default FreeBSD 'openssl'
      version was '1.1.1'.
      
      Anyway we don't need any special openssl version installed against
      default one, so the fix is just to remove the openssl package from
      bootstrap installation.
      Also found that some installing packages are not needed too,
      removed it from FreeBSD bootstrap.
      
      Additionally added libiconv library into bootstrap which is needed
      as workaround to avoid of the issue described in:
      	https://github.com/tarantool/tarantool/issues/3791
      
      Closed #4490
      
      (cherry picked from commit 1f2338bd)
      272081ac
  2. Aug 22, 2019
  3. Aug 21, 2019
    • Mergen Imeev's avatar
      build: link libcurl statically from a submodule · 5fcca9dd
      Mergen Imeev authored
      Hold libcurl-7.65.3. This version is not affected by the following
      issues:
      
      * #4180 ('httpc: redirects are broken with libcurl-7.30 and older');
      * #4389 ('libcurl memory leak');
      * #4397 ('HTTPS seem to be unstable').
      
      After this patch libcurl will be statically linked when
      ENABLE_BUNDLED_LIBCURL option is set. This option is set by default.
      
      Closes #4318
      
      @TarantoolBot document
      Title: Tarantool dependency list was changed
      
      * Added build dependencies: autoconf, automake, libtool, zlib-devel
        (zlib1g-dev on Debian).
      * Added runtime dependencies: zlib (zlib1g on Debian).
      * Removed build dependencies: libcurl-devel (libcurl4-openssl-dev on
        Debian).
      * Removed runtime dependencies: curl.
      
      The reason is that now we use compiled-in libcurl: so we don't depend on
      a system libcurl, but inherit its dependencies.
      
      (cherry picked from commit 7e51aebb)
      5fcca9dd
  4. Jul 26, 2019
    • Alexander V. Tikhonov's avatar
      travis-ci: fix OSX max files limits · 027fa1a0
      Alexander V. Tikhonov authored
      Increased the maximum number of open file descriptors on macOS.
      
      Travis-ci: needed the "ulimit -n <value>" call, because found
      that the tests fail without it even with launchctl limit tool set.
      
      Gitlab-ci: needed the "launchctl limit maxfiles <value>" call,
      because under gitlib-ci it is needed the password to change the
      limits and we call the sudo tool which separates the local set
      of the environment.
      
      Closes #4373
      027fa1a0
    • Alexander V. Tikhonov's avatar
      Revert "travis-ci: freeze curl version on 7.65.0" · abd5ccee
      Alexander V. Tikhonov authored
      Due to the new 7.65.3 curl version released on 2019-07-19,
      removed temporary workaround that downgraded the curl to
      7.65.0.
      
      This reverts commit 2e880af0.
      
      Follows up #4288
      abd5ccee
  5. Jul 19, 2019
    • Alexander V. Tikhonov's avatar
      test: need to run all test suites on OSX · 73319ae8
      Alexander V. Tikhonov authored
      Enabled complete testing for OSX, temporary skipped the
      failed suite replication/ and tests engine/replica_join
      with issue #4370 and small/quota from repository
      https://github.com/tarantool/small.git with issue #4357
      to enable it back. Also fixed the OSX ulimit setup
      different for VBOX and Travis-ci images.
      
      Closes #4358
      73319ae8
    • Alexander V. Tikhonov's avatar
      test: need ASAN testing in commit process · 55f7586a
      Alexander V. Tikhonov authored
      Added ASAN tesing in commit process, used clang-8 for
      ASAN build under debian-buster image. Added for testing
      only the passing test suites, the rest of the tests
      not used and will be enabled durring issue #4360. Also
      fixed job for testing LTO with clang on debian-buster
      in travis-ci, changed it to the same as in gitlab-ci,
      changed default clang to clang-8.
      
      Closes #4359
      55f7586a
  6. Jul 11, 2019
    • Michael Filonenko's avatar
    • avtikhon's avatar
      travis-ci: apt-get fails to update the APT repos (#4332) · 68dbd154
      avtikhon authored
      travis-ci APT repository update failed on Debian 10 (Buster)
      with command 'apt-get update', like:
      
      Get:1 http://deb.debian.org/debian buster InRelease [118 kB]
      Get:2 http://security.debian.org/debian-security buster/updates InRelease [39.1 kB]
      Get:3 http://deb.debian.org/debian buster-updates InRelease [46.8 kB]
      Reading package lists... Done
      N: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Version' value from '' to '10'
      E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'testing' to 'stable'
      N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
      N: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Version' value from '' to '10.0'
      E: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'stable'
      N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
      E: Repository 'http://deb.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'testing-updates' to 'stable-updates'
      N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
      
      The cause of the issue was:
      
      According to Debian Project News published 1st of July, Debian 10 "Buster"
      was scheduled to transition from testing to stable on 2019-07-06.
      It looks like the transition was in fact performed as scheduled, and so the
      testing distribution should now be catching up witn unstable, to eventually
      become Debian 11 "Bullseye". You might be experiencing some temporary side
      effects because of this transition of the Debian mirrors.
      If you want to stay with Debian 10 "Buster", now would be a good time to switch
      your /etc/apt/sources.list to use the release name buster instead of testing.
      Otherwise, you'll soon be getting the raw bleeding-edge stuff from unstable,
      and you might accidentally get a partial upgrade to proto-"Bullseye".
      Also, this is a reminder for anyone using the word stable in their
      /etc/apt/sources.list to consider whether to change it to stretch and stay with
      the old version, or read the Release Notes and perform the recommended upgrade
      steps.
      
      To fix the issue it had to accept interactively the changes in the repositories
      NOTE: apt instead of apt-get can accept the changes interactively
      
      apt update -y
      
      either accept only the needed changes for 'version' and 'suite'
      
      apt-get update --allow-releaseinfo-change-version --allow-releaseinfo-change-suite
      
      Seems that the only 'version' and 'suite' accept is better than blind
      accept of the all changes.
      
      Closes #4331
      68dbd154
  7. Jul 05, 2019
  8. Jul 04, 2019
    • Alexander V. Tikhonov's avatar
      Enable GitLab CI testing · ce623a23
      Alexander V. Tikhonov authored
      Implemented GitLab CI testing process additionally to existing Travis
      CI. The new testing process is added to run tests faster. It requires to
      control a load of machines to avoid flaky fails on timeouts. GitLab CI
      allows us to run testing on our machines.
      
      Created 2 stages for testing and deploying packages.
      
      The testing stage contains the following jobs that are run for all
      branches:
      
      * Debian 9 (Stretch): release/debug gcc.
      * Debian 10 (Buster): release clang8 + lto.
      * OSX 14 (Mojave): release.
      * FreeBSD 12: release gcc.
      
      And the following jobs that are run of long-term branches (release
      branches: for now it is 1.10, 2.1 and master):
      
      * OSX 13 (Sierra): release clang.
      * OSX 14 (Mojave): release clang + lto.
      
      The deployment stage contains the same jobs as we have in Travis CI.
      They however just build tarballs and packages: don't push them to S3 and
      packagecloud.
      
      In order to run full testing on a short-term branch one can name it with
      '-full-ci' suffix.
      
      The additional manual work is needed when dependencies are changed in
      .travis.mk file ('deps_debian' or 'deps_buster_clang_8' goals):
      
       | make GITLAB_USER=foo -f .gitlab.mk docker_bootstrap
      
      This command pushes docker images into GitLab Registry and then they are
      used in testing. Pre-built images speed up testing.
      
      Fixes #4156
      ce623a23
  9. Jun 07, 2019
    • Alexander V. Tikhonov's avatar
      travis-ci: needs blind install for brew python2 · ceefd0c8
      Alexander V. Tikhonov authored
      Travis-ci failed on brew install python2 due to it was
      already installed on OSX 10.13 Sierra, so it needs
      to be installed without fails on its exists.
      
      Follow up #4254
      ceefd0c8
    • Alexander V. Tikhonov's avatar
      test: Enable http_client test · 33254bd6
      Alexander V. Tikhonov authored
      Removed skip flag file to switch on the testing of the
      http_client test. Enabled http_client test on OSX,
      fixed missing of the python2 symlink. Removed the subtest
      on '595 error return' from 'error' suite, due to it may
      hang forever. To enable test on travis-ci reverted commit:
      
      1d7285c4 ('Disable flaky http_client.test.lua')
      
      Closes #4254
      33254bd6
  10. May 20, 2019
    • Alexander V. Tikhonov's avatar
      travis-ci: fix LTO and clang · e55396c8
      Alexander V. Tikhonov authored
      Made fixes:
      
      - Added CMAKE_EXTRA_PARAMS environment to docker's container
        runs to enable -DENABLE_LTO=ON/OFF cmake option.
      
      - Added CC/CXX environment to docker's container runs to set
        clang for cmake. Also the additional environment variables
        {CC,CXX}_FOR_BUILD were postponed, because we didn't
        run cross-compilation at the moment, for more info check:
      
          https://docs.travis-ci.com/user/languages/cpp/#choosing-compilers-to-test-against
      
      - Changed LTO docker's image to 'debian-buster' due to LTO needed
        higher versions of packages, check for more information commit:
      
          f9e28ce4 ('Add LTO support')
      
      - Fixed sources to avoid of failures on builds by GCC with LTO:
      
      1)  src/box/memtx_rtree.c: In function ‘mp_decode_rect’:
          src/box/memtx_rtree.c:86:24: error: ‘c’ may be used uninitialized
            in this function [-Werror=maybe-uninitialized]
              rect->coords[i * 2] = c;
                                  ^
          src/box/memtx_rtree.c:74:10: note: ‘c’ was declared here
            coord_t c;
                    ^
      
      2)  src/box/sql/func.c: In function ‘quoteFunc’:
          src/box/sql/func.c:1103:3: error: ‘b’ may be used uninitialized
            in this function [-Werror=maybe-uninitialized]
             sql_result_text(context, sql_value_boolean(argv[0]) ?
             ^
          src/box/sql/vdbeapi.c:217:7: note: ‘b’ was declared here
            bool b;
                 ^
      
      3)  src/box/tuple_update.c: In function ‘update_read_ops’:
          src/box/tuple_update.c:1022:4: error: ‘field_no’ may be used
            uninitialized in this function [-Werror=maybe-uninitialized]
              diag_set(ClientError, ER_NO_SUCH_FIELD_NO, field_no);
              ^
          src/box/tuple_update.c:1014:11: note: ‘field_no’ was declared here
             int32_t field_no;
                     ^
      
      4)  src/httpc.c: In function ‘httpc_set_verbose’:
          src/httpc.c:267:2: error: call to ‘_curl_easy_setopt_err_long’
            declared with attribute warning: curl_easy_setopt expects a long
            argument for this option [-Werror]
            curl_easy_setopt(req->curl_request.easy, CURLOPT_VERBOSE, curl_verbose);
            ^
      
      5)  src/lua/httpc.c: In function ‘luaT_httpc_request’:
          src/lua/httpc.c:128:64: error: ‘MEM[(int *)&parser + 20B]’ may be used
            uninitialized in this function [-Werror=maybe-uninitialized]
            lua_pushinteger(L, (parser.http_minor > 0) ? parser.http_minor: 0);
                                                                          ^
          src/lua/httpc.c:67:21: note: ‘MEM[(int *)&parser + 20B]’ was declared here
            struct http_parser parser;
                               ^
          src/lua/httpc.c:124:64: error: ‘MEM[(int *)&parser + 16B]’ may be used
            uninitialized in this function [-Werror=maybe-uninitialized]
            lua_pushinteger(L, (parser.http_major > 0) ? parser.http_major: 0);
                                                                          ^
          src/lua/httpc.c:67:21: note: ‘MEM[(int *)&parser + 16B]’ was declared here
            struct http_parser parser;
                               ^
      
      Close #4215
      e55396c8
  11. May 06, 2019
    • Alexander V. Tikhonov's avatar
      travis-ci: set jobs not to stop on failed tests · 5f87a3a3
      Alexander V. Tikhonov authored
      Added --force flag to travis-ci jobs not to stop on failed tests.
      Due to any found failed test breaks the testing it masks the other
      fails and in the following ways it's not good:
      - flaky test masks real problem
      - release testing needs overall result to fix it fast
      - parallel testing may produce flaky test
      
      Close: #4131
      5f87a3a3
  12. Apr 29, 2019
    • Alexander Turenko's avatar
      travis-ci: set right flags in release testing jobs · c308f35d
      Alexander Turenko authored
      It is important to have testing jobs that build the project with both
      -Werror and -O2 to keep the code clean. -O2 is needed, because some
      compiler warnings are available only after extra analyzing passes that
      are disabled with lesser optimization levels.
      
      The first attempt to add -Werror for release testing jobs was made in
      da505ee7 ('Add -Werror for CI (1.10
      part)'), but it mistakely doesn't enable -O2 for RelWithDebInfoWError
      build. It is possible to fix it in this way:
      
       | --- a/cmake/compiler.cmake
       | +++ b/cmake/compiler.cmake
       | @@ -113,10 +113,14 @@ set (CMAKE_C_FLAGS_DEBUG
       |      "${CMAKE_C_FLAGS_DEBUG} ${CC_DEBUG_OPT} -O0")
       |  set (CMAKE_C_FLAGS_RELWITHDEBINFO
       |      "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CC_DEBUG_OPT} -O2")
       | +set (CMAKE_C_FLAGS_RELWITHDEBINFOWERROR
       | +    "${CMAKE_C_FLAGS_RELWITHDEBINFOWERROR} ${CC_DEBUG_OPT} -O2")
       |  set (CMAKE_CXX_FLAGS_DEBUG
       |      "${CMAKE_CXX_FLAGS_DEBUG} ${CC_DEBUG_OPT} -O0")
       |  set (CMAKE_CXX_FLAGS_RELWITHDEBINFO
       |      "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${CC_DEBUG_OPT} -O2")
       | +set (CMAKE_CXX_FLAGS_RELWITHDEBINFOWERROR
       | +    "${CMAKE_CXX_FLAGS_RELWITHDEBINFOWERROR} ${CC_DEBUG_OPT} -O2")
       |
       |  unset(CC_DEBUG_OPT)
      
      However I think that a build type (and so `tarantool --version`) should
      not show whether -Werror was passed or not. So I have added
      ENABLE_WERROR CMake option for that. It can be set like so:
      
       | cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON
      
      Enabled the option in testing Travis-CI jobs with the RelWithDebInfo
      build type. Deploy jobs don't include it as before.
      
      Fixed all -Wmaybe-uninitialized and -Wunused-result warnings. A few
      notes about the fixes:
      
      * net.box does not validate received data in general, so I don't add a
        check for autoincrement IDs too. Set the ID to INT64_MIN, because this
        value is less probably will appear here in a normal case and so is the
        best one to signal a user that something probably going wrongly.
      * xrow_decode_*() functions could read uninitialized data from
        row->body[0].iov_base in xrow_on_decode_err() when printing a hex code
        for a row. It could be possible when the received msgpack was empty
        (row->bodycnt == 0), but there were expected keys (key_map != 0).
      * getcwd() is marked with __attribute__((__warn_unused_result__)) in
        glibc, but the buffer filled by this call is not used anywhere and so
        just removed.
      * Vinyl -Wmaybe-uninitialized warnings are false positive ones.
      
      Added comments and quotes into .travis.yml to ease reading. Removed
      "test" word from the CentOS 6 job name, because we don't run tests on
      this distro (disabled in the RPM spec).
      
      Fixes #4178.
      c308f35d
  13. Mar 25, 2019
  14. Mar 15, 2019
    • Alexander V. Tikhonov's avatar
      travis-ci: fix OS X Mojave 10.14 build · eb964471
      Alexander V. Tikhonov authored
      Fixed Mojave Mac build with setting MACOSX_DEPLOYMENT_TARGET environment
      variable for LuaJIT's Makefile. This variable specifies the minimum
      version of OS X on which the target binaries are to be deployed.
      
      The reason why we need to set MACOSX_DEPLOYMENT_TARGET to at least 10.6
      is that 10.4 SDK (which is set by default in LuaJIT's Makefile) is not
      longer included in Mac OS X Mojave 10.14.
      
      See also https://github.com/LuaJIT/LuaJIT/issues/484
      
      We already set -Wl,-macosx_version_min,10.6 (-macosx_version_min and
      MACOSX_DEPLOYMENT_TARGET are synonymous), but it affects only a linker.
      We possibly should remove -macosx_version_min, because it superseded by
      MACOSX_DEPLOYMENT_TARGET, but it should be done with verification that
      the original problem really fixed by the new way to set a deployment
      target. This is not part of this patch.
      
      Removed virtualenv usage in CI for OS X (so pip just installs packages
      into a system), because OS X Mojave 10.14 does not offer virtualenv by
      default.
      
      Fixed #3797
      eb964471
  15. Oct 25, 2018
  16. Oct 05, 2018
    • Alexander Turenko's avatar
      Add -Werror for CI (1.10 part) · da505ee7
      Alexander Turenko authored
      Added MAKE_BUILD_TYPE=RelWithDebInfoWError option, which means enabling
      -DNDEBUG=1, -O2 and -Wall -Wextra -Werror. This ensures we have clean
      release build without warnings.
      
      Fixed found -Wunused-variable and -Wunused-parameter warnings.
      
      Part of #3238.
      da505ee7
  17. Aug 07, 2018
  18. May 05, 2018
  19. Apr 22, 2018
    • Alexander Turenko's avatar
      Remove autogenerated files · 1473e30e
      Alexander Turenko authored
      Rewrote TCL scripts as posix shell ones, enabled SQL_MAINTAINER_MODE
      commands unconditionally.
      
      Rewrote cmake targets to generate those files in a build directory
      instead of the source directory.
      
      Fixes #3183.
      1473e30e
  20. Apr 11, 2018
  21. Apr 10, 2018
  22. Apr 09, 2018
  23. Feb 01, 2018
  24. Jan 31, 2018
  25. Jan 26, 2018
  26. Oct 13, 2017
  27. Oct 06, 2017
  28. Oct 05, 2017
  29. Sep 18, 2017
  30. Sep 15, 2017
  31. Sep 12, 2017
  32. Jun 16, 2017
    • Ilya's avatar
      Add HTTP client based on libcurl · 7e62ac79
      Ilya authored
      Inpspired by tarantool/curl module by Vasiliy Soshnikov.
      Reviewed and refactored by Roman Tsisyk.
      
      Closes #2083
      7e62ac79
Loading