GithubHelp home page GithubHelp logo

torchbackupsystem's People

Contributors

sirhamsteralot avatar splenectomy avatar yannickbus avatar

Stargazers

 avatar  avatar

Watchers

 avatar

torchbackupsystem's Issues

Rare null object crash during init

Only happened once and then the server started seemingly normally. Can probably be prevented though.

Initializer: System.NullReferenceException: Object reference not set to an instance of an object.
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
System.NullReferenceException: Object reference not set to an instance of an object.
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()

FEATURE REQUEST: Compressed and selective backups

Two feature requests for the same use case of saving some disk space so that I can keep more backups of my world:

  1. add a compression option bool to the config
  2. add a regex or filesystem filter for files that I DONT want in my backups
  • Regex Example #1: ^.*sbsB5$ for that binary version of the sbs file which gets regenerated on next server launch
  • Regex Example #2: `^P.*vx2$ for all those random generated surface rock vx2 files

As the world file (SANDBOX_0_0_0_.sbs and Sandbox.sbc) are XML text, just compressing the whole set would be a huge win for my disk space, assuming it can be done outside of the main thread.

If an admin could also selectively filter out unneeded files from the backups, that would let them optimize even further.

Server loading save from backup disk.

I had already noticed that in torch.cfg was directed to the backup hard drive "D".
I may be mistaken, but shouldn't this plugin just generate copies of the saves that are in the torch folder?
Lately, even with the set in the correct location, it is still loaded from the backup hard drive.

Access to file paths denied, causes crash when deleting old backups

Only clue I have is that an admin was spawning asteroids way earlier in the day. IIRC the server restarted once or twice before this. I have the plugin set to keep 24 backups, made hourly, and that's it.

`20:48:31.3958 [FATAL] Initializer: System.UnauthorizedAccessException: Access to the path 'Asteroid_0_1034265778_1328847973.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
System.UnauthorizedAccessException: Access to the path 'Asteroid_0_1034265778_1328847973.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
20:48:31.4028 [INFO] Initializer: Generating minidump at C:\TorchServer\Instance\Minidump.dmp
20:48:31.3958 [FATAL] Initializer: System.UnauthorizedAccessException: Access to the path 'Asteroid_1_12_352_1_2078667503.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
System.UnauthorizedAccessException: Access to the path 'Asteroid_1_12_352_1_2078667503.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
20:48:31.3958 [FATAL] Initializer: System.UnauthorizedAccessException: Access to the path 'Asteroid_20_-3_-28_2_1369434830.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
System.UnauthorizedAccessException: Access to the path 'Asteroid_20_-3_-28_2_1369434830.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
20:48:31.3958 [FATAL] Initializer: System.IO.IOException: The directory is not empty.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
System.IO.IOException: The directory is not empty.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
20:48:31.4188 [INFO] Initializer: Generating minidump at C:\TorchServer\Instance\Minidump.dmp
20:48:31.4188 [INFO] Initializer: Generating minidump at C:\TorchServer\Instance\Minidump.dmp
20:48:31.4028 [INFO] Backup: Configuration Saved.
20:48:33.8448 [ERROR] Keen: System.IO.IOException: The directory is not empty.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
System.IO.IOException: The directory is not empty.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
20:48:31.4028 [INFO] Initializer: Generating minidump at C:\TorchServer\Instance\Minidump.dmp
20:48:33.8588 [ERROR] Keen: System.UnauthorizedAccessException: Access to the path 'Asteroid_1_12_352_1_2078667503.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
System.UnauthorizedAccessException: Access to the path 'Asteroid_1_12_352_1_2078667503.vx2' is denied.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
at TorchBackupSystem.BackupTimer.OnTimerTrigger(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()`

Old Backups are not being deleted

Version: 0.7.1.51

Error being thrown by the plugin

13:04:11.4603 [ERROR] Backup: Exception when deleting old backup. Please check the backup folder and delete old files as needed.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
13:04:11.4603 [INFO] Backup: Configuration Saved.
13:04:11.4935 [ERROR] Backup: Exception when deleting old backup. Please check the backup folder and delete old files as needed.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)
13:04:11.4935 [INFO] Backup: Configuration Saved.
13:04:11.4935 [ERROR] Backup: Exception when deleting old backup. Please check the backup folder and delete old files as needed.
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& data)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at TorchBackupSystem.BackupTimer.RunBackup(Object state)

Nothing serious, just a spelling mistake on console print

Comressing is missing a p, to become "Compressing"

03:37:09.0732 [INFO] TorchBackup-Timer: Deleting C:\SOLAR TWINS\111.BACKUPS\THANATOS\10MIN\EVERY10MIN_20221009023706.zip
03:37:09.0732 [INFO] Backup: Configuration Saved.
03:37:09.0972 [INFO] TorchBackup-Serializer: Backing up to C:\SOLAR TWINS\111.BACKUPS\THANATOS\10MIN\EVERY10MIN_20221009033709
03:37:10.4049 [INFO] TorchBackup-Serializer: Backing up complete
03:37:10.4049 [INFO] TorchBackup-FileUtility: Comressing 23 files in C:\SOLAR TWINS\111.BACKUPS\THANATOS\10MIN\EVERY10MIN_20221009033709

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.