Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: create the packpack suse leap 15.[0..2] images and testing with it #4562

Closed
1 of 2 tasks
avtikhon opened this issue Oct 11, 2019 · 2 comments
Closed
1 of 2 tasks
Assignees
Labels
feature A new functionality qa Issues related to tests or testing subsystem
Milestone

Comments

@avtikhon
Copy link
Contributor

avtikhon commented Oct 11, 2019

OS version:
suse 15.[0-2]

Blocked by:

@avtikhon avtikhon added feature A new functionality qa Issues related to tests or testing subsystem labels Oct 11, 2019
@avtikhon avtikhon self-assigned this Oct 11, 2019
avtikhon added a commit that referenced this issue Oct 21, 2019
Added makefile to build the SuSE based packages.

Part of #4562
avtikhon added a commit that referenced this issue Oct 29, 2019
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Closes #4562
@kyukhin kyukhin added this to the 2.3.1 milestone Nov 8, 2019
@kyukhin kyukhin modified the milestones: 2.3.1, 2.3.2 Dec 30, 2019
@avtikhon avtikhon added this to ON REVIEW in Quality Assurance Apr 7, 2020
@avtikhon
Copy link
Contributor Author

avtikhon commented Apr 10, 2020

Waiting sub-task at:
packpack/packpack#121

@ligurio
Copy link
Member

ligurio commented Apr 23, 2020

@avtikhon please add web link to patch and move to review back

@ligurio ligurio moved this from ON REVIEW to DOING in Quality Assurance Apr 23, 2020
avtikhon added a commit that referenced this issue Apr 23, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Closes #4562
@avtikhon avtikhon moved this from DOING to ON REVIEW in Quality Assurance Apr 23, 2020
@kyukhin kyukhin modified the milestones: 2.3.3, QA Apr 23, 2020
avtikhon added a commit that referenced this issue Apr 28, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Closes #4562
avtikhon added a commit that referenced this issue Apr 28, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Closes #4562

t
avtikhon added a commit that referenced this issue Apr 30, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Close #4562
avtikhon added a commit that referenced this issue Jun 24, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Close #4562
avtikhon added a commit that referenced this issue Jun 24, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs with testings.

Close #4562
avtikhon added a commit that referenced this issue Jun 24, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs with testings.

Close #4562
avtikhon added a commit that referenced this issue Jun 24, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs with testings.

Close #4562
avtikhon added a commit that referenced this issue Jun 24, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs with testings.

Close #4562
avtikhon added a commit that referenced this issue Jun 26, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs with testings.

Close #4562
avtikhon added a commit that referenced this issue Jul 1, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Added rpm/prebuild-opensuse-leap.sh script to fix the issue with
broken repositories in zypper cache. It refreshes zypper cache.

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs with testings.

Close #4562
avtikhon added a commit that referenced this issue Jul 1, 2020
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Added rpm/prebuild-opensuse-leap.sh script to fix the issue with
broken repositories in zypper cache. It refreshes zypper cache.

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs with testings.

Close #4562
avtikhon added a commit that referenced this issue Aug 19, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behaviour was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
whould be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself than the check was wrong. The previous logic of the
check was to catch the error ENOENT from inside the xdir_scan()
function to handle the situation when vinyl_dir was not exist. In this
way errno should be reseted before xdir_scan() call to give the ability
for xdir_scan() to use return value without errno set and correctly
handle errno from inside the xdir_scan().

After discussions found that there was alternative better solution to
fix it. To be sure in behaviour of the changing errno decided to use
variant with the flag in xdir_scan() if the directory should exist.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 19, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
avtikhon added a commit that referenced this issue Aug 19, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behaviour was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
whould be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself than the check was wrong. The previous logic of the
check was to catch the error ENOENT from inside the xdir_scan()
function to handle the situation when vinyl_dir was not exist. In this
way errno should be reseted before xdir_scan() call to give the ability
for xdir_scan() to use return value without errno set and correctly
handle errno from inside the xdir_scan().

