Skip to content

Modules listed in lua_libs section might be missing in the working directory when consistent mode is used #330

@igormunkin

Description

@igormunkin

Using -j option with -1 value (i.e. everything's running consistently using a single instance) leads to sqltester.lua lookup failure. It looks like either this file is actually missing in the working directory (despite the fact it's listed in lua_libs section in suite.ini) or package.path is broken by the previous test (unlikely, since I see nothing related in both test chunks).


To reproduce the bug just run the following command:

Started ./test-run.py sql-tap/collation -j -1
Collecting tests in 'app'            (Found 0   tests): application server tests.
Collecting tests in 'app-luatest'    (Found 0   tests): application server tests on luatest.
Collecting tests in 'app-tap'        (Found 0   tests): application server tests (TAP).
Collecting tests in 'box'            (Found 0   tests): Database tests.
Collecting tests in 'box-luatest'    (Found 0   tests): Database tests.
Collecting tests in 'box-py'         (Found 0   tests): legacy python tests.
Collecting tests in 'box-tap'        (Found 0   tests): Database tests with #! using TAP.
Collecting tests in 'engine'         (Found 0   tests): tarantool multiengine tests.
Collecting tests in 'engine-tap'     (Found 0   tests): tarantool multiengine tap tests.
Collecting tests in 'engine_long'    (Found 0   tests): tarantool engine stress tests.
Collecting tests in 'long_run-py'    (Found 0   tests): long running tests.
Collecting tests in 'replication'    (Found 0   tests): tarantool/box, replication.
Collecting tests in 'replication-luatest' (Found 0   tests): replication luatests.
Collecting tests in 'replication-py' (Found 0   tests): tarantool/box, replication.
Collecting tests in 'small'          (Found 0   tests): libsmall unit tests.
Collecting tests in 'sql'            (Found 0   tests): sql tests.
Collecting tests in 'sql-luatest'    (Found 0   tests): SQL tests on luatest.
Collecting tests in 'sql-tap'        (Found 3   tests): Database tests with #! using TAP.
Collecting tests in 'swim'           (Found 0   tests): SWIM tests.
Collecting tests in 'unit'           (Found 0   tests): unit tests.
Collecting tests in 'vinyl'          (Found 0   tests): vinyl integration tests.
Collecting tests in 'vinyl-luatest'  (Found 0   tests): vinyl space engine luatests.
Collecting tests in 'wal_off'        (Found 0   tests): tarantool/box, wal_mode = none.
Collecting tests in 'xlog'           (Found 0   tests): tarantool write ahead log tests.
Collecting tests in 'xlog-py'        (Found 0   tests): legacy python tests.

Tarantool server information
 | Found executable at /home/imun/projects/tarantool/src/tarantool
 | Found tarantoolctl at /home/imun/projects/tarantool/extra/dist/tarantoolctl

 | Tarantool 2.10.0-beta2-164-g38b28e2ed
 | Target: Linux-x86_64-Debug
 | Build options: cmake . -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BACKTRACE=ON
 | Compiler: /usr/bin/cc /usr/bin/c++
 | C_FLAGS: -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c11 -Wall -Wext
ra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-gnu-alignof-expression -fno-gnu89-inline -Wno-cast-function-t
ype -Werror
 | CXX_FLAGS: -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c++11 -Wall -
Wextra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-invalid-offsetof -Wno-gnu-alignof-expression -Wno-cast-fu
nction-type -Werror


================================================================================
TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------
sql-tap/collation_unicode.test.lua              memtx           [ pass ]
---------------------------------------------------------------------------

================================================================================
TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------
sql-tap/collation.test.lua                      memtx           [ fail ]
Test failed! Output from reject file var/rejects/sql-tap/collation.reject:

Last 15 lines of Tarantool Log file [Instance "app_server"][/home/imun/projects/tarantool/test/var/001_sql-tap/001_sql-tap/collation.t
est.lua:memtx.tarantool.log]:
LuajitError: .../imun/projects/tarantool/test/sql-tap/collation.test.lua:2: module 'sqltester' not found:
        no field package.preload['sqltester']
        no file '/home/imun/projects/tarantool/test/var/001_sql-tap/001_sql-tap/sqltester.lua'
        no file '/home/imun/projects/tarantool/test/var/001_sql-tap/001_sql-tap/sqltester/init.lua'
        no file '/home/imun/projects/tarantool/test/var/001_sql-tap/001_sql-tap/sqltester.so'
        no file '/home/imun/projects/tarantool/test/var/001_sql-tap/001_sql-tap/.rocks/share/tarantool/sqltester.lua'

