Commit Graph

384 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer
c35065fe97 infra: report global IO hangs 2015-02-27 11:32:57 +01:00
Thomas Schoebel-Theuer
c1823bbfab light: report actually running buildtag 2015-02-27 11:32:56 +01:00
Thomas Schoebel-Theuer
736489eccd light: suppress irrelevant warning 2015-02-24 15:51:28 +01:00
Thomas Schoebel-Theuer
036953fa54 light: provisionary allow fetch during detach 2015-02-24 15:51:28 +01:00
Thomas Schoebel-Theuer
0453fbae9b light: fix race on rmmod 2015-02-24 15:51:27 +01:00
Thomas Schoebel-Theuer
f10e7358ad light: stop syncing upon logfile holes 2015-02-24 15:51:26 +01:00
Thomas Schoebel-Theuer
827b5b5192 light: fix syncpos indication of inconsistency 2015-02-24 12:08:41 +01:00
Thomas Schoebel-Theuer
c03fc47539 light: fix start of sync 2015-02-24 12:08:41 +01:00
Thomas Schoebel-Theuer
0c38493e13 light: add hysteresis to emergency revovery 2015-02-24 12:08:39 +01:00
Thomas Schoebel-Theuer
092201decc light: less side effects by emergency mode 2015-02-24 11:15:29 +01:00
Thomas Schoebel-Theuer
c81ad56480 copy: reset copy area upon consistency errors 2015-02-24 09:19:46 +01:00
Thomas Schoebel-Theuer
5d81381664 all: disallow sync IO during emergency mode 2015-02-11 15:20:26 +01:00
Thomas Schoebel-Theuer
e7464b3c02 all: correct error code EIO
The error code -EIO should always refer to a problem of
lower storage laysers. Thus MARS should not generate that
code itself, but other ones.
2015-01-20 15:20:10 +01:00
Thomas Schoebel-Theuer
802cc73b49 infra: additionally safeguard race on brick resource deallocation 2015-01-19 18:01:04 +01:00
Thomas Schoebel-Theuer
fa49247b8e infra: fix stale dents 2015-01-19 18:01:04 +01:00
Thomas Schoebel-Theuer
85658c8157 net: speakyness add dump_meta() 2014-12-09 14:31:42 +01:00
Thomas Schoebel-Theuer
ce48d7031c all: fix hang of NotYetPrimary in lower emergency modes 2014-12-07 09:24:16 +01:00
Thomas Schoebel-Theuer
7366cb9dad light: fix leave-cluster communication 2014-12-07 09:24:16 +01:00
Thomas Schoebel-Theuer
28c8575cc0 light: fix becoming primary during split brain
Always prefer the own logfile if one exists.
This should improve becoming in most split brain situations.
2014-12-07 09:24:16 +01:00
Thomas Schoebel-Theuer
4f936f0cd8 bio: fix invalid block allocations 2014-12-07 09:24:16 +01:00
Thomas Schoebel-Theuer
324f472889 if: fix potential race on shutdown 2014-12-07 09:24:16 +01:00
Thomas Schoebel-Theuer
c0a9790149 server: fix wrong sharing of brick lists 2014-12-07 09:24:13 +01:00
Thomas Schoebel-Theuer
8969436177 server: fix protocol error 2014-12-07 09:19:37 +01:00
Thomas Schoebel-Theuer
e4d2567eed client: fix communication protocol error 2014-12-07 09:16:49 +01:00
Thomas Schoebel-Theuer
5c7a3c95cc net: safeguard protocol errors 2014-12-07 09:16:49 +01:00
Thomas Schoebel-Theuer
4f2b48b0a5 net: safeguard network protocol 2014-12-07 09:16:49 +01:00
Thomas Schoebel-Theuer
039858ae30 net: fix unnoticed short reads 2014-12-04 07:46:06 +01:00
Thomas Schoebel-Theuer
aa09d7df30 all: clarify license GPLv2+ 2014-11-25 18:09:17 +01:00
Thomas Schoebel-Theuer
917d5ae2d2 light: fix client shutdown on slow network
On slow networks, the generic net_io_timeout is too long if you are
impatiently waiting for disconnect.

