Commit Graph

363 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer
e1426525cd infra: protect lamport clock against illegal future values 2018-01-31 08:09:00 +01:00
Thomas Schoebel-Theuer
5818d254ce main: remote_trigger after deletions 2018-01-31 07:50:50 +01:00
Thomas Schoebel-Theuer
495c42c9d9 main: remote_trigger on open-count changes 2018-01-31 07:50:50 +01:00
Thomas Schoebel-Theuer
5cff1bac2a main: remote_trigger only from primary to secondaries 2018-01-31 07:50:30 +01:00
Thomas Schoebel-Theuer
de4263e8b9 main: remove dead code 2018-01-31 07:50:30 +01:00
Thomas Schoebel-Theuer
0cb5fb0179 main: hold remote_trigger on failure 2018-01-31 07:50:23 +01:00
Thomas Schoebel-Theuer
6177b74fee infra: user message infrastructure 2018-01-31 07:45:55 +01:00
Thomas Schoebel-Theuer
b790c99d5a main: replace spinlock by mutex 2018-01-31 07:45:21 +01:00
Thomas Schoebel-Theuer
b2cf8686de infra: use new mapfree dirtifying 2017-12-10 20:54:27 +01:00
Thomas Schoebel-Theuer
38b7ccf272 Merge branch 'mars0.1.y' into mars0.1a.y 2017-12-10 20:48:51 +01:00
Thomas Schoebel-Theuer
42543656dc main: auto logrotate on small /mars 2017-10-23 17:07:41 +02:00
Thomas Schoebel-Theuer
dedf7f3cdc main: fix writeback overflow when /mars has less space than RAM
Observed at Arsys prototype testing.
Thanks to Andoni Ayala for the problem report.
2017-10-23 16:43:28 +02:00
Thomas Schoebel-Theuer
06ea3d4d1b main: better connection messages 2017-09-23 07:49:57 +02:00
Thomas Schoebel-Theuer
0c09be8eae main: fix and improve misleading connection state wording 2017-09-23 07:49:56 +02:00
Thomas Schoebel-Theuer
e6c4ccd7ab main: fix multiple peer activation 2017-09-12 20:12:28 +02:00
Thomas Schoebel-Theuer
7a65eaa4ef main: extra rot activation 2017-09-12 09:34:14 +02:00
Thomas Schoebel-Theuer
610b513ac9 main: factor out rot activation 2017-09-12 09:34:14 +02:00
Thomas Schoebel-Theuer
3b0fc84da3 main: interrupt peer thread wait earlier 2017-09-12 09:34:14 +02:00
Thomas Schoebel-Theuer
7f3fffe2a1 man: terminate peer thread when network is down 2017-09-12 09:34:14 +02:00
Thomas Schoebel-Theuer
e85f9afffb main: retry on dent limit 2017-09-12 09:34:14 +02:00
Thomas Schoebel-Theuer
4ffb69aac2 main: propagate features 2017-09-11 12:00:12 +02:00
Thomas Schoebel-Theuer
b8e77a4f58 main: report optional feature version 2017-09-11 11:59:32 +02:00
Thomas Schoebel-Theuer
cf25790fd2 Merge tag 'mars0.1stable48' into mars0.1a.y 2017-09-11 11:53:28 +02:00
Thomas Schoebel-Theuer
513546971e Merge tag 'mars0.1stable47' into mars0.1a.y 2017-09-11 11:50:12 +02:00
Thomas Schoebel-Theuer
2787be89de Merge tag 'mars0.1stable46' into mars0.1a.y 2017-09-11 11:48:41 +02:00
Thomas Schoebel-Theuer
7f961ad89f Merge tag 'mars0.1stable45' into mars0.1a.y 2017-09-11 11:42:59 +02:00
Thomas Schoebel-Theuer
ac33f3b6ec Merge tag 'mars0.1stable44' into mars0.1a.y 2017-09-11 11:42:49 +02:00
Thomas Schoebel-Theuer
9025283608 server: handler limit 2017-09-07 12:56:23 +02:00
Thomas Schoebel-Theuer
2d26b3d224 server: dent limit 2017-09-07 12:55:40 +02:00
Thomas Schoebel-Theuer
c0dfbde8a8 infra: fix mem leak from merge error 2017-09-05 11:23:44 +02:00
Thomas Schoebel-Theuer
3d2811c719 main: fix deadlock on uuid at leave-cluster
Similar to before:

