From c52e1abc5869dd27a28f71ff43ec4e1c1917acf4 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Wed, 3 May 2017 23:46:52 +0200 Subject: [PATCH] fusefrontend: log "too many open files" errors This usually indicates that the open file limit for gocryptfs is too low. We should report this to the user. --- internal/fusefrontend/fs.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/fusefrontend/fs.go b/internal/fusefrontend/fs.go index 5e5157c..c589302 100644 --- a/internal/fusefrontend/fs.go +++ b/internal/fusefrontend/fs.go @@ -108,6 +108,12 @@ func (fs *FS) Open(path string, flags uint32, context *fuse.Context) (fuseFile n tlog.Debug.Printf("Open: %s", cPath) f, err := os.OpenFile(cPath, newFlags, 0666) if err != nil { + err2 := err.(*os.PathError) + if err2.Err == syscall.EMFILE { + var lim syscall.Rlimit + syscall.Getrlimit(syscall.RLIMIT_NOFILE, &lim) + tlog.Warn.Printf("Open %q: too many open files. Current \"ulimit -n\": %d", cPath, lim.Cur) + } return nil, fuse.ToStatus(err) }