Прерванный экспорт поверх существующего файла уничтожает старую резервную копию
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 54/100
Línea de trabajo
Start with SettingsViewModel.ExportBackup in SettingsViewModel.Backup.cs (lines 67–81) and inspect how the destination stream is opened and written. Check the backup export tests and the fake storage stream behavior, if present. Done means an interrupted overwrite leaves the previous backup readable, while providers without safe replacement offer saving to a new file.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Приоритет P1 · milestone 0.4.1
После подтверждения замены файла экспорт может оставить пустую или неполную копию, если запись прервётся после открытия файла. Пользователь теряет предыдущую рабочую резервную копию.
Воспроизведение с фейковым хранилищем
- Сохранить корректную
.bydlobackup. - Экспортировать новую копию в тот же файл с подтверждением перезаписи.
- Подменить поток сохранения на поток, который успешно выполняет
SetLength(0), а на записи выбрасываетIOException. Такой порядок соответствует сбою диска или облачного провайдера при записи. - Команда покажет ошибку. Предыдущий файл уже обрезан и не проходит проверку при импорте.
Причина и доказательство: SettingsViewModel.ExportBackup (SettingsViewModel.Backup.cs:67–81) напрямую обнуляет целевой поток и записывает туда результат. Обработчик ошибки показывает сообщение без восстановления старых байтов. Подтверждено порядком операций, на пользовательских файлах сбои не симулировались.
Ожидаемо: предыдущий файл остаётся читаемым до полного завершения экспорта новой копии.
Направление исправления: для локального файла записывать и сбрасывать зашифрованный временный файл в той же папке, затем атомарно заменять назначение. Для провайдеров без безопасной замены предложить сохранить новый файл.
Аудит ffa65648867139f9e45c15f4b635a83c1ff52c1b.
- Lenguaje dominante
- C#
- Estrellas
- 5
- Forks
- 1
- Merge medio
- 30 min
- PR fusionados (30 d)
- 171
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de endercodezz/BYDLO
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
endercodezz/BYDLO#396 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
endercodezz/BYDLO#395 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
endercodezz/BYDLO#394 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 48/100
endercodezz/BYDLO#393 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
endercodezz/BYDLO#392 ·
Los mantenedores suelen responder en 1 día
Todos los issues de endercodezz/BYDLO
Issues similares
-
needs attention untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet#3666 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
stryker-mutator/stryker-net#3974 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
JiaFeiMiao-K-Cat/DiscImageStudio#171 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
DDOS VulnerbilityAbiertoS: Untriaged
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
DeltaV-Station/Delta-v#6711 ·
Los mantenedores suelen responder en 1 día