Commit b1be794
committed
fix(decomposedfs): tolerate a space root with an unset name attribute
ReadNode failed with an internal error when a space root had no
user.oc.name attribute, which happens for a half-deleted user space
(its node lingers while the name attribute is already gone). Reading
the name with XattrString returned the ENODATA error and the whole
ReadNode aborted with gRPC code 15. The search service's tree walk
stats every space root through this path, so one such node aborted the
entire space index and logged "error while indexing a space" on every
run; any other ReadNode caller hit the same hard failure.
Swallow the unset-name case the same way the owner lookup just above
already swallows a missing attribute: match metadata.IsAttrUnset and
keep the empty name instead of failing the read. Any other read error
keeps its existing behaviour, so a genuine read failure is not hidden.
Related: opencloud-eu/opencloud#18781 parent 3d1ff52 commit b1be794
2 files changed
Lines changed: 20 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
423 | 423 | | |
424 | 424 | | |
425 | 425 | | |
426 | | - | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
427 | 430 | | |
428 | 431 | | |
429 | 432 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| |||
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
84 | 100 | | |
85 | 101 | | |
86 | 102 | | |
| |||
0 commit comments