Change the io_timeout of the individual client brick to a short value.
2014-11-12 09:01:35 +01:00
Thomas Schoebel-Theuer
1295c43a7a infra: move io_timeout to generic interface
This is needed for the next commit.
2014-11-12 09:01:34 +01:00
Thomas Schoebel-Theuer
5fb9fc03d3 net: fix unnecessary socket shutdown on nonblocking connects 2014-11-12 09:01:34 +01:00
Thomas Schoebel-Theuer
843a931cae light: fix zero progress of rate display 2014-11-12 09:01:33 +01:00
Thomas Schoebel-Theuer
547cc60a72 light: fix long-lasting pause-fetch effect 2014-11-12 09:01:33 +01:00
Thomas Schoebel-Theuer
f6cca5ca72 light: fix copy switch off 2014-11-12 09:01:33 +01:00
Thomas Schoebel-Theuer
b0171749a4 infra: fix racy NULL deref on thread termination 2014-11-12 09:01:33 +01:00
Thomas Schoebel-Theuer
2b2e07d24d bio: fix potential bvec overflow/corruption 2014-11-12 09:01:33 +01:00
Thomas Schoebel-Theuer
1e22d8b64e bio: fix thread termination 2014-11-12 09:01:32 +01:00
Thomas Schoebel-Theuer
ed57478ace light: fix versionlink in emergency mode 2014-08-25 09:43:06 +02:00
Thomas Schoebel-Theuer
6a176c26c7 light: fix propagation of maxnr 2014-08-14 10:01:21 +02:00
Thomas Schoebel-Theuer
a81e255ed3 infra: fix BUILDTAG for out-of-tree builds 2014-08-08 10:38:32 +02:00
Thomas Schoebel-Theuer
3a6ff3d2c8 infra: quickfix Redhat/openvz builds 2014-07-14 17:27:11 +02:00
Thomas Schoebel-Theuer
4a2ee37b98 light: treat double logfiles directly as split brain 2014-07-11 08:19:10 +02:00
Thomas Schoebel-Theuer
16f5a5dd77 light: fix becoming primary in multiple logrotated situations 2014-07-11 07:55:33 +02:00
Thomas Schoebel-Theuer
5e4753cffb infra: check CONFIG_SMP at out-of-tree builds 2014-06-18 12:10:55 +02:00
Thomas Schoebel-Theuer
d7e9f91b87 infra: disable DEBUG_SLAB
It leads to misaligned bios which are currently not yet handled by MARS.
TODO: implement unaligend IO and remove this again.
2014-06-18 12:10:55 +02:00
Thomas Schoebel-Theuer
1439d30ffb all: port to newer kernels (up to 3.15) 2014-06-18 12:10:55 +02:00
Thomas Schoebel-Theuer
d04562a39d infra: adapt to new kthreads after 3.7 2014-06-18 12:10:55 +02:00
Benjamin Kübler
55daf381f0 infra: fix #4, Kbuild env hostname 2014-06-18 12:10:54 +02:00
Benjamin Kübler
f525747331 infra: add standalone make 2014-06-18 12:10:54 +02:00
Benjamin Kübler
5feb18d3ad infra: support Kbuild 2014-06-18 12:10:54 +02:00
Thomas Schoebel-Theuer
b64ed7bd96 infra: fix readdir() call 2014-06-18 12:10:48 +02:00
Thomas Schoebel-Theuer
21991f3cf3 logger: fix scarce race on replay EOF
This led to annoying error messages like checksumming mismatches
or record sequence number mismatches etc.
AFAIK the data integrity was not in danger (since the checks
masked out any potentially harmful actions).
2014-06-18 10:44:54 +02:00
Benjamin Kübler
b305f86ae4 infra: change buildtag to git describe for better legibility 2014-05-06 07:45:46 +02:00
Thomas Schoebel-Theuer
b741f0b992 lib_log: quiet annoying false error message 2014-05-06 07:43:54 +02:00
Thomas Schoebel-Theuer
7aebfdf6bb all: remove __exit annotation 2014-04-24 18:08:31 +02:00
Thomas Schoebel-Theuer
a989a43ecd infra: fix bounds checking in len2order() 2014-04-23 13:23:56 +02:00
Thomas Schoebel-Theuer
21fe963c5e infra: fix include of generated header for out-of-tree builds 2014-04-23 13:23:56 +02:00
Thomas Schoebel-Theuer
a2bad6db4e light: fix initialization/finalization order 2014-04-23 13:23:56 +02:00
Thomas Schoebel-Theuer
349bc0cf1c proc: fix table termination 2014-04-23 13:23:56 +02:00
Thomas Schoebel-Theuer
782dfc97e4 trans_logger: fix replay_head refcounting, add paranoia 2014-04-20 09:08:54 +02:00
Thomas Schoebel-Theuer
7e932641df bio: fix refcounting 2014-04-20 09:08:54 +02:00
Thomas Schoebel-Theuer
a35585325d aio: fix dirty_stage 2014-04-20 07:35:29 +02:00
Thomas Schoebel-Theuer
ce7dbc07f1 infra: fix list initialization 2014-04-08 10:12:58 +02:00
Thomas Schoebel-Theuer
9d39da8096 trans_logger: fix replay disk IO error propagation 2014-04-08 10:10:16 +02:00
Thomas Schoebel-Theuer
90b19cd2f6 infra: fix dent list sorting 2014-04-08 10:06:15 +02:00
Thomas Schoebel-Theuer
c621de770b all: improve checking of callback chain 2014-03-31 06:59:10 +02:00
Thomas Schoebel-Theuer
9ab367f11a infra: improve callback debugging 2014-03-31 06:59:10 +02:00
Thomas Schoebel-Theuer
c45f2da80c brick_mem: improve debugging 2014-03-31 06:59:10 +02:00
Thomas Schoebel-Theuer
fcf4863503 light: fix annoying replay error message 2014-03-31 06:59:10 +02:00
Thomas Schoebel-Theuer
9ebea0cb8a light: don't disturb fetch infos when switched off 2014-03-31 06:59:10 +02:00
Thomas Schoebel-Theuer
8af22a1785 light: maintain limiter rates even when switched off 2014-03-31 06:59:10 +02:00
Thomas Schoebel-Theuer
2f4696a9cc all: fix logfile size propagation 2014-03-31 06:59:09 +02:00
Thomas Schoebel-Theuer
8d0ce5c9bd aio: fix races in EOF computation 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer
b0867dbc05 client: fix error propagation 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer
2d68b755c2 infra: fix mem error messages 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer
6050b4157f infra: make string allocation fully dynamic 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer
43e4312c1a proc: fix too long string allocation 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer
17ef391953 infra: fix string allocation in mars_readlink() 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer
5b7fabf167 server: fix refcounting 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer
2fc05b5373 light: allow limiting the sync parallelism 2014-03-19 17:49:40 +01:00
Thomas Schoebel-Theuer
09a1cd3b32 light: add warning 2014-03-19 17:49:40 +01:00
Thomas Schoebel-Theuer
b0a78c8469 light: disable fetch at detach 2014-03-19 17:49:40 +01:00
Thomas Schoebel-Theuer
d166653942 light: show new {fetch,sync} info 2014-03-19 17:49:40 +01:00
Thomas Schoebel-Theuer
7697826b5d copy: add timestamp of last advance 2014-03-19 17:49:39 +01:00
Thomas Schoebel-Theuer
024c02c532 light: show connection info 2014-03-19 17:49:39 +01:00
Thomas Schoebel-Theuer
9340f70c36 light: add info symlinks 2014-03-19 17:49:39 +01:00
Thomas Schoebel-Theuer
2ce5e2aad7 light: add per-resource emergency mode 2014-03-19 17:49:39 +01:00
Thomas Schoebel-Theuer
d4b31d8bf9 infra: add flood protected syslogging 2014-03-19 17:49:39 +01:00
Thomas Schoebel-Theuer
8429aaf773 infra: turn off stack traces at errors 2014-03-19 11:44:58 +01:00
Thomas Schoebel-Theuer
d96931867a trans_logger: fix error code propagation 2014-03-19 11:44:58 +01:00
Thomas Schoebel-Theuer
e551c1aa87 light: fix emergency mode 2014-03-19 11:44:58 +01:00
Thomas Schoebel-Theuer
7fa4bf1ecd trans_logger: fix emergency mode 2014-03-19 11:44:57 +01:00
Thomas Schoebel-Theuer
b606644e6d light: always use replay_tolerance 2014-03-19 11:44:57 +01:00
Thomas Schoebel-Theuer
80294e613e light: fix fetch at primary side 2014-03-19 11:33:20 +01:00
Thomas Schoebel-Theuer
2a3e59ba93 light: remove wrong err msg 2014-03-19 11:33:04 +01:00
Thomas Schoebel-Theuer
9d86cb679b all: fix inconsistent terminology apply->replay
In most cases, "replay" was already used. So it is easier
to switch the rare "apply" wording to "replay" everywhere (hopefully).
2014-03-19 11:30:24 +01:00
Thomas Schoebel-Theuer
e78d0a3078 light: fix peer preferences, use connect-* links 2014-03-19 11:30:24 +01:00
Thomas Schoebel-Theuer
0e53f48951 light: fix logfile fetch from multiple peers 2014-03-19 11:30:24 +01:00
Thomas Schoebel-Theuer
e5a558aefe light: fix marker check
The old code was not portable across changes of CL_*
2014-03-19 11:30:24 +01:00
Thomas Schoebel-Theuer
56f38641ff infra: fix/remove buggy d_{name,path}len
In rare cases, this could lead to buffer overflows.
Replace buggy concept from the prototype phase with more
robust (although slightly less performant) code.
2014-03-19 11:30:24 +01:00
Thomas Schoebel-Theuer
6d78a7bc8d light: do deletions only once 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
528b72b0c0 light: fix potential race on deletions 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
166255ca68 light: fix deletion logic 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
3acb6a02fe infra: fix removal of stale directories 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
5d2a682cfd infra: fix readlink() for very long paths 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
012292677c light: fix string memleak 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
3e9aae53c8 all: fix potential buffer overflows, use vscnprintf() 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
e6abaaa161 light: fix potential endless loop 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
bd9b46fc05 infra: fix forgotten locking 2014-03-19 11:30:23 +01:00
Thomas Schoebel-Theuer
7cd1281d2c light: fix potential flaw in primary switching 2014-03-19 11:30:22 +01:00
Thomas Schoebel-Theuer
b32927a20d light: fix race in logfile switching 2014-03-19 11:30:22 +01:00
Thomas Schoebel-Theuer
f45c3fbdd3 aio: use aio_sync_mode=2 by default 2014-03-19 11:30:22 +01:00
Thomas Schoebel-Theuer
eacbac7dea light: fix bad terminology copy_* -> fetch_* 2014-02-04 07:53:33 +01:00
Thomas Schoebel-Theuer
bebcc10fc2 light: shotdown mode, delay re-creation of resource 2014-02-04 07:51:37 +01:00
Thomas Schoebel-Theuer
2eb8162a05 light: fix wrong kill of if_brick 2014-02-03 15:07:46 +01:00
Thomas Schoebel-Theuer
31f3b64ea0 light: fix bad cleanup dependencies 2014-02-03 15:07:45 +01:00
Thomas Schoebel-Theuer
dbcbf9f782 light: make trans_logger destructable by symlink removal 2014-02-03 15:07:45 +01:00
Thomas Schoebel-Theuer
9a8a4d7eb2 light: fix delete-resource forced dealloc 2014-02-03 15:07:45 +01:00
Thomas Schoebel-Theuer
ff7d78a8cc light: fix removal of deletion markers 2014-02-03 15:07:45 +01:00
Thomas Schoebel-Theuer
178637f5e6 light: force shutdown of fetch upon {disonnect,detach} 2014-02-03 15:07:45 +01:00
Thomas Schoebel-Theuer
cae1b747b1 light: fix stopping of fetch when remote logfile went away 2014-02-03 15:07:45 +01:00
Thomas Schoebel-Theuer
6e54fa1e5e light: fix peer association of fetch 2014-02-03 15:07:45 +01:00
Thomas Schoebel-Theuer
4e17138003 light: make detach/down more robust against following commands
Immediately stop syncing when rource should go down.
2014-02-03 15:07:44 +01:00
Thomas Schoebel-Theuer
59d141c06e client: add network abort
TCP_KEEPALIVE doesn't seem to work.
Use explicit timeout instead when the network
just drops any packet.
2014-02-03 15:06:35 +01:00
Thomas Schoebel-Theuer
8309fb97e6 light: add peer abort 2014-02-03 15:06:35 +01:00
Thomas Schoebel-Theuer
7be31c47f4 net: add {send,recv}_abort count
TCP_KEEPALIVE does not work well in the presence of long-blocking
socket operations.

