backup: correct the target_not_empty rule, the store root ancestor rule and a remove-target pointer

Abierto Apto para principiantes
#942 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 5 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust

Línea de trabajo

Lee las secciones citadas en docs/manuals/05-admin-guide.md y docs/manuals/14-backup-and-restore.md y compáralas con las reglas identificadas en crates/engine/src/backup/reconciler.rs, crates/engine/src/backup/maintenance.rs, crates/app/src/cmd_backup.rs, crates/backup-store/src/fs.rs y crates/server/src/backup_store.rs. Actualiza las indicaciones inexactas sobre la restauración, los permisos de directorio y la eliminación del destino; el trabajo estará terminado cuando los manuales y el texto del módulo coincidan con el comportamiento descrito del código y remitan a la sección [backup.store] de la guía de administración.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

documentation

Some backup texts on main state rules that the code does not follow. #897 makes the same corrections in the upgrade manual.

When a restore fails as target_not_empty

The reconciler fails a store-backed restore with no recorded progress as target_not_empty only when the target holds more items than the backup's item_count (exceeds_backup_total in crates/engine/src/backup/reconciler.rs). At or below that count, the takeover arm resumes the restore and applies the first data file again. While a backup command holds the maintenance claim, the reconciler fails such a restore as OWNER_DEAD and removes its target.

These texts say otherwise:

  • crates/engine/src/backup/maintenance.rs, module doc, lines 39 to 43: on MongoDB and Cassandra, a crash before the first progress record ends in target_not_empty.
  • crates/app/src/cmd_backup.rs, module doc, lines 118 to 121: the same claim.
  • crates/app/src/cmd_backup.rs lines 76 to 78: a record with no recorded progress over a target that holds items fails as target_not_empty. The code requires more items than the backup holds.
  • crates/engine/src/backup/reconciler.rs lines 71 to 74 and 822 to 824: the same statement.
The directories above a filesystem root

crates/backup-store/src/fs.rs refuses an ancestor directory that group or others can write to, unless the directory carries the sticky bit. These texts name only others and leave out the sticky bit:

  • docs/manuals/05-admin-guide.md line 168: "sit under directories owned by root or that user which others cannot write to".
  • The default-root warning in crates/server/src/backup_store.rs (warn_default_root_unusable): "under directories owned by root or this user that others cannot write to".

docs/manuals/14-backup-and-restore.md states the rule as the code applies it.

The remove-target pointer

docs/manuals/14-backup-and-restore.md lines 479 and 480 send the reader to "the admin guide's backup section" for extenddb backup remove-target. The admin guide has no such section. It describes the command in its [backup.store] section.

Lenguaje dominante
Rust
Estrellas
517
Forks
60
Merge medio
5 d 21 h
PR fusionados (30 d)
110

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ExtendDB/extenddb

Todos los issues de ExtendDB/extenddb

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.