Skip to content

Conversation

@elhimov
Copy link
Contributor

@elhimov elhimov commented Dec 23, 2025

This PR resolves all the problems found during investigation of the subject

Fixed 'no-ssl' build.

follow-up 331436c applying the approach introduced in 97f88ec

The mentioned approach implies using of lib/dial library rather than tls-dialer. The implementation of lib/dial depends on build type and either uses tls-dialer for 'ssl' build (tls-dialer in turn depends on OpenSSL c-library) or dummy implementation for 'no-ssl'.

Prior to this patch tls-dialer was used directly which means that tt-executable always required OpenSSL c-library (libssl.so).

Certain version of the SSL-library is resolved at build-time and depends on the build environment. So previously tt-executable always required libssl.so of the version that was installed on builder. Then if target system didn't have it tt executable failed to launch. This exact problem arose for example when one tries to install tarantool with the command:

$ tt install tarantool --use-docker

This command eventually launches tt in a docker container that is prepared internally and is based on Ubuntu 18.04 which have SSL of version 1 onboard. tt itself is usually built in modern environment with SSL of version 3 and thus its execution in docker failed.

Upgraded docker images that is used by tt to build tarantool.

tt performs tarantool in-docker compilation in the scope of commands

tt install tarantool --use-docker
tt pack tgz|deb|rpm --use-docker

Docker images that are used internally are based on Ubuntu 18.04, but starting from tarantool/tarantool@1fd4404 tarantool compilation no longer succeed in this system due to compilation issues. The problem has been fixed already (tarantool/tarantool#12170), but anyway there are a bunch of commits (including version 3.6.0 of tarantool) that can't be used with the commands mentioned above.

At the same time Ubuntu 18.04 is quite an old release that is no longer supported. So this patch bumps "base" of the tarantool-builder dockers to the next Ubuntu LTS which is 20.04 (its default c-compiler is not affected with the "problem" commits).

Test against predefined versions of tarantool in test_install_tarantool_in_docker

Prior to this patch integration test test_install_tarantool_in_docker doesn't specify tarantool version explicitly, so it was always checked against the latest one. Which means that it might fail due to some problem introduced in tarantool and thus it might break tt release cycle with non-tt problem.

To avoid such an unpredictable behavior this test is adjusted to check only against predefined tarantool versions (each of them is obtained from the corresponding test environment). Original test that checks against the latest tarantool version is to be moved to separate workflow that is not involved into release cycle and is performed periodically (by cron) to monitor consistency.

Fix installing tarantool by commit hash.

Prior to the correction installation-by-commit only worked with commits that are accessible from the current master's HEAD

I didn't forget about:

  • Well-written commit messages (see documentation how to write a commit message)
  • Don't forget about TarantoolBot in a commit message (see example)
  • Tests (see documentation for a testing package)
  • Changelog (see documentation for changelog format)

Related issues:

Closes #1220
Closes #1221
Closes #1222
Closes #1223
Related to tarantool/tarantool#12167

@elhimov elhimov added the full-ci Enables full ci tests label Dec 23, 2025
@elhimov elhimov force-pushed the elhimov/gh-1223-fix-master-branch branch 2 times, most recently from 79208b1 to a86b9c2 Compare December 23, 2025 21:53
@elhimov elhimov force-pushed the elhimov/gh-1223-fix-master-branch branch 2 times, most recently from f7d6370 to e7ccff1 Compare December 24, 2025 16:48
@elhimov elhimov force-pushed the elhimov/gh-1223-fix-master-branch branch 3 times, most recently from f8c08cc to 8f674d3 Compare December 25, 2025 14:34
follow-up 331436c applying the approach introduced in 97f88ec

The mentioned approach implies using of `lib/dial` library rather than
`tls-dialer`. The implementation of `lib/dial` depends on build type
and either uses `tls-dialer` for 'ssl' build (`tls-dialer` in turn
depends on OpenSSL c-library) or dummy implementation for 'no-ssl'.

Prior to this patch `tls-dialer` was used directly which means that
`tt`-executable always required OpenSSL c-library (`libssl.so`).

Certain version of the SSL-library is resolved at build-time and depends
on the build environment. So previously `tt`-executable always required
`libssl.so` of the version that was installed on builder. Then if target
system didn't have it `tt` executable failed to launch. This exact
problem arose for example when one tries to install `tarantool` using
docker with command:

$ tt install tarantool --use-docker

This command eventually launch `tt` in a docker image that is prepared
internally and is based on Ubuntu 18.04 which have SSL of version 1
onboard. `tt` itself is usually built in modern environment with SSL of
version 3 and thus its execution in docker failed.

Closes #1220
Part of #1223
`tt` performs `tarantool` in-docker compilation in the scope of commands

tt install tarantool --use-docker
tt pack tgz|deb|rpm --use-docker

Docker images that are used internally are based on Ubuntu 18.04, but
starting from tarantool/tarantool#1fd4404 `tarantool` compilation no
longer succeed in this system due to compilation issues. The problem
has been fixed already (tarantool/tarantool#12170), but anyway there are
a bunch of commits (including version 3.6.0 of tarantool) that can't be
used with the commands mentioned above.

At the same time Ubuntu 18.04 is quite an old release that is no longer
supported. So this patch bumps "base" of the tarantool-builder dockers
to the next Ubuntu LTS which is 20.04 (its default c-compiler is not
affected with the "problem" commits).

Closes #1223
Related to tarantool/tarantool#12167

@TarantoolBot document
Title: upgrade internal docker container

Docker container that is used when in-docker tarantool build is
requested was upgraded from Ubuntu 18.04 to Ubuntu 20.04.
Full integration tests on master branch were ended up with
'no space left' at `test_pack_deb_with_docker`. With this patch
the tests that consume the most disk space are executed first as
a separate job step.

A few 'docker' tests that have been disabled recently in 4fb50af
are turned back to be launched within that step.

Closes #1223
Prior to this patch integration test `test_install_tarantool_in_docker`
checked doesn't specify tarantool version explicitly, so it was always
checked against the latest one. Which means that it might fail due to
some problem introduced in tarantool and thus broke `tt` release cycle
with non-tt problem.

To avoid such an unpredictable behavior this test is adjusted to check
only against predefined `tarantool` versions (each of them is obtained
from the corresponding test environment).
Original test that checks against the latest `tarantool` version is to
be moved to separate workflow that is not involved into release cycle
and is performed periodically (by cron) to monitor consistency.

Closes #1221
Prior to this patch installation-by-commit only worked if commit is
accessible from the master's HEAD.

Closes #1222

@TarantoolBot document
Title: fix installation of tarantool by commit hash.
@elhimov elhimov force-pushed the elhimov/gh-1223-fix-master-branch branch from 8f674d3 to 499d1e0 Compare December 26, 2025 00:14
Copy link
Contributor

@patapenka-alexey patapenka-alexey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@oleg-jukovec oleg-jukovec merged commit 5cd1a52 into master Dec 26, 2025
26 checks passed
@oleg-jukovec oleg-jukovec deleted the elhimov/gh-1223-fix-master-branch branch December 26, 2025 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Enables full ci tests

Projects

None yet

5 participants