Alasdair Kergon
17e298ad2a
Only do lockfs filesystem sync when suspending snapshots.
...
Switchover library building to use LIB_SUFFIX.
2006-01-31 14:52:30 +00:00
Alasdair Kergon
d031a374f9
Rename _log to dm_log and export.
...
Fix misc compile-time warnings.
2006-01-31 14:50:38 +00:00
Alasdair Kergon
71f2e4306d
Tidy some comments/messages.
2006-01-27 20:52:21 +00:00
Alasdair Kergon
f8af23a025
Fix renamed dso.
2006-01-27 20:51:36 +00:00
Alasdair Kergon
4ef55a6cd3
dmeventd thread termination fix
2006-01-27 20:50:01 +00:00
Alasdair Kergon
312f866723
some init_client cleanup
2006-01-27 20:49:13 +00:00
Alasdair Kergon
0ebe1f6dec
More dmeventd mirror cleanups.
2006-01-27 20:48:19 +00:00
Alasdair Kergon
2ad92e0e6e
Remove avoidable dmeventd mirror forking.
2006-01-27 20:47:20 +00:00
Alasdair Kergon
ac8823cdcf
Fix libdevmapper event daemon_running status.
2006-01-27 20:46:06 +00:00
Alasdair Kergon
77565f7ee4
Replace deprecated signal functions.
2006-01-27 20:45:17 +00:00
Alasdair Kergon
d656d90fa8
Use split_dm_name in dmeventd mirror code.
2006-01-27 20:43:52 +00:00
Alasdair Kergon
cd6568db69
fix dmevent registration return codes
2006-01-27 20:01:45 +00:00
Alasdair Kergon
85c818a39e
read/write loop fixes
2005-12-19 22:56:47 +00:00
Alasdair Kergon
8825157fbb
Change dm_tree_node_add_mirror_target_log parm order
2005-12-19 21:03:17 +00:00
Alasdair Kergon
6a22ad0171
comments
2005-12-13 13:34:31 +00:00
Alasdair Kergon
cf703b0433
Fix dmeventd build.
2005-12-05 11:16:48 +00:00
Alasdair Kergon
c0197a72d3
fix exports
2005-12-02 21:00:33 +00:00
Alasdair Kergon
b8b029b7d3
Add mirror dmeventd library
2005-12-02 19:52:06 +00:00
Alasdair Kergon
ab931b177d
dmeventd updates
2005-12-02 15:39:16 +00:00
Patrick Caulfield
3c2a4370a5
Make it compile with debug enabled.
2005-11-10 08:49:29 +00:00
Patrick Caulfield
5ae2693241
Use hash functions in libdevmapper.
2005-11-09 09:24:10 +00:00
Alasdair Kergon
67eb7723d6
Use hash, bitset, malloc, pool from libdevmapper.
2005-10-16 23:03:59 +00:00
Patrick Caulfield
e52f022026
clvmd no longer takes out locks for non-clusteed LVs,
...
and non-clustered LVs are only activated on the local node.
2005-08-16 08:25:09 +00:00
Alasdair Kergon
a0aedf299a
Prepare tools to support clustered mirrors.
2005-08-14 23:18:28 +00:00
Patrick Caulfield
7a8ea2ac93
Don't send a signal to kill threads that are idling nicely as it upsets them.
...
This seems to cure bz#159727 on SMP systems.
Alasdair, can you include this patch in the lvm2-cluster package please ?
2005-08-09 10:39:57 +00:00
Benjamin Marzinski
b85f99c140
Fixing some makesfiles, so that the correct things link against pthreads.
...
Also changed dmevent so that in no longer links against pthreads, and
dynamically loads libdmevent.so. Everything seems to work just fine like this.
2005-06-14 19:06:26 +00:00
Patrick Caulfield
ca4e0c973a
Log an error if clvmd can't resolve a host name got from CCS
...
Fix potential spin loop in clvmd
2005-06-14 10:35:02 +00:00
Patrick Caulfield
8e526ba1bf
Don't defer closing of FDs in clvmd as it can cause trouble.
2005-06-13 10:16:21 +00:00
Patrick Caulfield
6c6165c9f5
Be a bit smarter about reading stuff from the sockets
2005-06-10 09:11:01 +00:00
Benjamin Marzinski
853460b20d
Timeout event implementation:
...
The daemon side of this is mostly the same as the patch I sent out. To select
a timeout period different than the default and to get the timeout period,
I added two library calls, dm_set_event_timeout() and dm_get_event_timeout().
If people are against them, the other option is to tack extra arguments onto
dm_regiser_for_event() and dm_get_registered_device(). I also added a
-t option to dmevent, so people can try out timeouts.
2005-06-09 18:40:49 +00:00
AJ Lewis
7bc04fbad3
Change the multilog code to toggle between async and sync writes for all
...
log types. This means the threaded_syslog type is no longer valid. A new
fxn multilog_async is available to toggle between the two modes. If an
app is compiled without pthreads and tries to use async logging, no logging
will occur while async is enabled.
dmeventd has been modified to use the new code
I'm not positive I like the way the async_logger code calls the log fxn,
but it works for now. Suggestions for other ways to do it would be helpful
2005-05-25 21:08:36 +00:00
Heinz Mauelshagen
f1060fc88e
Exit after last unregister_for_event()
2005-05-20 13:53:26 +00:00
AJ Lewis
88f9534685
o Changed the multilog API a bit (I warned you)
...
- multilog_add_type, multilog_del_type, multilog_custom, and
multilog_init_verbose all have different arguments.
- Primary change is that caller only passes in config info, and the
lib keeps track of state internally. No more exporting of
'struct log_data'.
- Custom callers now only get the custom data pointer passed into their
log fxn (that is set with multilog_custom)
- Added basic README that describes libmultilog
2005-05-09 18:44:35 +00:00
Benjamin Marzinski
45952cbdf2
oops. Those are char **'s not char *'s
2005-05-04 19:24:03 +00:00
Benjamin Marzinski
b355dd7b23
fixed dmevent so that it doesn't do a double free when you run
...
# dmevent -l
Also, changed the behaviour of dm_get_registered_device(), so that it doesn't
change the pointer you passed in without freeing the memory on a non-next call,
and doesn't free your pointer without setting it to NULL on a failed next call.
2005-05-04 18:53:28 +00:00
Heinz Mauelshagen
48a186f172
o libmultilog needs introducing of list locking in order to stand
...
multilog_add_type()/multilog_del_type cycles correctly.
o fixed segfault in multilog_add_type()
o fixed test-multilog.c
o cleaned up libmultilog (list macros, indentation, braces, comments)
2005-05-04 11:52:07 +00:00
Jonathan Earl Brassow
39dc7ec2ab
- make noop use multilog
...
- add event_nr to thread_status struct and set appropriately so that the
thread actually waits for an event
- essentially make error_detected return true. Let the DSOs determine
how to interpret the status info
2005-05-04 01:57:31 +00:00
AJ Lewis
2fedabd3b9
o stick multilog into the dm-event lib and dmeventd code again
...
o more tweaks to libmultilog calls - the api isn't set in stone yet, so
don't get too comfortable.
o not sure the dmeventd in device-mapper/dmeventd works - i've been using
the one in lib/event/
o currently both daemons are set to log only to syslog
2005-05-03 21:29:13 +00:00
Heinz Mauelshagen
40e896bc5b
working dm_get_registered_device(). dmevent.c update to use it.
2005-05-03 16:15:20 +00:00
Heinz Mauelshagen
3e940f80c7
more dm_get_registered_device() code
2005-05-03 13:50:42 +00:00
Benjamin Marzinski
dbf2888d43
dmeventd was looking for dsos with libdmeventd<name>.so
...
The Makefile turned noop.c into libdmeventnoop.so
The Makefile now turns noop.c into libdmeventdnoop.so
2005-05-02 19:34:25 +00:00
Benjamin Marzinski
d412355324
stopped printing a string after we erased the pointer to it.
2005-05-02 18:43:23 +00:00
Benjamin Marzinski
178732217f
removed the -lmultilog for now.
2005-05-02 18:42:07 +00:00
Benjamin Marzinski
de17b95c3d
get the makefile to clean up the .o's
2005-05-02 17:41:54 +00:00
Heinz Mauelshagen
d14e774525
Introduce exit() in main() and cleanup signal settings for parent/child
2005-05-02 11:02:19 +00:00
Benjamin Marzinski
ca5402a7fa
more variable initialization.
2005-04-29 22:12:09 +00:00
Heinz Mauelshagen
da36c286a6
o checking in instrumented code for AJ to follow up on comms and logging
...
o changed
int dm_get_next_registered_device(char **dso_name, char **device,
enum event_type *events);
to
int dm_get_registered_device(char **dso_name, char **device,
enum event_type *events, int next)
so that the daemon is able to retrive the next one of the list without
running into locking issues.
o changed dmevent.c to use dm_get_registered_device()
o couldn't test this yet because of the comms issues
(daemon exits in do_process_request())
2005-04-29 14:56:35 +00:00
Heinz Mauelshagen
d3901bcf2e
first changes to get comms back to work after flock changes
2005-04-29 13:41:25 +00:00
Heinz Mauelshagen
94c8d4fdfb
minor cleanup
2005-04-29 10:58:34 +00:00
AJ Lewis
ab8bdc18bb
o Build dmeventd against multilog
2005-04-28 22:47:52 +00:00
Alasdair Kergon
c9dcd7442a
build libdmeventnoop.so for testing
2005-04-28 17:32:27 +00:00
Alasdair Kergon
34c8f13346
test.c->dmevent.c
2005-04-28 14:49:41 +00:00
Alasdair Kergon
7a8ccda95c
o adds dm_get_next_registered_device() (not functional yet)
...
to retrieve which devices got registered with the daemon;
needs locking changes as well
2005-04-28 14:02:30 +00:00
Alasdair Kergon
44a1448542
Prototype for a device-mapper event-handling daemon.
2005-04-27 22:32:00 +00:00
Patrick Caulfield
901f7c5c36
Tidy clvmd's SIGHUP handler so it doesn't do all that work.
2005-04-19 10:36:42 +00:00
Patrick Caulfield
6102a5d2b0
Make clvmd work around some "limitations" in gulm's node state notifications.
...
Also make clvmd debuglog timestamps a little more helpful.
2005-04-13 13:50:07 +00:00
Patrick Caulfield
8c3fdaaa62
set SO_KEEPALIVE on sockets
2005-04-01 16:03:00 +00:00
Patrick Caulfield
5ac1c69710
Don't allow user operations to start until the lvm thread is fully up.
...
Hopefully finally nails bz#146056
2005-04-01 13:01:01 +00:00
Alasdair Kergon
701c05ce96
Tighten signal handlers.
2005-03-21 14:16:16 +00:00
Patrick Caulfield
b982232cc5
Don't take out the lvm_thread_lock at startup - it only protects the jobs list.
...
DEBUGLOG() message now print threadid rather than PID which is more useful.
2005-03-09 14:08:11 +00:00
Patrick Caulfield
6a0dcd7f0e
make clvmd FDs close-on-exec, to avoid warnings when running lvm via popen.
...
clvmd-gulm unlocks VG & orphan locks at startup in case they are stale.
clvmd-gulm now unlocks VG & orphan locks if client dies.
2005-03-07 17:03:44 +00:00
Patrick Caulfield
7c89ae44a9
Fix clvmd-gulm node up/down code so it actually works.
...
clvmd-gulm now releases locks when shut down.
2005-02-22 16:26:21 +00:00
Patrick Caulfield
84fe06da22
./configure --enable-debug now enables debugging code in clvmd
2005-02-21 15:58:06 +00:00
Patrick Caulfield
806318c8b3
Always manipulate both locks in sync_lock() otherwise they get left
...
hanging around and cause trouble.
2005-02-21 14:36:09 +00:00
Patrick Caulfield
6dba6cd78d
Cope with more than one message arriving at the TCP socket, also
...
fix some instances where the length in the message was wrong (cman
code didn't notice this because it is packet-based comms anyway)
2005-02-18 15:31:32 +00:00
Patrick Caulfield
502250d08f
Fix gulm->errno error number conversion.
2005-02-17 12:56:19 +00:00
Patrick Caulfield
7395f0e680
Make config check a little more tolerant of library names.
2005-02-14 09:07:14 +00:00
Patrick Caulfield
522db1bf01
Fix thread shutdown race which could cause clvmd to hang in pthread_join.
2005-02-08 09:05:58 +00:00
Patrick Caulfield
06f066f90d
Revert last clvmd patch. More testing reveals that this just doesn't
...
work yet.
2005-02-07 14:45:38 +00:00
Patrick Caulfield
f37b20677b
Make clvmd use the command library rather than popen() to
...
preload the lock state.
2005-02-07 10:04:27 +00:00
Patrick Caulfield
4c80cc313a
Make clvmd do a quick sanity check on the clustering bits of lvm.conf
2005-02-02 11:42:29 +00:00
Patrick Caulfield
1c65fee9b4
Get rid of "connection refused" message because Corey doesn't like it.
2005-02-02 09:17:56 +00:00
Patrick Caulfield
150a002c40
Don't print CMAN error if initial probe fails - we could be running with GULM.
2005-01-26 09:30:52 +00:00
Patrick Caulfield
ce0def3bd8
Remove superflous &
...
Gulm clvmd no longer hangs trying to talk to a rebooted node.
2005-01-25 16:46:29 +00:00
Patrick Caulfield
ee20fa97c2
Make clvmd announce it's startup and cluster connection in syslog.
2005-01-24 15:31:13 +00:00
Patrick Caulfield
92e2a257a6
Get rid of libclvm as it's out-of-date and not used at all.
2005-01-21 11:56:30 +00:00
Patrick Caulfield
32e175752c
Fix clvmd startup bug introduced in cman/gulm amalgamation. bz#145729
...
Improve reporting of node-specific locking errors so you'll get
somthing a little more helpfiul than "host is down" - it will now tell
you /which/ host it thinks is down.
2005-01-21 11:35:24 +00:00
Alasdair Kergon
fdc49402ec
fix clvmd lv_info_by_lvid open_count
2005-01-19 18:10:09 +00:00
Patrick Caulfield
5529aec0d6
You can now build clvmd with cman & gulm support in the same binary.
...
./configure --with-clvmd
wil do this by default. Or you can choose which you want with
./configure --with-clvmd=gulm or
./configure --with-clvmd=cman
When clvmd with both included is run, it will automatically detect the cluster
manager in use.
2005-01-13 13:24:02 +00:00
Patrick Caulfield
8b170dc2bf
Fix off-by-one error in cluster_locking that could case read hangs.
2005-01-07 14:22:49 +00:00
Patrick Caulfield
b131449422
Some more gulm fixes from "Mr gulm" himself.
2005-01-06 11:48:25 +00:00
Patrick Caulfield
86046445ed
Improve clvmd failure message if it's already running.
...
Allow user to kill clvmd during initialisation.
2005-01-05 14:41:54 +00:00
Patrick Caulfield
baea9bf944
Typo in "for" caused first node in ccs to be ignored.
2005-01-04 15:11:34 +00:00
Patrick Caulfield
0951ee9e63
Use new CCS key names for nodes in the GULM version of clvmd.
...
based on a patch from Mike Tilstra
2005-01-04 11:48:10 +00:00
Alasdair Kergon
6f4e93dc90
Configure/makefile tidy.
2004-11-26 18:07:17 +00:00
Patrick Caulfield
2affe53727
Tidy the socket callbacks so that all the work is done outside the
...
main loop.
2004-11-16 10:55:01 +00:00
Patrick Caulfield
20f3408d96
Report detailed errors in cluster initialisation to syslog, and point the user
...
at syslog if clvmd fails to intialise.
2004-11-11 14:51:23 +00:00
Patrick Caulfield
e9d86789db
Can now build a gulm version of clvmd instead of a cman one. use
...
./configure --with-clvmd=gulm
The default is still cman, and you can't have both - sorry.
2004-11-03 10:45:07 +00:00
Patrick Caulfield
d48f8bf5cc
Make clvmd -V display the lvm version number too rather than just
...
the protocol version (which is not that useful and doesn't change very often).
2004-10-06 12:36:47 +00:00
Patrick Caulfield
99d97754a6
Revert the fork back to where it was as it seems to confuse pthreads.
...
Instead, the parent now waits for the daemon to signal that it has
completed successfully (or not) so it can return status to the user.
2004-10-06 10:12:34 +00:00
Patrick Caulfield
b9d437de2a
Change some perror() calls to log_error() so they'll appear in
...
syslog when we're a daemon.
2004-10-06 10:02:25 +00:00
Patrick Caulfield
11403f2019
Check the UUID length when readingthe output of the "lvs" command at startup.
...
This way we should not get quite so confused by any debugging output
that may come our way.
2004-10-04 09:23:52 +00:00
Patrick Caulfield
14ae59885a
Make clvmd cope with large gaps in nodeIDs
2004-09-30 14:18:29 +00:00
Patrick Caulfield
e3ef54f99b
Fork a little later in the startup sequence so that we can return
...
an error code if the cluster infrastructure isn't there.
2004-09-30 14:16:28 +00:00
Patrick Caulfield
6533aa865a
Keep client locks (VG locks usually) in their own hash table so
...
we can actually have more then one of them per client.
2004-09-24 09:39:57 +00:00
Patrick Caulfield
953f4838dd
Make the thread handling a little less cavalier. In particular, calling
...
pthread_exit in a signal handler was a /really/ bad idea.
2004-09-23 12:51:56 +00:00
Patrick Caulfield
130b892d34
Don't use hold_lock for VG locks as that doesn't stop processes contending
...
on the same node, only across the cluster.
2004-09-23 12:29:35 +00:00
Patrick Caulfield
d0ca74ad27
Put some locking round the LV hash table as it could be accessed by
...
different threads concurrently.
2004-09-22 12:10:34 +00:00
Alasdair Kergon
c65d95bf29
Cluster-extension-only installation.
2004-08-18 18:57:40 +00:00
Patrick Caulfield
3527fcf1d5
Updated file from cman.
2004-08-18 16:04:35 +00:00
Alasdair Kergon
20c0adb961
Fix LD_FLAGS->LDFLAGS. LD_DEPS->LDDEPS.
...
Update configure script: add --disable-selinux & some missing messages.
2004-06-28 14:01:24 +00:00
Patrick Caulfield
a01e03562f
Make sure errors reach syslog().
2004-06-28 10:26:42 +00:00
Alasdair Kergon
858a2b1b88
Add cluster support.
2004-06-24 08:02:38 +00:00