Log if client hangs up while waiting for unix volume Serialize lock.
authorTom Clegg <tclegg@veritasgenetics.com>
Fri, 10 May 2019 20:36:39 +0000 (16:36 -0400)
committerTom Clegg <tclegg@veritasgenetics.com>
Fri, 10 May 2019 20:36:39 +0000 (16:36 -0400)
No issue #

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

services/keepstore/unix_volume.go

index c5d7192619773c0bd4e03424c68bfe229b51d553..4d9e798ac67c71c2a81f51abeb2128b340a6cda6 100644 (file)
@@ -679,6 +679,7 @@ func (v *UnixVolume) lock(ctx context.Context) error {
        if v.locker == nil {
                return nil
        }
+       t0 := time.Now()
        locked := make(chan struct{})
        go func() {
                v.locker.Lock()
@@ -686,6 +687,7 @@ func (v *UnixVolume) lock(ctx context.Context) error {
        }()
        select {
        case <-ctx.Done():
+               log.Printf("%s: client hung up while waiting for Serialize lock (%s)", v, time.Since(t0))
                go func() {
                        <-locked
                        v.locker.Unlock()