Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Am Dienstag, 9. Mai 2006 16:10 schrieb Christopher Boumenot: > Greetings, > > This patch fixes the way drbdadm verifies IP address. Instead of > exec'ing a bash process to determine if the address is valid it opens a > socket to the kernel, enumerates the interfaces, and verifies if they > are correct. This was done to avoid the error message "Child process > does not terminate." This was frequently seen when making long process > chains or calling drbdadm from an ssh session. > > $ drbdadm state all | sort | grep -v Primary etc, etc > $ ssh host drbdadm state all > > I've removed the code for verifying routing information. This can be > done by opening a socket to the kernel as well, but I didn't write the > code. If someone has a default route this will always succeed, and I > have to believe 99.9% have a default route configured. If there's a > real need I can add the code. > > The majority of this code was taken from Steven's book "UNIX Network > Programming," so he deserves all of the real credit. > > I've tested the patch in our environment, and it works well, but it > still needs more testing. > Hi Christopher , Thank you very much! I think making the programs more self contained is the right way.. . > This patch doesn't completely address "Child process does not terminate" > because drbdadm calls drbdsetup. Besides this problem the return code > of drbdsetup is discarded by drbdadm which would be useful. Is there a > reason these two programs are separate? The basic idea is to have more smaller tools (drbdadm, drbdsetup, drbdmeta) and each does the job it is designed for... Of course in the course of the development a few things went wrong, like drbdadm discarding drbdsetup return values... etc. But I rather think that this is an implementation bug that should be fixed, rather than making a big program our of the three small ones. (each by itself complex enough. * There is a plan to have multiple version of drbdsetup around, e.g. each carrying the version number of the IOCTL interface in it's name. drbdsetsetup_api_80 ... and a symlink * drbdadm is our way of storing DRBD's configuration in a file. E.g. The http://www.linuxha.net stuff completely ignores drbdadm and does everything by calling drbdsetup. Christopher, currently I am running out of time. I strongly consider to apply your patch to SVN, but it will probably happen in the week from 22nd of May. Before committing it I want to read it, understand it and test it a bit... -Philipp -- : Dipl-Ing Philipp Reisner Tel +43-1-8178292-50 : : LINBIT Information Technologies GmbH Fax +43-1-8178292-82 : : Schönbrunnerstr 244, 1120 Vienna, Austria http://www.linbit.com :