Commit Graph

1492 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer
2659864765 contrib: add sysv init script by Daniel Hermann 2016-08-09 09:37:10 +02:00
Thomas Schoebel-Theuer
bb6b65a002 userspace: add basic systemd unit
First try. May need some improvements in future.
2016-08-09 09:37:10 +02:00
Thomas Schoebel-Theuer
838c98ca6d marsadm: systemantically missing macros *-logcount 2016-08-09 09:37:10 +02:00
Thomas Schoebel-Theuer
d09cc8e218 marsadm: fix {replay,fetch,work}-lognr and replay-basenr
These were forgotten to export, and they were not systematic.
2016-08-09 09:37:10 +02:00
Thomas Schoebel-Theuer
474d7d0a05 marsadm: fix wrong lognr result in corner case 2016-08-09 09:37:10 +02:00
Thomas Schoebel-Theuer
6559c534be marsadm: directly switch back to former primary
Use the new knowledge about old primary.

This is only relevant for people who are consistently ignoring
mars-manual.pdf which clearly states that intermediate
"marsadm secondary" should not be used at all, except for the
last step in final destruction of a resource.
2016-08-09 09:37:10 +02:00
Thomas Schoebel-Theuer
79a1d20c69 marsadm: fix annoying perl warning 2016-08-09 09:37:10 +02:00
Thomas Schoebel-Theuer
3c244706a5 main: fix replay_code report in primary mode
After a primary --force, the error couldn't go away in case of
a defective logfile. Months later, sysadmins were needlessly alarmed
when looking at the primary.
2016-08-09 09:37:09 +02:00
Thomas Schoebel-Theuer
e969219fca main: safeguard versionlink appearance
In some rare cases (e.g. damaged /mars or crashed primaries),
the versionlink belonging to a  logfile may be missing.

Don't insist on the existence of a versionlink if the logfile is
stemming from myself (automatic self-repair).
2016-08-09 09:37:09 +02:00
Thomas Schoebel-Theuer
634499d3d2 all: testing of hangs 2016-08-09 09:37:09 +02:00
Thomas Schoebel-Theuer
90653476f6 all: crash testing hardening infrastructure
This is important for even more hardening of MARS.
Simulate crashes at the "wrong moment", typically with
IO requests flying, or just before a symlink update.

