[tarantool-patches] Re: [PATCH] tarantoolctl: return an error on enter to a dead socket.

  • From: Konstantin Osipov <kostja@xxxxxxxxxxxxx>
  • To: tarantool-patches@xxxxxxxxxxxxx
  • Date: Wed, 18 Jul 2018 08:19:53 +0300

* Serge Petrenko <sergepetrenko@xxxxxxxxxxxxx> [18/07/16 15:14]:

Tarantoolctl enter didn't check whether connection to a socket was established
if a socket file existed. It just executed a local console.
Fix this by adding a check and an error, also add a test case.

Closes #3364

 extra/dist/tarantoolctl.in         | 19 ++++++++++++-------
 test/app-tap/tarantoolctl.test.lua | 29 ++++++++++++++++++++++++++++-
 2 files changed, 40 insertions(+), 8 deletions(-)

+    local status, err = pcall(function()
+        test:test("check error codes in case of enter", function(test_i)
+            test_i:plan(6)
+            check_ok(test_i, dir, 'enter', 'script', 1, nil, "Can't connect 
to")
+            check_ok(test_i, dir, 'start', 'script', 0)
+            os.execute(("kill $(cat %s/script.pid)"):format(dir))

I don't understand how this works. Simply sending
SIGTERM to tarantool would should it down gracefully and remove
the socket. If it doesn't, it's a bug. You should use SIGKILL if
you wanted to create a dead socket. But then again why do you need
to start an instance in order to get a dead socket? Can't you make
it simpler and create a dead socket with fio API?

+            check_ok(test_i, dir, 'enter', 'script', 1, nil, "Can't connect 
to")
+            check_ok(test_i, dir, 'stop','script', 0)
+        end)
+    end)

-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov

Other related posts: