Giter VIP home page Giter VIP logo

vellum's People

Contributors

clvrk avatar lastsandwich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vellum's Issues

Backups enabled but no backup showing in path...

Here's my config:

{
  "BdsBinPath": "/home/gameserver/minecraft/bedrock_server",
  "WorldName": "sm_world",
  "Backups": {
    "EnableBackups": true,
    "BackupInterval": 60.0,
    "ArchivePath": "/home/gameserver/minecraft/backups/",
    "BackupsToKeep": 10,
    "OnActivityOnly": false,
    "StopBeforeBackup": false,
    "NotifyBeforeStop": 60,
    "BackupOnStartup": true,
    "PreExec": "",
    "PostExec": ""
  },
  "Renders": {
    "EnableRenders": true,
    "PapyrusBinPath": "/home/gameserver/papyruscs/PapyrusCs",
    "PapyrusOutputPath": "/var/www/html/minecraft/",
    "RenderInterval": 180.0,
    "PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder",
    "PapyrusTasks": [
      "--dim 0",
      "--dim 1",
      "--dim 2"
    ]
  },
  "QuietMode": false,
  "HideStdout": true,
  "BusyCommands": true,
  "CheckForUpdates": true,
  "StopBdsOnException": true
}

It says "backup successful" instantly, and there's no data in said backup folder.

/home/gameserver/minecraft//vellum
vellum v1.2.3 build 157
       by clarkx86 & DeepBlue

Loading configuration "configuration.json"... Done!
Checking for updates...
Creating initial world backup...
[         VELLUM         ] Creating backup...
[         VELLUM         ]      -> Creating full world backup...
[         VELLUM         ] Backup done!
NO LOG FILE! - setting up server logging...
[2020-09-05 23:57:09 INFO] Starting Server
[2020-09-05 23:57:09 INFO] Version 1.16.20.3
[2020-09-05 23:57:09 INFO] Session ID ddca48b5-13da-4ddb-a5b9-33c1cba4622d
[2020-09-05 23:57:09 INFO] Level Name: sm_world
[2020-09-05 23:57:09 INFO] Game mode: 2 Adventure
[2020-09-05 23:57:09 INFO] Difficulty: 1 EASY
[2020-09-05 23:57:09 INFO] opening worlds/sm_world/db
[2020-09-05 23:57:13 INFO] IPv4 supported, port: 19132
[2020-09-05 23:57:13 INFO] IPv6 supported, port: 19133
[2020-09-05 23:57:13 INFO] IPv4 supported, port: 41590
[2020-09-05 23:57:13 INFO] IPv6 supported, port: 57779
[2020-09-05 23:57:18 INFO] Server started.

Here's the server log...

Stopping Bedrock server due to an unhandled exception from vellum...

vellum v1.2.3 build 157
by clarkx86 & DeepBlue

Loading configuration "configuration.json"... Done!
Checking for updates...
Disabling renders because no valid path to a Papyrus executable has been specified
Creating initial world backup...
[ VELLUM ] Creating backup...
[ VELLUM ] -> Clearing local world backup directory...
[ VELLUM ] -> Invalid world directory. Could not create full world backup!
[ VELLUM ] Backup done!
Stopping Bedrock server due to an unhandled exception from vellum...
System.ComponentModel.Win32Exception (2): No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.ProcessManager.Start()
at Vellum.Program.Main(String[] args)
Unhandled exception. System.ComponentModel.Win32Exception (2): No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.ProcessManager.Start()
at Vellum.Program.Main(String[] args)
Aborted (core dumped)

On windows, with 1.16 BDS, hot backups should work right?

However, the executable is terminating with this error:

"NOTICE: Hot-backups are currently not supported on Windows. Please enable "StopBeforeBackup" in the "configuration.json" instead."

There was known bug with 1.14 that prevent Hot-Backups. With 1.16 maybe it got fixed?

Hot buckup?

What is the difference between a backup without a server stop and a backup with With backup from Server stop

NotifyBeforeStop is not working for windows

Hello Clarkx

It seems NotifyBeforeStop is not working since the server is stopped for backup without any warning message. I'm using the Windows build. Furthermore, it seems it affects the following versions:

  • v1.2.2
  • v1.2.1
  • v1.1.0

Configuration I'm using:

{
    "BdsBinPath": "D:\\Minecraft\\bedrock-server-1.16.0.2\\bedrock_server.exe",
    "WorldName": "VouLT_Xande",
    "Backups": {
      "EnableBackups": true,
      "BackupInterval": 30.0,
      "ArchivePath": "D:\\Minecraft\\bedrock-server-1.16.0.2\\backups\\",
      "BackupsToKeep": 10,
      "OnActivityOnly": true,
      "StopBeforeBackup": true,
      "NotifyBeforeStop": 60,
      "BackupOnStartup": true,
      "PreExec": "echo Starting!",
      "PostExec": "echo Success!"
    },
    "Renders": {
      "EnableRenders": false,
      "PapyrusBinPath": "D:\\Minecraft\\bedrock-server-1.16.0.2\\papyrusRender\\",
      "PapyrusOutputPath": "D:\\Minecraft\\bedrock-server-1.16.0.2",
      "RenderInterval": 180.0,
      "PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html --deleteexistingupdatefolder",
      "PapyrusTasks": [
        "--dim 0",
        "--dim 1",
        "--dim 2"
      ]
    },
    "QuietMode": false,
    "HideStdout": true,
    "BusyCommands": true,
    "CheckForUpdates": true,
    "StopBdsOnException": true
  }