root@m0:~# cat /proc/2642/stack
[<ffffffff810591cc>] kthread_stop+0x7f/0x10d
[<ffffffffa0172033>] _kill_peer.isra.7+0xf9/0x1ea [mars]
[<ffffffffa0172180>] peer_destruct+0xe/0x10 [mars]
[<ffffffffa016866a>] mars_free_dent+0x188/0x1b4 [mars]
[<ffffffffa0168a5a>] mars_dent_work+0x3c4/0x563 [mars]
[<ffffffffa0171265>] _main_thread+0x2b2/0x88d [mars]
[<ffffffff81059145>] kthread+0xb5/0xbd
[<ffffffff81660a19>] ret_from_fork+0x49/0x80
[<ffffffffffffffff>] 0xffffffffffffffff
root@m0:~# cat /proc/4282/stack
[<ffffffff81342154>] call_rwsem_down_read_failed+0x14/0x30
[<ffffffffa0166554>] mars_find_dent+0x19/0x3d [mars]
[<ffffffffa0172a30>] peer_thread+0x8ae/0xdc0 [mars]
[<ffffffff81059145>] kthread+0xb5/0xbd
[<ffffffff81660a19>] ret_from_fork+0x49/0x80
[<ffffffffffffffff>] 0xffffffffffffffff
2017-09-01 20:14:36 +02:00
Thomas Schoebel-Theuer
6c56b53850 infra: fix deadlock on leave-cluster & friends
root@m1:~# cat /proc/2661/stack
[<ffffffff810591cc>] kthread_stop+0x7f/0x10d
[<ffffffffa01660a5>] _kill_peer.isra.7+0xf9/0x1ea [mars]
[<ffffffffa01661f2>] peer_destruct+0xe/0x10 [mars]
[<ffffffffa015c66a>] mars_free_dent+0x188/0x1b4 [mars]
[<ffffffffa015ca5a>] mars_dent_work+0x3c4/0x563 [mars]
[<ffffffffa01652d7>] _main_thread+0x2b2/0x88d [mars]
[<ffffffff81059145>] kthread+0xb5/0xbd
[<ffffffff81660a19>] ret_from_fork+0x49/0x80
[<ffffffffffffffff>] 0xffffffffffffffff

