Project

General

Profile

Actions

Defect/Bug #256

closed

Mark2

Added by Slind almost 9 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Administrator
Category:
Server Administration
Start date:
2015-12-13
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Resolution:
Fixed/Completed

Description

The development of mark2 was continued by gsand. Thanks to xfel for the update. Time to test it and if it works fine to switch as it is maintained and the code structure a lot better than rtk. :)
https://github.com/gsand/mark2
https://github.com/MineYourMind/mark2

Issues and concerns:
  • no hold/unhold feature implemented by Xfel
  • page up/down slow and only a few rows not real pages (press a hundred times to get to the server start up)
  • start a server in the background from command line (you need to wait till it started up fully else you kill it) mark2 start -i <dir>
  • console color support behaves odd (on startup it works, later on it doesn't) seems to have fixed with the console parsing support for spigot < 1.8
  • scripts and properties not reloading on ~restart and no ~reload command ~reload | ~reload-plugin -> but doesn't reload built-in services
  • console content is not mark/copy-able, pasting doesn't work either You can select text while holding shift or ALT+CMD on Mac. However, this will also select the side parts.
  • mark2 commands in attached mode are prefixed a "~" which causes issues when used in screen/tmux, is difficult to use on mobile devices, unknown keyboard layouts "." alias implemented
  • console parsing doesn't work with other server version than latest spigot. Tested with hubris and the 1.6 hub, can't reproduce.
  • send command/event to all running servers
    for f in `mark2 list`; do mark2 send -n $f $yourcommand; done
    
  • same for start
    cd ~/production; for f in `ls -1`; do mark2 start -i $f;  done 
    
  • disable gui (pure console stream + input): hotkey, attach param.. (especially for the use with small screens and copying multiple lines) https://i.imgur.com/z2E1JEK.png
  • mark2 instance exiting when server is initiating shutdown including spigot watchdog kill (server freeze) [1]
  • not detecting crash/freeze if the console thread isn't shutting down [2]
  • console output is doubled, tripled.. quite often
  • compatible issue with warmroast - http://i.imgur.com/6Wsegnn.png what is what? --pid arg exist. pid discovery with ps aux | grep <servername> or the script created by xfel on charlie ~/tools/
  • scheduler based on system time issue. Causes the server to restart within minutes if it just crashed and the system load is extreme when all restart at the same time @serverstarted ~restart 6h;10m;5m;2m;30s
  • mark2 log is overwritten with mark2 start instead of being continued causing wholes in the logs
Nice to have:
  • username (top right) based on environment variable (set on ssh login based on key)
  • server uptime in stats
  • tps in stats (probably not be possible)
  • highlight selected server (e.g. different background color)
  • list upcoming scheduler events instead of players (e.g. 5:12 /backup, 12:55 ~restart)

[1] http://pastebin.com/BXyka2je http://pastebin.com/cAgmZZWp
[2] http://pastebin.com/U30vsqwJ


Subtasks 2 (0 open2 closed)

Defect/Bug #531: mark2 hold command with countdownClosedXfel112015-12-13

Actions
Defect/Bug #537: mark2 .cancel commandClosedXfel112015-12-21

Actions
Actions #1

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #2

Updated by Slind almost 9 years ago

  • Status changed from New to In Progress

in use on charlie for 1.8 vanilla servers.

Actions #3

Updated by Slind almost 9 years ago

all config options fully setup and designed hierarchical so we have a global config and the server overwrites what needs to be overwritten. Also tested cron like scheduler with basic tasks like restart. Everything fine so far.

The things I don't like so far:
  • no hold/unhold feature
  • page up/down slow and only a few rows not real pages (press a hundred times to get to the server start up), no jump to the startup line
  • haven't found a way (without workaround) to start a server in the background (you need to wait till it started up fully else you kill it)
  • console color support behaves odd (on startup it works, later on it doesn't)
  • scripts and properties not reloading on ~restart and no ~reload command ~reload | ~reload-plugin -> but doesn't reload built-in services
Actions #4

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #5

Updated by Slind almost 9 years ago

added command prefix alias (you can use . instead of ~)

Actions #6

Updated by Xfel11 almost 9 years ago

Added hold/unhold feature

Actions #7

Updated by Slind almost 9 years ago

  • moved to ~/mark2 (global config at ~/.config/mark2/ and per server configs at ~/<serverName>/mark2.properties)

Does only work with spigot 1.8.x servers so far. The encoding of the console doesn't work properly with spigot 1.6, cauldron 1.6, mcpc 1.6, cauldron 1.7 and 1.7 spigot.

1.7 spigot, not working: https://i.imgur.com/2IvKPq5.png
1.8 spigot, working: https://i.imgur.com/W9Z9FJN.png

https://github.com/gsand/mark2/blob/01df211ffb6df37e54e7e725566a53a86653bcfb/mk2/events/server.py#L27

On spigot 1.7 it is throwing this exception, too. https://i.imgur.com/WHBFIHa.png

One issue I ran into is that you can't mark/copy text from the console, therefor the only way to show this is with screenshots.

Actions #8

Updated by Slind almost 9 years ago

About last performance. It's a bit better than rtk but not much:
https://i.imgur.com/kkA7pvY.png and being off a minute after 3 minutes of console spam with around 60-120 rows per second. At least it isn't timing out.
Another issue I encountered. I can't seem to kill or stop a single server outside of mark2. The command "mark2 stop testserver" did shutdown all of them and "mark2 kill testserver", too. The console is not responding during console spam.

A good thing is that the heavy performance impact is only there while the session is attached. As soon as detached python/mark2 goes towards 2-10%.

Actions #9

Updated by Slind almost 9 years ago

spigot 1.8 console just broke too: https://i.imgur.com/beD3oIA.png

restarting a server doesn't work after a spam session: https://i.imgur.com/FtqDqMt.png after this nothing happens on mark2, but the server is starting up according to the server log.

Actions #10

Updated by Slind almost 9 years ago

mark2 stop sometimes throws:

2015-07-20 03:47:35 # An event handler threw an exception:
2015-07-20 03:47:35 #   Callback: <bound method EventDispatcher.dispatch of <mk2.events.EventDispatcher instance at 0x3452320>>
2015-07-20 03:47:35 #   Event:
2015-07-20 03:47:35 #     class_name: ServerOutput
2015-07-20 03:47:35 #     line: [03:47:34 INFO]: [PlotMe] Disabling PlotMe v0.16.3
2015-07-20 03:47:35 #     time: 2015-07-20 03:47:34
2015-07-20 03:47:35 #     data: [PlotMe] Disabling PlotMe v0.16.3
2015-07-20 03:47:35 #     level: INFO
2015-07-20 03:47:35 #   Traceback (most recent call last):
2015-07-20 03:47:35 #     File "/home/mcgameserver/mark2/mk2/events/__init__.py", line 238, in dispatch
2015-07-20 03:47:35 #       d = self._next_event(event, event_list)
2015-07-20 03:47:35 #     File "/home/mcgameserver/mark2/mk2/events/__init__.py", line 222, in _next_event
2015-07-20 03:47:35 #       r.addCallback(self._done_event, event, id_, iter_)
2015-07-20 03:47:35 #     File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 304, in addCallback
2015-07-20 03:47:35 #       callbackKeywords=kw)
2015-07-20 03:47:35 #     File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 293, in addCallbacks
2015-07-20 03:47:35 #       self._runCallbacks()
2015-07-20 03:47:35 #   --- <exception caught here> ---
2015-07-20 03:47:35 #     File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 575, in _runCallbacks
2015-07-20 03:47:35 #       current.result = callback(current.result, *args, **kw)
2015-07-20 03:47:35 #     File "/home/mcgameserver/mark2/mk2/events/__init__.py", line 234, in _done_event
2015-07-20 03:47:35 #       return self._next_event(event, iter_, True)
2015-07-20 03:47:35 #     File "/home/mcgameserver/mark2/mk2/events/__init__.py", line 216, in _next_event
2015-07-20 03:47:35 #       if event.prefilter(**args):
2015-07-20 03:47:35 #     File "/home/mcgameserver/mark2/mk2/events/server.py", line 43, in prefilter
2015-07-20 03:47:35 #       m = re.match(pattern, self.data.strip())
2015-07-20 03:47:35 #     File "/usr/lib/python2.7/re.py", line 137, in match
2015-07-20 03:47:35 #       return _compile(pattern, flags).match(string)
2015-07-20 03:47:35 #     File "/usr/lib/python2.7/re.py", line 242, in _compile
2015-07-20 03:47:35 #       raise error, v # invalid expression
2015-07-20 03:47:35 #   sre_constants.error: nothing to repeat
2015-07-20 03:47:35 #
          Callback: <bound method EventDispatcher.dispatch of <mk2.events.EventDispatcher instance at 0x3452320>>
          Event:
            class_name: ServerOutput
            line: [03:47:34 INFO]: [Vault] Disabling Vault v1.5.3-b37
            time: 2015-07-20 03:47:34
            data: [Vault] Disabling Vault v1.5.3-b37
            level: INFO

Actions #11

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #12

Updated by Xfel11 almost 9 years ago

  • Description updated (diff)

The problem with the console parsing seems to have fixed itself. Also, I fixed that exception which was caused by an invalid regex in the global config.

Actions #13

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #14

Updated by Slind almost 9 years ago

all servers on charlie are now behind mark2 instead of rtk

Actions #15

Updated by Xfel11 almost 9 years ago

  • Description updated (diff)

Updated and fixed this.

Actions #16

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #17

Updated by Xfel11 almost 9 years ago

  • Description updated (diff)
Actions #18

Updated by Slind almost 9 years ago

deployed on all servers only thing missing is bungeecord.

Actions #19

Updated by Slind almost 9 years ago

  • Estimated time changed from 5.00 h to 20.00 h
  • % Done changed from 0 to 80
Actions #20

Updated by Slind almost 9 years ago

  • Description updated (diff)
  • mark2 instance exiting when server is initiating shutdown [1]
  • not detecting crash/freeze if the console thread isn't shutting down [2]

[1] http://pastebin.com/BXyka2je
[2] http://pastebin.com/U30vsqwJ

Actions #21

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #22

Updated by Slind almost 9 years ago

  • Description updated (diff)
  • console output is doubled, tripled.. quite often
Actions #23

Updated by SirWill almost 9 years ago

  • Description updated (diff)
Actions #24

Updated by Xfel11 almost 9 years ago

We might be able to write a compability skript for warmroast. We'd need to find the server's PID (which is printed when the server starts) and use the --pid parameter. Maybe we can optimize it.

Actions #25

Updated by Slind almost 9 years ago

  • Description updated (diff)
  • scheduler based on system time issue. Causes the server to restart within minutes if it just crashed and the system load is extreme when all restart at the same time
Actions #26

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #27

Updated by Slind almost 9 years ago

  • Estimated time changed from 20.00 h to 30.00 h
  • Description updated (diff)
Actions #28

Updated by Slind almost 9 years ago

  • Description updated (diff)
Actions #29

Updated by Slind over 8 years ago

  • Description updated (diff)
Actions #30

Updated by Slind over 8 years ago

  • Description updated (diff)
Actions #31

Updated by Slind over 8 years ago

  • Description updated (diff)

added start all command

Actions #32

Updated by Slind over 8 years ago

  • Description updated (diff)
Actions #33

Updated by SirWill over 3 years ago

  • Resolution set to Fixed/Completed
  • Status changed from In Progress to Closed
Actions

Also available in: Atom PDF