fatal error, exiting the event loop
Reproduce file /home/imun/projects/tarantool/test/var/reproduce/001_sql-tap.list.yaml

At the same time everything works fine if -j equals to 1 (since there is a separate Tarantool instance being used for each test):

$ ./test-run.py sql-tap/collation -j 1
Started ./test-run.py sql-tap/collation -j 1
Running in parallel with 1 workers

Timeout options:
-------------------
REPLICATION_SYNC_TIMEOUT: 100
TEST_TIMEOUT:             110
NO_OUTPUT_TIMEOUT:        120

Collecting tests in 'app'            (Found 0   tests): application server tests.
Collecting tests in 'app-luatest'    (Found 0   tests): application server tests on luatest.
Collecting tests in 'app-tap'        (Found 0   tests): application server tests (TAP).
Collecting tests in 'box'            (Found 0   tests): Database tests.
Collecting tests in 'box-luatest'    (Found 0   tests): Database tests.
Collecting tests in 'box-py'         (Found 0   tests): legacy python tests.
Collecting tests in 'box-tap'        (Found 0   tests): Database tests with #! using TAP.
Collecting tests in 'engine'         (Found 0   tests): tarantool multiengine tests.
Collecting tests in 'engine-tap'     (Found 0   tests): tarantool multiengine tap tests.
Collecting tests in 'engine_long'    (Found 0   tests): tarantool engine stress tests.
Collecting tests in 'long_run-py'    (Found 0   tests): long running tests.
Collecting tests in 'replication'    (Found 0   tests): tarantool/box, replication.
Collecting tests in 'replication-luatest' (Found 0   tests): replication luatests.
Collecting tests in 'replication-py' (Found 0   tests): tarantool/box, replication.
Collecting tests in 'small'          (Found 0   tests): libsmall unit tests.
Collecting tests in 'sql'            (Found 0   tests): sql tests.
Collecting tests in 'sql-luatest'    (Found 0   tests): SQL tests on luatest.
Collecting tests in 'sql-tap'        (Found 3   tests): Database tests with #! using TAP.
Collecting tests in 'swim'           (Found 0   tests): SWIM tests.
Collecting tests in 'unit'           (Found 0   tests): unit tests.
Collecting tests in 'vinyl'          (Found 0   tests): vinyl integration tests.
Collecting tests in 'vinyl-luatest'  (Found 0   tests): vinyl space engine luatests.
Collecting tests in 'wal_off'        (Found 0   tests): tarantool/box, wal_mode = none.
Collecting tests in 'xlog'           (Found 0   tests): tarantool write ahead log tests.
Collecting tests in 'xlog-py'        (Found 0   tests): legacy python tests.

Tarantool server information
 | Found executable at /home/imun/projects/tarantool/src/tarantool
 | Found tarantoolctl at /home/imun/projects/tarantool/extra/dist/tarantoolctl

 | Tarantool 2.10.0-beta2-164-g38b28e2ed
 | Target: Linux-x86_64-Debug
 | Build options: cmake . -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BACKTRACE=ON
 | Compiler: /usr/bin/cc /usr/bin/c++
 | C_FLAGS: -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c11 -Wall -Wext
ra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-gnu-alignof-expression -fno-gnu89-inline -Wno-cast-function-t
ype -Werror
 | CXX_FLAGS: -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c++11 -Wall -
Wextra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-invalid-offsetof -Wno-gnu-alignof-expression -Wno-cast-fu
nction-type -Werror


======================================================================================
WORKR TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------------
[001] sql-tap/collation_unicode.test.lua              memtx           [ pass ]
[002] sql-tap/collation.test.lua                      memtx           [ pass ]
[002] sql-tap/collation.test.lua                      vinyl           [ pass ]
---------------------------------------------------------------------------------
Top 10 tests by occupied memory (RSS, Mb):
*   76.8 sql-tap/collation.test.lua:vinyl                             
*   74.2 sql-tap/collation_unicode.test.lua:memtx                     
*   72.9 sql-tap/collation.test.lua:memtx                             

(Tests quicker than 0.1 seconds may be missed.)
---------------------------------------------------------------------------------
Top 10 longest tests (seconds):
*   4.51 sql-tap/collation.test.lua:vinyl                             
*   0.21 sql-tap/collation_unicode.test.lua:memtx                     
*   0.14 sql-tap/collation.test.lua:memtx                             
---------------------------------------------------------------------------------
Statistics:
* pass: 3

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions