diff --git a/transport/internet/domainsocket/listener.go b/transport/internet/domainsocket/listener.go index 2c7b48a2..683c0b77 100644 --- a/transport/internet/domainsocket/listener.go +++ b/transport/internet/domainsocket/listener.go @@ -77,7 +77,9 @@ func (ls *Listener) LowerUP() error { } return err } - + + //If the unix domain socket is filesystem based, an file lock must be used to claim the right for listening on respective file. + //https://gavv.github.io/blog/unix-socket-reuse/ if isUnixDomainSocketFileSystemBased(ls.path) && !___DEBUG_IGNORE_FLOCK { ls.lockfile, err = acquireLock(ls.path + ".lock") if err != nil { @@ -136,6 +138,7 @@ func (ls *Listener) uploop(cctx context.Context) { if err != nil { newError("Cannot Accept socket from listener").Base(err).AtDebug().WriteToLog() + //Guard against too many open file error if err == lasterror { errortolerance-- if errortolerance == 0 {