Let me know if you need more information.

Backup is not working after 1.20 (ish)

Minecraft has broken the backup mechanism again.

The regex pattern is looking for the string to start with "Changes..."
"^(Changes to the (level|world) are resumed.)"

The problem is that when this message is received, it also has a timestamp now.

The simple fix is to replace the regex pattern with "(Changes to the (level|world) are resumed.)"

Running Vellum in a Docker container

Hello, I'm trying to set up Vellum with the Windows BDS in a Linux container using Wine.

I'm struggling to get Vellum started and I'm wondering if the behaviour of it shutting down after writing config might be responsible. What is the minimum config required to allow Vellum to start and run straight away?

I'm able to start up both BDS and also Element Zero's modified BDS but not Vellum.

Thanks, Chris

Papyrus render error on Windows

Papyrus has a render error in Windows when attempting a force render.

Hot backups are enabled in Windows

force start render
[         VELLUM         ] Creating backup...
[         VELLUM         ]      -> Holding world saving...
No targets matched selector
[         VELLUM         ]      -> Copying 200 files...
[         VELLUM         ]      -> Veryfing file-integrity...
[         VELLUM         ]      -> Resuming world saving...
[         VELLUM         ] Backup done!
[         VELLUM         ] Initializing map rendering...
No targets matched selector
No targets matched selector
[         VELLUM         ]      -> Rendering map 1/3...
Stopping Bedrock server due to an unhandled exception from vellum...
System.ComponentModel.Win32Exception (5): Access is denied.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Vellum.Automation.RenderManager.Start(String worldPath)
   at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
   at Vellum.Program.<>c__DisplayClass16_1.<Main>b__7(String text)
   at Vellum.Program.<>c.<Main>b__16_3()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[2020-08-22 12:03:01 INFO] Server stop requested.
[2020-08-22 12:03:01 INFO] Stopping server...
Quit correctly
Unhandled exception. System.ComponentModel.Win32Exception (5): Access is denied.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Vellum.Automation.RenderManager.Start(String worldPath)
   at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
   at Vellum.Program.<>c__DisplayClass16_1.<Main>b__7(String text)
   at Vellum.Program.<>c.<Main>b__16_3()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

The pertinent part of my vellum config is below

    "EnableRenders": true,
    "PapyrusBinPath": "c:\\bedrock-server-1.16.20.03\\papyruscs",
    "PapyrusOutputPath": "c:\\bedrock-server-1.16.20.03\\papyruscs\\output",
    "RenderInterval": 180.0,
    "PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder",
    "PapyrusTasks": [
      "--dim 0",
      "--dim 1",
      "--dim 2"
    ]
  },

All folders exist in the appropriate locations as well.

Backup & render collision after stopping server

OS: Windows
To reproduce:

  1. StopBeforeBackup = true
  2. BackupInterval = RenderInterval
  3. Let the time run out and it takes the server down
  4. It will show two lines of "[ VELLUM ] -> Clearing local world backup directory", and possibly get stuck there

It seems to be a 50/50 coin flip (based on a very small data set) whether this problem will happen, maybe related to which process makes it there first. Sometimes it will stay there forever, and sometimes it will move on to the expected behavior of creating the full world backup, restarting the server, and running the render.

Program doesn't close all the way using stop command

A very minor issue but it could mess with batch scripts.

OS: Windows
To reproduce:

  1. Execute vellum
  2. Wait for BDS to finish loading
  3. type "stop"
  4. Sticks on "vellum quit correctly" until user hits enter

If you type a command instead of enter, it throws an exception instead.

Can be fixed with one line, but not sure if/how it would affect Linux. See upcoming pull request. #14

Vellum crashes on startup

I'm not sure if this is still being maintained, but I've got an error report. I updated the bedrock server to 1.16.221.01 and when I run vellum, I get this error:

vellum v1.3.1 beta build 212
       by clarkx86, DeepBlue & contributors

Loading configuration "configuration.json"... Done!
Reading "server.properties"... Done!
Checking for updates...
Creating initial temporary copy of world directory...
[         VELLUM         ] Executing pre-command...
[         VELLUM         ] Creating backup...
[         VELLUM         ] 	-> Clearing local world backup directory...	
[         VELLUM         ] 	-> Creating full world backup...	
[         VELLUM         ] Backup done!
Stopping BDS due to an unhandled exception from vellum...
System.ComponentModel.Win32Exception (13): Permission denied
   at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Vellum.Automation.ProcessManager.Start()
   at Vellum.VellumHost..ctor(String[] args)
   at Vellum.VellumHost.Main(String[] args)