This quirk allows for software aborts after a configurable number of
sk_{snd,rcv}timeo events.
2014-02-03 15:06:35 +01:00
Thomas Schoebel-Theuer
b60b0887e8 net: disable MSG_DONTWAIT 2014-02-03 15:06:35 +01:00
Thomas Schoebel-Theuer
2bdc298224 net: reduce tcp idle timeout 2014-02-03 15:06:35 +01:00
Thomas Schoebel-Theuer
62d9dd371a net: allow tcp tuning via /proc/sys/mars/tcp_tuning/ 2014-02-03 15:06:34 +01:00
Thomas Schoebel-Theuer
7ad628a725 light: create detailed warn message in userspace 2014-02-03 15:06:34 +01:00
Thomas Schoebel-Theuer
4dd4118f31 light: prevent logfile fetching on primaries and behind split brains
Save space in /mars/ by not fetching useless logfiles.
2014-01-23 11:56:36 +01:00
Thomas Schoebel-Theuer
0ad20e54c8 light: prevent races between deletions and re-erected objects 2014-01-23 11:56:35 +01:00
Thomas Schoebel-Theuer
216ecbffde marsadm: prevent mutual overwrite of delete symlinks
Add an (unused) host context. Previously, concurrent
log-delete operations triggered by cron could lead to
unnecessary loss of deletetion symlinks.
2014-01-23 11:56:35 +01:00
Thomas Schoebel-Theuer
64a02e6ed8 light: fix logfile fetch after leave-resource && join-resource 2014-01-23 11:56:34 +01:00
Thomas Schoebel-Theuer
a7756947b8 light: enable logfile fetch debugging 2014-01-23 11:56:34 +01:00
Thomas Schoebel-Theuer
561a9b4c25 light: always use designated primary as sync source 2014-01-23 10:25:27 +01:00
Thomas Schoebel-Theuer
2c8b72e5e3 light: fix use of wrong logfile after primary --force 2014-01-23 10:25:27 +01:00
Thomas Schoebel-Theuer
fc436cf684 light: fix endless creation of holes in emergency mode 2014-01-17 07:40:04 +01:00
Thomas Schoebel-Theuer
1d52efb880 brick_mem: improve debugging messages 2013-12-05 08:08:57 +01:00
Thomas Schoebel-Theuer
ff2b4337ea infra: show version tags in /proc/sys/mars/version 2013-12-05 08:08:26 +01:00
Thomas Schoebel-Theuer
eb9aebc3ae infra: fix delay computation in limiter 2013-11-21 07:20:01 +01:00
Thomas Schoebel-Theuer
fd30cd6b44 infra: show ops count in limiter 2013-11-21 07:20:01 +01:00
Thomas Schoebel-Theuer
af418eb9f0 infra: make limiter {min,max}_window configurable 2013-11-21 07:20:00 +01:00
Thomas Schoebel-Theuer
8b74dddc24 infra: fix limiter overflow in denominator 2013-11-21 07:20:00 +01:00
Thomas Schoebel-Theuer
8696e417db infra: make limiter max_delay settable 2013-11-21 07:20:00 +01:00
Thomas Schoebel-Theuer
606528768f if: fix amount of throttling 2013-11-20 11:54:14 +01:00
Thomas Schoebel-Theuer
6579393177 light: rename throttling parameters and defaults 2013-11-20 11:13:57 +01:00
Thomas Schoebel-Theuer
65bdee3b08 infra: show cumulatives in all limiters 2013-11-19 12:22:45 +01:00
Frank Liepold
871e3994db light: fix throttling calculation of request sizes
Signed-off-by: Thomas Schoebel-Theuer <schoebel@bell.site>
2013-11-19 11:44:15 +01:00
Thomas Schoebel-Theuer
3b0a78803d sio: remove non-working kmap() 2013-11-05 13:02:35 +01:00