Only for debugging. Never use for production.
2016-08-09 09:34:19 +02:00
Thomas Schoebel-Theuer
401f87aeee all: release mars0.1stable29 2016-03-09 09:51:28 +01:00
Thomas Schoebel-Theuer
748d373d43 doc: update version 2016-03-09 09:51:11 +01:00
Thomas Schoebel-Theuer
f89e0a7d96 marsadm: lowlevel IP address commands
This is absolutely necessary for coping with changes in network
setups.
2016-03-09 09:42:38 +01:00
Thomas Schoebel-Theuer
e7f41563f2 main: fix livelock at end of sync
Only observed on very fast hardware.
Leaving the loop may unnecessarily take a long time.
2016-03-08 11:37:41 +01:00
Thomas Schoebel-Theuer
04b2f2120e Kbuild: fix external 1&1 build process 2016-03-03 12:42:41 +01:00
Thomas Schoebel-Theuer
669d73e602 all: release mars0.1stable28 2016-03-03 09:40:25 +01:00
Thomas Schoebel-Theuer
833a1cb524 doc: increment version number 2016-03-03 09:40:06 +01:00
Thomas Schoebel-Theuer
72deaee082 doc: describe removal of "Light" 2016-03-03 09:40:02 +01:00
Thomas Schoebel-Theuer
a5f8f3e464 main: rename mars_light.c to mars_main.c 2016-03-03 09:35:16 +01:00
Thomas Schoebel-Theuer
4d31d09534 all: remove CONFIG_MARS_BIGMODULE 2016-03-03 09:33:34 +01:00
Thomas Schoebel-Theuer
daa701edf1 light: s/light_class/main_class/g 2016-03-03 09:05:01 +01:00
Thomas Schoebel-Theuer
2990b9362e light: s/light_thread/main_thread/g 2016-03-03 09:04:04 +01:00
Thomas Schoebel-Theuer
42a8bfaa60 all: s/light_(worker|checker)/main_\1/g 2016-03-03 08:57:07 +01:00
Thomas Schoebel-Theuer
fedb9a93b3 doc: clarify distance limits for synchronous operations 2016-03-03 07:48:57 +01:00
Thomas Schoebel-Theuer
ca9708c194 doc: clarify limitations of network bottlenecks 2016-03-03 07:48:57 +01:00
Thomas Schoebel-Theuer
6455ccdc75 all: release light0.1stable27 2016-03-01 12:53:56 +01:00
Thomas Schoebel-Theuer
2c034ed79f doc: new slides from GUUG 2016 2016-03-01 11:58:24 +01:00
Thomas Schoebel-Theuer
207635632b marsadm: check uniqueness of IPs at join-cluster 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
20eca8c447 marsadm: verbose callstack at ldie 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
dd4748bb52 light: clarify code 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
8fa728a0c9 light: fix annoying unnecessary error message 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
8abcbf196d light: safeguard sync vs replay 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
e70ac4df8c light: safeguard position update 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
fafad9512a light: always update position symlinks at logger switchoff 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
42c2dc98da light: fix typo in replay link comparison 2016-03-01 11:58:23 +01:00
Thomas Schoebel-Theuer
a312e3d93b light: fix memory leak
regression from f235b76900
2016-03-01 11:58:09 +01:00
Thomas Schoebel-Theuer
708547b2f4 all: release light0.1stable26 2016-02-15 07:11:06 +01:00
Thomas Schoebel-Theuer
b22fda4983 doc: bump version 2016-02-15 07:11:04 +01:00
Thomas Schoebel-Theuer
a88310ce7a doc: clarify *-{lognr,basenr} macros 2016-02-15 07:10:41 +01:00
Thomas Schoebel-Theuer
f7e64a2f35 doc: swap chapters 4 and 5 2016-02-15 07:10:41 +01:00
Thomas Schoebel-Theuer
7b9406762a doc: split chapter 3, describe the macro processor in its own chapter 2016-02-15 07:10:41 +01:00
Thomas Schoebel-Theuer
83ae4720fa marsadm: reimplement buggy primitive macros
The old version was complicated and error prone, due to historic
development.

Now the structure should be much simpler.
2016-02-15 07:10:41 +01:00
Thomas Schoebel-Theuer
8c3cfe97f3 marsadm: show wrong permissions
Feature request by Tilmann Steinberg.

It greatly eases debugging when searching for a source of wrong
permissions.

Some admin tools like Puppet seem to have their own default notion
of "secure permissions" and try to "fix" them ;)
2016-02-15 07:10:41 +01:00
Thomas Schoebel-Theuer
c0d57bef7a marsadm: fix view-wait-is-* when symlinks are not yet present 2016-02-15 07:10:40 +01:00
Thomas Schoebel-Theuer
8bc1e80488 light: safeguard skipping of logfiles in disconnected state.
Found by code inspection, neither in practice nor by testing.

Should not occur in practice, because it could only occur after
marsadm pause-fetch, which is an exceptional state only to be entered
for maintenance or for emergency failover.

Skipping over an incorrect logfile at a secondary may produce an
unnecessary split brain.

Fix the potential problem by doing it only after "primary --force",
and by never creating a new logfile, always by re-using existing
logfiles.
2016-02-10 06:44:00 +01:00
Thomas Schoebel-Theuer
f235b76900 light: fix potential deadlock on restart after inconsistent symlinks
This has been found by testing.

In extremely rare cases, such after crashes at the "wrong moment"
or after defective /mars filesystems, the replay link could show a
different length than the corresponding versionlink.

The versionlink wouldn't be updated anymore when additionally the
logfile has the same length than the replay link.

The incorrect versionlink will then lead to a lock.

Fix the problem by using the _minimum_ of all length indicators.
For safty, or when in doubt, replay more data, which will in turn
update the versionlink again to its correct value.
2016-02-10 06:24:27 +01:00
Thomas Schoebel-Theuer
c3d2aaa40b all: release light0.1stable25 2016-02-03 22:08:19 +01:00
Thomas Schoebel-Theuer
e65444b2f2 doc: update version 2016-02-03 22:01:49 +01:00
Thomas Schoebel-Theuer
1edef479fc marsadm: show the old designated primary in the log
This is vital for incident analysis.
2016-02-03 22:01:49 +01:00