{"record":{"id":"6cbf9ccc5415ff5f","repo":"juicedata/juicefs","slug":"failed-to-clean-up-sid-d-6cbf9c","errorCode":null,"errorMessage":"failed to clean up sid %d","messagePattern":"failed to clean up sid (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/meta/tkv.go","lineNumber":752,"sourceCode":"\t\tlogger.Warnf(\"Scan plock with sid %d: %s\", sid, err)\n\t\tfail = true\n\t}\n\n\tif keys, err := m.scanKeys(ctx, m.fmtKey(\"SS\", sid)); err == nil {\n\t\tfor _, key := range keys {\n\t\t\tinode := m.decodeInode(key[10:]) // \"SS\" + sid\n\t\t\tif err = m.doDeleteSustainedInode(sid, inode); err != nil {\n\t\t\t\tlogger.Warnf(\"Delete sustained inode %d of sid %d: %s\", inode, sid, err)\n\t\t\t\tfail = true\n\t\t\t}\n\t\t}\n\t} else {\n\t\tlogger.Warnf(\"Scan sustained with sid %d: %s\", sid, err)\n\t\tfail = true\n\t}\n\n\tif fail {\n\t\treturn fmt.Errorf(\"failed to clean up sid %d\", sid)\n\t} else {\n\t\tif !m.getFormat().ChangeLog {\n\t\t\treturn m.deleteKeys(m.sessionKey(sid), m.legacySessionKey(sid), m.sessionInfoKey(sid))\n\t\t}\n\t\treturn m.txn(ctx, func(tx *kvTxn) error {\n\t\t\ttx.delete(m.sessionKey(sid))\n\t\t\ttx.delete(m.legacySessionKey(sid))\n\t\t\ttx.delete(m.sessionInfoKey(sid))\n\t\t\tm.genLog(tx, time.Now(), \"CLEANSESSION(%d)\", sid)\n\t\t\treturn nil\n\t\t})\n\t}\n}\n\nfunc (m *kvMeta) doFindStaleSessions(limit int) ([]uint64, error) {\n\tctx := Background()\n\tvals, err := m.scanValues(ctx, m.fmtKey(\"SE\"), limit, func(k, v []byte) bool {\n\t\treturn m.parseInt64(v) < time.Now().Unix()","sourceCodeStart":734,"sourceCodeEnd":770,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/pkg/meta/tkv.go#L734-L770","documentation":"Returned by kvMeta cleanup when one or more cleanup steps for a stale session failed (locks, sustained inodes); individual failures are logged as warnings and this aggregate error signals the session was not fully reaped and cleanup should be retried later.","triggerScenarios":"Thrown at pkg/meta/tkv.go:752 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry later; the next cleanup pass will re-attempt the failed steps","Address the logged per-key failures (KV store errors) if persistent"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c9a67b23e8e08ec23ec331aa6f1675e2319e921c","analyzedAt":"2026-09-06T17:55:48.476Z","contentChangedAt":"2026-09-06T17:55:48.476Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}