dgraph-io/dgraph · error
from processKVList
Error message
from processKVList
What it means
RunMapper fans out manifest processing to worker goroutines via processKVList; after closing reqCh it waits on the errgroup. If any worker failed, this wrapper propagates that error with the 'from processKVList' context.
Source
Thrown at worker/restore_map.go:900
}
// If there is a drop namespace, we just ban the namespace in the pstore.
ns, err := strconv.ParseUint(op.DropValue, 0, 64)
if err != nil {
return nil, errors.Wrapf(err, "Map phase failed to parse namespace")
}
if err := pstore.BanNamespace(ns); err != nil {
return nil, errors.Wrapf(err, "Map phase failed to ban namespace: %d", ns)
}
maxBannedNs = x.Max(maxBannedNs, ns)
}
}
glog.Infof("[MAP] Processed manifest num: %v", manifest.BackupNum)
} // done with all the manifests.
glog.Infof("Histogram of map input sizes:\n%s\n", mapper.szHist)
close(mapper.reqCh)
if err := g.Wait(); err != nil {
return nil, errors.Wrapf(err, "from processKVList")
}
if err := mapper.Flush(); err != nil {
return nil, errors.Wrap(err, "failed to flush the mapper")
}
mapRes := &mapResult{
maxUid: mapper.maxUid,
maxNs: mapper.maxNs,
shouldDropAll: dropAll,
dropAttr: dropAttr,
dropNs: dropNs,
}
// update the maxNsId considering banned namespaces.
mapRes.maxNs = x.Max(mapRes.maxNs, maxBannedNs)
return mapRes, nil
}
View on GitHub (pinned to 759e242be6)
Solutions
- Look at the wrapped root-cause error in the message chain to find the actual failing KV processing step
- Validate the backup manifest and data files before restoring
- Re-run the restore; transient IO failures may not recur
- Reduce mapper concurrency if resource exhaustion is the root cause
Defensive patterns
Strategy: try-catch
Validate before calling
if err := validateBackupManifest(manifests); err != nil { return fmt.Errorf("invalid backup: %w", err) } Try / catch
res, err := RunMapper(ctx, opts)
if err != nil {
// unwrap errgroup error chain to the real cause
cause := errors.Cause(err)
glog.Errorf("map phase failed, cause: %v", cause)
return cause
} Prevention
- Validate backup integrity (manifests and data) before restore
- Always inspect the full wrapped error chain, not just the wrapper message
- Keep mapper concurrency within machine resource limits
When it happens
Trigger: Any goroutine in the errgroup (processing KV lists from the backup manifests) returns an error, e.g. malformed KVs, decode failures, or downstream map-phase errors like the namespace-ban failure.
Common situations: Restoring a corrupted or truncated backup; concurrency/timeout failures while reading posting lists during map phase; an earlier wrapped error (e.g. error 960) surfacing here.
Related errors
- mapper.Map
- %s
- backupNum value should be equal or greater than zero
- not enough JWKUrls
- cannot start backup operation
AI-assisted analysis of dgraph-io/dgraph@759e242be6 (2026-09-01).
Data as JSON: /api/errors/9d7205873abaedc2.
Report an issue: GitHub.