Unhandled exception. System.ComponentModel.Win32Exception (13): Permission denied
   at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Vellum.Automation.ProcessManager.Start()
   at Vellum.VellumHost..ctor(String[] args)
   at Vellum.VellumHost.Main(String[] args)

Any idea why?

Scheduled Restart

Hi guys,

Firstly thanks for this project very awesome.

I would like to request a feature I currently backup hourly but would also like to have the server restarted at a particular time of day and a full offline backup taken.

Is it possible to add this feature?

Cheers

System.ArgumentNullException during render Windows

Program Output:

[ VELLUM ] -> Clearing local world backup directory...
[ VELLUM ] -> Creating full world backup...
[ VELLUM ] Backup done!
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'input')
at System.Text.RegularExpressions.Regex.Matches(String input)
at Vellum.Automation.ProcessManager.WaitForMatch(String pattern)
at Vellum.Automation.BackupManager.CreateWorldBackup(String worldPath, String destinationPath, Boolean fullCopy, Boolean archive)
at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
at Vellum.Program.<>c__DisplayClass14_1.

b__3(String text)
at Vellum.Program.<>c.b__14_2()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

Trying to setup a server using this and I'm getting this error while testing this tool.
This happens when running the "force start render" command.

Windows Hot-Backup shows odd localized text in-game

When creating a backup, Vellum will note that it's creating a backup in the game notification Windows, but the text looks like this:

ŵƖ[VELLUM]ŵr

Picture

Running:
v1.2.3 vellum
BDS Windows 1.16.10.2
Windows 10 client

No other 3rd party software.

Add interval backups not subject to "BackupsToKeep"

Depending on the interval and the value that "BackupsToKeep" is set to, you could very well end up with only 6 hours of backups. It'd be nice to have a set schedule (every 6 hours?) for a specified number of Days to keep backups for. Not dissimilar to a daily full and incrementals.

Day
00:00 - Full
15-60m Interval Backups
06:00 - Full
15-60m Interval Backups
12:00 - Full
15-60m Interval Backups
18:00 - Full
15-60m Interval Backups

Week:
Day 1: 00:00 Full
Day 2: 00:00 Full
Day 3: 00:00 Full
Day 4: 00:00 Full
Day 5: 00:00 Full
Day 6: 00:00 Full
Day 7: 00:00 Full
Day 7: Schedule Above

Vellum performing updates when not scheduled

In my configuration.json, I have vellum set to update once a day at 4am. This backup is performed, but a backup at 12noon occurs

Here is my configuration.json:

{
  "BdsBinPath": "bedrock_server",
  "Backups": {
    "EnableBackups": true,
    "EnableSchedule": true,
    "Schedule": [
      "04:00"
    ],
    "BackupInterval": 60.0,
    "ArchivePath": "/home/sam/mcBackup/",
    "BackupsToKeep": 7,
    "OnActivityOnly": true,
    "StopBeforeBackup": true,
    "NotifyBeforeStop": 60,
    "PreExec": "",
    "PostExec": ""
  },
  "Renders": {
    "EnableRenders": false,
    "PapyrusBinPath": "",
    "PapyrusOutputPath": "",
    "RenderInterval": 180.0,
    "PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder",
    "PapyrusTasks": [
      "--dim 0",
      "--dim 1",
      "--dim 2"
    ],
    "LowPriority": false
  },
  "QuietMode": false,
  "HideStdout": true,
  "BusyCommands": true,
  "CheckForUpdates": true,
  "StopBdsOnException": true,
  "BdsWatchdog": true,
  "Plugins": {}
}

and here is what I see in the server console:

[INFO] IPv6 supported, port: 56140
[INFO] Server started.
No targets matched selector
Skipping this backup because no players were online since the last one was taken...
[INFO] Player connected: REDACTED, xuid: REDACTED
[         VELLUM         ] Creating backup...
[INFO] Server stop requested.
[INFO] Stopping server...
Quit correctly
[         VELLUM         ]      -> Clearing local world backup directory...
[         VELLUM         ]      -> Creating full world backup...
[         VELLUM         ]      -> Archiving world backup...
[         VELLUM         ]      -> Archiving done!
[         VELLUM         ] Backup done!
NO LOG FILE! - setting up server logging...
[2020-11-25 12:00:01 INFO] Starting Server
[2020-11-25 12:00:01 INFO] Version 1.16.100.4
[2020-11-25 12:00:01 INFO] Session ID f6280e3c-930a-401f-93c1-39cbda6bd0ae
[2020-11-25 12:00:01 INFO] Level Name: Bedrock-level
[2020-11-25 12:00:01 INFO] Game mode: 0 Survival
[2020-11-25 12:00:01 INFO] Difficulty: 1 EASY
[INFO] opening worlds/Bedrock-level/db
[INFO] IPv4 supported, port: 19132
[INFO] IPv6 supported, port: 19133
[INFO] IPv4 supported, port: 36415
[INFO] IPv6 supported, port: 51828
[INFO] Server started.
[INFO] Player connected: REDACTED, xuid: REDACTED

I am running the server in a screen session on Ubuntu 18.04.

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.