After discussions found that there was alternative better solution to
fix it. As mentioned above xdir_scan() function is not system call and
can be changed inside it in any possible way. So check outside of this
function on errno could be broken, because of the xdir_scan() changes.
To avoid of it we must avoid of errno checks outside of the function.
Better solution was to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 19, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
avtikhon added a commit that referenced this issue Aug 19, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself than the check was wrong. The previous logic of the
check was to catch the error ENOENT from inside the xdir_scan()
function to handle the situation when vinyl_dir was not exist. In this
way errno should be reset before xdir_scan() call to give the ability
for xdir_scan() to use return value without errno set and correctly
handle errno from inside the xdir_scan().

After discussions found that there was alternative better solution to
fix it. As mentioned above xdir_scan() function is not system call and
can be changed inside it in any possible way. So check outside of this
function on errno could be broken, because of the xdir_scan() changes.
To avoid of it we must avoid of errno checks outside of the function.
Better solution was to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 19, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
avtikhon added a commit that referenced this issue Aug 20, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself than the check was wrong. The previous logic of the
check was to catch the error ENOENT which set in the xdir_scan()
function to handle the situation when vinyl_dir was not exist. In this
way errno should be reset before xdir_scan() call to give the ability
for xdir_scan() to use return value without errno set and correctly
handle errno which could be set in the xdir_scan().

After discussions found that there was alternative better solution to
fix it. As mentioned above xdir_scan() function is not system call and
can be changed inside it in any possible way. So check outside of this
function on errno could be broken, because of the xdir_scan() changes.
To avoid of it we must avoid of errno checks outside of the function.
Better solution was to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 20, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
avtikhon added a commit that referenced this issue Aug 20, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself than the check was wrong.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it errno had to be reset before xdir_scan() call,
because errno could be passed from any other function before call to
xdir_scan() and success system calls in xdir_scan() hadn't clean it up.

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid of it we must avoid of errno checks outside of the function.
Better solution was to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 20, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
avtikhon added a commit that referenced this issue Aug 20, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid of it we must avoid of errno checks outside of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 20, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
@avtikhon avtikhon moved this from ON REVIEW to ON REVIEW WITH 1 LGTM in Quality Assurance Aug 21, 2020
avtikhon added a commit that referenced this issue Aug 27, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid that we must not check errno after call of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 28, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
avtikhon added a commit that referenced this issue Aug 28, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid that we must not check errno after call of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
(cherry picked from commit 77367c0)
avtikhon added a commit that referenced this issue Aug 28, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562

(cherry picked from commit edf622b)
@avtikhon avtikhon moved this from ON REVIEW WITH 1 LGTM to 2 LGTMs ready to push in Quality Assurance Aug 31, 2020
kyukhin pushed a commit that referenced this issue Aug 31, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid that we must not check errno after call of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
(cherry picked from commit 43c776a)
kyukhin pushed a commit that referenced this issue Aug 31, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid that we must not check errno after call of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
(cherry picked from commit 43c776a)
kyukhin pushed a commit that referenced this issue Aug 31, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid that we must not check errno after call of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
(cherry picked from commit 43c776a)
@avtikhon avtikhon moved this from 2 LGTMs ready to push to ON REVIEW WITH 1 LGTM in Quality Assurance Aug 31, 2020
kyukhin pushed a commit that referenced this issue Aug 31, 2020
During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid that we must not check errno after call of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
avtikhon added a commit that referenced this issue Aug 31, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562
kyukhin pushed a commit that referenced this issue Aug 31, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562

(cherry picked from commit d07e5f9)
kyukhin pushed a commit that referenced this issue Aug 31, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562

(cherry picked from commit d07e5f9)
kyukhin pushed a commit that referenced this issue Aug 31, 2020
Implemented openSUSE packages build with testing for images:
opensuse-leap:15.[0-2]

Added %{sle_version} checks in Tarantool spec file according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Added opensuse-leap of 15.1 and 15.2 versions to Gitlab-CI packages
building/deploing jobs.

Closes #4562

(cherry picked from commit d07e5f9)
@avtikhon avtikhon moved this from ON REVIEW WITH 1 LGTM to DONE in Quality Assurance Aug 31, 2020
@avtikhon avtikhon removed this from DONE in Quality Assurance Sep 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new functionality qa Issues related to tests or testing subsystem
Projects
None yet
Development

No branches or pull requests

3 participants