juicedata/juicefs · error

new session: %s

Error message

new session: %s

What it means

Returned by kvMeta.doNewSession when writing the session key with its expiry timestamp to the KV store fails. The client cannot register its session (needed for sustained inodes and locks), so session setup aborts; the wrapped error comes from the KV client.

Source

Thrown at pkg/meta/tkv.go:648

			atomic.StoreInt64(&m.usedSpace, v)
		} else {
			logger.Warnf("Update space stats: %s", err)
		}
	}
	if inodes := atomic.LoadInt64(&m.newInodes); inodes != 0 {
		if v, err := m.incrCounter(totalInodes, inodes); err == nil {
			atomic.AddInt64(&m.newInodes, -inodes)
			atomic.StoreInt64(&m.usedInodes, v)
		} else {
			logger.Warnf("Update inodes stats: %s", err)
		}
	}
}

func (m *kvMeta) doNewSession(sinfo []byte, update bool) error {
	if !m.getFormat().ChangeLog {
		if err := m.setValue(m.sessionKey(m.sid), m.packInt64(m.expireTime())); err != nil {
			return fmt.Errorf("new session: %s", err)
		}
		if err := m.setValue(m.sessionInfoKey(m.sid), sinfo); err != nil {
			return fmt.Errorf("new session: %s", err)
		}
		return nil
	}
	err := m.txn(Background(), func(tx *kvTxn) error {
		tx.set(m.sessionKey(m.sid), m.packInt64(m.expireTime()))
		tx.set(m.sessionInfoKey(m.sid), sinfo)
		m.genLog(tx, time.Now(), "NEWSESSION(%d,%d,%s)", m.sid, m.expireTime(), logEncode(sinfo))
		return nil
	})
	if err != nil {
		return fmt.Errorf("new session: %s", err)
	}
	return nil
}

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Check KV store health and network connectivity
  2. Retry mounting once transient store issues resolve
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/meta/tkv.go:648 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06). Data as JSON: /api/errors/2f88c4f8783aef98. Report an issue: GitHub.