diff --git a/cmd/ipfs/util/ulimit.go b/cmd/ipfs/util/ulimit.go index 6500d6b7cca..e36ed751036 100644 --- a/cmd/ipfs/util/ulimit.go +++ b/cmd/ipfs/util/ulimit.go @@ -59,7 +59,7 @@ func ManageFdLimit() (changed bool, newLimit uint64, err error) { return false, 0, err } - if maxFds <= soft { + if targetLimit <= soft { return false, 0, nil } diff --git a/cmd/ipfs/util/ulimit_test.go b/cmd/ipfs/util/ulimit_test.go index 2a5923f63fd..0b6a227a576 100644 --- a/cmd/ipfs/util/ulimit_test.go +++ b/cmd/ipfs/util/ulimit_test.go @@ -16,7 +16,7 @@ func TestManageFdLimit(t *testing.T) { t.Errorf("Cannot manage file descriptors") } - if maxFds != uint64(2048) { + if maxFds != uint64(8192) { t.Errorf("Maximum file descriptors default value changed") } } @@ -38,16 +38,15 @@ func TestManageInvalidNFds(t *testing.T) { t.Fatal("Cannot set the IPFS_FD_MAX env variable") } - // call to check and set the maximum file descriptor from the env - setMaxFds() + t.Logf("setting ulimit to %d, max %d, cur %d", value, rlimit.Max, rlimit.Cur) - if _, _, err := ManageFdLimit(); err == nil { - t.Errorf("ManageFdLimit should return an error") + if changed, new, err := ManageFdLimit(); err == nil { + t.Errorf("ManageFdLimit should return an error: changed %t, new: %d", changed, new) } else if err != nil { flag := strings.Contains(err.Error(), - "cannot set rlimit, IPFS_FD_MAX is larger than the hard limit") + "failed to raise ulimit to IPFS_FD_MAX") if !flag { - t.Errorf("ManageFdLimit returned unexpected error") + t.Error("ManageFdLimit returned unexpected error", err) } } @@ -74,11 +73,6 @@ func TestManageFdLimitWithEnvSet(t *testing.T) { t.Fatal("Cannot set the IPFS_FD_MAX env variable") } - setMaxFds() - if maxFds != uint64(value) { - t.Errorf("The maxfds is not set from IPFS_FD_MAX") - } - if _, _, err = ManageFdLimit(); err != nil { t.Errorf("Cannot manage file descriptor count") }