juicedata/juicefs · error
only %d records inserted
Error message
only %d records inserted
What it means
Returned by LoadMeta's insert helper when a batch insert reports fewer inserted rows than the number of beans submitted without an SQL error. It detects silent partial inserts, which would leave the loaded metadata incomplete.
Source
Thrown at pkg/meta/sql.go:5257
return err
}
if err := m.syncAllTables(); err != nil {
return err
}
batch := m.getTxnBatchNum()
chs := make([]chan interface{}, 6) // node, edge, chunk, chunkRef, xattr, others
insert := func(index int, beans []interface{}) error {
return m.txn(func(s *xorm.Session) error {
var n int64
var err error
if index == len(chs)-1 { // multiple tables
n, err = s.Insert(beans...)
} else { // one table only
n, err = s.Insert(beans)
}
if err == nil && int(n) != len(beans) {
err = fmt.Errorf("only %d records inserted", n)
}
return err
})
}
var wg sync.WaitGroup
for i := range chs {
chs[i] = make(chan interface{}, batch*2)
wg.Add(1)
go func(i int) {
defer wg.Done()
buffer := make([]interface{}, 0, batch)
for bean := range chs[i] {
buffer = append(buffer, bean)
if len(buffer) >= batch {
if err := insert(i, buffer); err != nil {
logger.Fatalf("Write %d beans in channel %d: %s", len(buffer), i, err)
}
buffer = buffer[:0]View on GitHub (pinned to c9a67b23e8)
Solutions
- Retry the load into a clean empty database
- Check DB logs for trigger/timeout behavior causing partial inserts
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at pkg/meta/sql.go:5257 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/a1c8ef26ffa5c3ca.
Report an issue: GitHub.