Skip to content

URI length is checked instead of unix socket path length #341

@ImeevMA

Description

@ImeevMA

For example we have test app-luatest/example_test.lua on Tarantool-Enterprise:

local server = require('luatest.server')
local t = require('luatest')

local g = t.group()

g.test_too_long_uri = function()
    local net_box_uri = "guest@unix/:/tmp/temp?transport=ssl&" ..
                        "ssl_cert_file=/home/mergen/work/ee/test/enterprise-luatest/ssl_cert/client.crt&" ..
                        "ssl_key_file=/home/mergen/work/ee/test/enterprise-luatest/ssl_cert/client.key"
    t.assert_equals(#net_box_uri, 192)
    g.server = server:new{
        alias = 'master',
        net_box_uri = net_box_uri,
    }
    g.server:start()
    g.server:drop()
end

When we run it, we will get an error:

======================================================================================
WORKR TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------------
[001] app-luatest/example_test.lua                                    [ fail ]
[001] Test failed! Output from reject file /tmp/t/rejects/app-luatest/example.reject:
[001] Tarantool version is 3.0.0-beta1-53-g59b817ef8
[001] TAP version 13
[001] 1..1
[001] # Started on Tue Dec 12 14:40:48 2023
[001] # Starting group: app-luatest.example
[001] not ok 1	app-luatest.example.test_too_long_uri
[001] #   .../mergen/work/dev/test-run/lib/luatest/luatest/server.lua:165: Net box URI must be <= max Unix domain socket path length (107 chars)
[001] #   stack traceback:
[001] #   	/home/mergen/work/dev/test/app-luatest/example_test.lua:11: in function 'app-luatest.example.test_too_long_uri'
[001] #   	...
[001] #   	[C]: in function 'xpcall'
[001] # Ran 1 tests in 0.003 seconds, 0 succeeded, 1 errored
[001] 
[001] [test-run server "luatest_server"] The log file /tmp/t/001_app-luatest/example_test.log has zero size
[Main process] Got failed test; gently terminate all workers...
[001] Worker "001_app-luatest" got failed test; stopping the server...
---------------------------------------------------------------------------------

The Unix socket path here is /tmp/temp and its length is 9.

Fixing this issue will avoid updating box.cfg.listen after server startup if we are using SSL, and instead start the server with the correct box.cfg.listen with SSL. In particular, this allows PR tarantool/tarantool#9385 to be properly tested.

Metadata

Metadata

Assignees

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