root@m1:~# cat /proc/4473/stack
[<ffffffff81342154>] call_rwsem_down_read_failed+0x14/0x30
[<ffffffffa015a554>] mars_find_dent+0x19/0x3d [mars]
[<ffffffffa015dadc>] _mars_translate_hostname+0x86/0x126 [mars]
[<ffffffffa0166663>] peer_thread+0x46f/0xdc0 [mars]
[<ffffffff81059145>] kthread+0xb5/0xbd
[<ffffffff81660a19>] ret_from_fork+0x49/0x80
[<ffffffffffffffff>] 0xffffffffffffffff
2017-09-01 20:03:48 +02:00
Thomas Schoebel-Theuer
1e13c9e7ae all: document some deadlock danger on debug output 2017-08-29 18:53:24 +02:00
Thomas Schoebel-Theuer
45005f25c9 main: fix is_attached 2017-08-29 18:40:30 +02:00
Thomas Schoebel-Theuer
5b41b2fb84 infra: regularly prune the /mars dentry cache 2017-08-25 15:07:59 +02:00
Thomas Schoebel-Theuer
de8abf0284 main: report is-detached only when bio is gone 2017-08-21 21:16:37 +02:00
Thomas Schoebel-Theuer
68016194bc main: report is-detached for damaged resources 2017-08-21 21:16:36 +02:00
Thomas Schoebel-Theuer
4ff7dfe7a4 Merge branch 'mars0.1.y' into mars0.1b.y 2017-07-26 11:32:47 +02:00
Thomas Schoebel-Theuer
45f9440842 main: protect rot list by rwsem 2017-07-26 11:08:56 +02:00
Thomas Schoebel-Theuer
3d9bbcb23c main: check alive link timestamp instead of tree version
The tree version might be updated less frequently.
2017-07-26 11:08:12 +02:00
Thomas Schoebel-Theuer
cf84aeba9f main: avoid fetch from failed peer for a while 2017-07-26 10:27:04 +02:00
Thomas Schoebel-Theuer
881f61bfcc main: fix abort of logfile fetching 2017-07-26 10:00:51 +02:00
Thomas Schoebel-Theuer
347bb102e7 infra: safeguard dent deallocation 2017-07-05 08:01:48 +02:00
Thomas Schoebel-Theuer
86d70bd6a5 main: more detailed messages on peers and paths 2017-07-05 08:01:48 +02:00
Thomas Schoebel-Theuer
aa5481a87d main: fetch only metadata of interesting resources 2017-07-05 08:01:48 +02:00
Thomas Schoebel-Theuer
627a402617 main: compute list of participating resources 2017-07-05 08:01:48 +02:00
Thomas Schoebel-Theuer
6c4f72ceab infra: allow pruning of subdirs 2017-07-05 08:01:48 +02:00
Thomas Schoebel-Theuer
c4fb7c2e41 main: verbose debugging 2017-07-05 08:01:48 +02:00
Thomas Schoebel-Theuer
f784c6555e main: remote_trigger only communicating peers 2017-07-05 08:01:48 +02:00
Thomas Schoebel-Theuer
d382bd7037 main: terminate and restart peer thread when necessary 2017-07-05 08:01:47 +02:00
Thomas Schoebel-Theuer
14737303b7 main: show more peer debuginfo 2017-07-05 08:01:47 +02:00
Thomas Schoebel-Theuer
a41c0f8f98 main: run some additional peer threads 2017-07-05 08:01:47 +02:00
Thomas Schoebel-Theuer
c8ec870886 main: only scan the peers we are participating
After this, nothing will be propagated to non-participating hosts.
The next patch is needed for fixing this.
2017-07-05 08:01:47 +02:00
Thomas Schoebel-Theuer
475b33d7ee main: also scan other hostname contexts 2017-07-05 08:01:47 +02:00
Thomas Schoebel-Theuer
0adab134ac Merge branch 'mars0.1.y' into mars0.1b.y 2017-07-05 07:48:08 +02:00
Thomas Schoebel-Theuer
27eb38ff3e infra: add total statistics to limiter 2017-07-05 07:37:12 +02:00
Thomas Schoebel-Theuer
a983bf42de main: show peer debuginfo 2017-07-05 07:37:12 +02:00
Thomas Schoebel-Theuer
d976fde7fb main: replace peer_lock spinlock by rwsem 2017-07-05 07:37:12 +02:00
Thomas Schoebel-Theuer
0da44a808f copy: allow non-strict write order 2017-05-28 19:20:26 +02:00
Thomas Schoebel-Theuer
08c973f181 main: fix forgotten notify 2017-05-28 19:20:25 +02:00
Thomas Schoebel-Theuer
be35a0af37 Merge branch 'mars0.1.y' into mars0.1b.y 2017-05-28 19:19:37 +02:00
Thomas Schoebel-Theuer
0fafba3cd0 infra: better debugging 2017-05-22 11:25:00 +02:00
Thomas Schoebel-Theuer
d12b20ef1c main: fix hang of fetch 2017-05-22 11:25:00 +02:00
Thomas Schoebel-Theuer
95d10d02a2 main: disable irqs during spinlocks 2017-05-16 10:21:31 +02:00
Thomas Schoebel-Theuer
84450d9d70 Merge branch 'mars0.1.y' into mars0.1b.y 2017-05-11 08:51:12 +02:00
Thomas Schoebel-Theuer
f129ae00e9 infra: modinfo shows io driver type 2017-05-09 08:52:48 +02:00
Thomas Schoebel-Theuer
8abf1a0928 infra: modinfo shows whether prepatch is used 2017-05-09 08:52:48 +02:00
Thomas Schoebel-Theuer
a1d4497a51 infra: remove unwanted sys_utimes() 2017-05-04 10:32:50 +02:00
Thomas Schoebel-Theuer
09c6b3112c infra: replace unwanted sys_unlink() by provisionary wrapper 2017-05-04 10:28:43 +02:00
Thomas Schoebel-Theuer
b3b13d9187 infra: replace unwanted sys_rename() by provisionary wrapper 2017-05-04 10:08:29 +02:00
Thomas Schoebel-Theuer
c4b055584c infra: replace sys_mkdir() by vfs_mkdir() 2017-05-04 10:08:29 +02:00
Thomas Schoebel-Theuer
8fe84d32d8 infra: replace sys_symlink() by vfs_symlink() 2017-05-04 10:08:29 +02:00
Thomas Schoebel-Theuer
05a5b49aed infra: remove unwanted reference to min_free_kbyte 2017-05-04 10:08:07 +02:00
Thomas Schoebel-Theuer
b9383da97c infra: remove unwanted rmdir() 2017-05-04 10:04:12 +02:00
Thomas Schoebel-Theuer
ac2c901943 infra: remove unwanted chmod() 2017-05-04 10:04:02 +02:00
Thomas Schoebel-Theuer
f654129e94 compat: disable aio when necessary 2017-05-04 09:16:17 +02:00
Thomas Schoebel-Theuer
eaa6fc0efc infa: introduce wrapper layer for compatibiliy with multiple kernels
This is needed for adaptation of the out-of-tree MARS version to multiple
kernel versions.

