|
|
@@ -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 {
|