From a44f0d251fc45e16f40c6f0fc3f622fd830fe701 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 3 Apr 2019 15:38:13 -0700 Subject: [PATCH] make sure to close the repo if we fail to properly start the daemon License: MIT Signed-off-by: Steven Allen --- cmd/ipfs/daemon.go | 4 ++++ test/sharness/t0060-daemon.sh | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/cmd/ipfs/daemon.go b/cmd/ipfs/daemon.go index aa8818722..4d2d57df3 100644 --- a/cmd/ipfs/daemon.go +++ b/cmd/ipfs/daemon.go @@ -278,6 +278,10 @@ func daemonFunc(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment break } + // The node will also close the repo but there are many places we could + // fail before we get to that. It can't hurt to close it twice. + defer repo.Close() + cfg, err := cctx.GetConfig() if err != nil { return err diff --git a/test/sharness/t0060-daemon.sh b/test/sharness/t0060-daemon.sh index 3a5910891..a488bf817 100755 --- a/test/sharness/t0060-daemon.sh +++ b/test/sharness/t0060-daemon.sh @@ -128,6 +128,11 @@ test_expect_success "daemon with pipe eventually becomes live" ' test_fsh cat stdin_daemon_out || test_fsh cat stdin_daemon_err || test_fsh cat stdin_poll_apiout || test_fsh cat stdin_poll_apierr ' +test_expect_success "'ipfs daemon' cleans up when it fails to start" ' + test_must_fail ipfs daemon --routing=foobar && + test ! -e "$IPFS_PATH/repo.lock" +' + ulimit -S -n 512 TEST_ULIMIT_PRESET=1 test_launch_ipfs_daemon