It will be much simplified after upstream merging, and/or
removed/replaced by something better.
2017-05-04 09:09:19 +02:00
Thomas Schoebel-Theuer
4f071e362f infra: new interface to Lamport clock 2017-04-15 18:10:44 +02:00
Thomas Schoebel-Theuer
5b2cad9f6e net: use corking at mars_send_struct() 2017-04-15 18:10:44 +02:00
Thomas Schoebel-Theuer
f4795b6c74 client: implement socket bundling 2017-04-11 09:30:34 +02:00
Thomas Schoebel-Theuer
84ff94faec if: pimp nr_requests 2017-04-11 09:20:31 +02:00
Thomas Schoebel-Theuer
27be605623 bio: pimp nr_requests 2017-04-11 09:20:31 +02:00
Thomas Schoebel-Theuer
94dcded654 main: earlier syncstatus update 2017-04-04 08:42:16 +02:00
Thomas Schoebel-Theuer
2e58ffadc1 main: introduce updater function at the right place
Updates must take place _before_ a copy is switched off.
2017-04-04 08:42:09 +02:00
Thomas Schoebel-Theuer
378cf8035f main: earlier shutdown on rmmod
This is important when the network hangs.
2017-04-04 08:38:16 +02:00
Thomas Schoebel-Theuer
afe2513c21 infra: shutdown bricks in parallel 2017-04-04 08:38:15 +02:00
Thomas Schoebel-Theuer
c0da3f50fe main: safeguard forceful killing 2017-04-04 08:38:15 +02:00
Thomas Schoebel-Theuer
994ae64b92 main: fix sequential wait upon shutdown
Instead, switch off all resources in parallel without waiting for
each shutdown.
2017-04-04 08:38:15 +02:00
Thomas Schoebel-Theuer
ea57a4e898 Merge branch 'mars0.1.y' into mars0.1b.y 2017-04-04 08:37:05 +02:00
Thomas Schoebel-Theuer
d1988b3d7c copy: leave lifelock when EOF position decreases 2017-04-04 08:03:09 +02:00
Thomas Schoebel-Theuer
7f7b6b99a7 main: new simple sync parallelism limit
Hopefully this code is now "obviously correct"
2017-02-20 15:29:28 +01:00
Thomas Schoebel-Theuer
c3f931f660 main: remove obsolete 1&1-specific sync feature 2017-02-20 15:29:28 +01:00
Thomas Schoebel-Theuer
84a9273080 main: fix detection of logfile sequence holes 2017-02-16 07:21:09 +01:00
Thomas Schoebel-Theuer
1b46726241 main: avoid flipping of syncstatus update 2017-02-09 10:13:21 +01:00
Thomas Schoebel-Theuer
d897f9060e infra: fix forced shutdown of bricks 2017-01-25 09:30:52 +01:00
Thomas Schoebel-Theuer
bb89cf0dbb infra: show brick creation timestamp in debuglogs 2017-01-25 09:30:52 +01:00
Thomas Schoebel-Theuer
7bdf6ed6c2 infra: show additional variable in debug log 2017-01-25 09:30:52 +01:00
Thomas Schoebel-Theuer
1080474ecc all: use new wrapper 2017-01-25 09:30:52 +01:00
Thomas Schoebel-Theuer
e370af69e1 infra: use new wrapper 2017-01-25 09:30:52 +01:00
Thomas Schoebel-Theuer
0c76f0f1fd infra: wrapper for generic_{dis,}connect with locking 2017-01-25 09:30:52 +01:00