[SCM] CTDB repository - branch master updated - d5eaddff89ab3a5f75b2db7708ebbce5a0d213a5

Andrew Tridgell tridge at samba.org
Wed Feb 3 20:47:31 MST 2010


The branch, master has been updated
       via  d5eaddff89ab3a5f75b2db7708ebbce5a0d213a5 (commit)
       via  4232cfcbb730b9af2b693a518000693b7b4de90d (commit)
       via  4274e07ed22f63c473d484a8d9345473b0aa9afd (commit)
       via  c3eec8f10764a647106087099eeb47b7196f7aac (commit)
       via  59ba5d7f80e0465e5076533374fb9ee862ed7bb6 (commit)
       via  8c89aac20260dc7f3746e29fe99f17422a77cb88 (commit)
       via  eae1d4f9e52e73b4d8769868fffdafa590d03784 (commit)
       via  898b5edfe757cb145960b8f3631029bfd5592119 (commit)
       via  522fbb012524fe41a67dbe43589a282dda6bcbe2 (commit)
       via  60aa570aaa77d293b963105b3f605f9625a4594b (commit)
       via  503e4908b3028330bc25dc6de8561dbd53ee6a8d (commit)
       via  3bab985cf615720eded4d47b4f9f37a9c28840aa (commit)
       via  0e41a2204fa8a1e77dc83c0d4b253ab272b5c72d (commit)
       via  48e0af91113d6cead6cae3f28d8d8f610cacaa71 (commit)
       via  2f44d6f3d290cc1b37b19ec34edfbad12cc0c0a7 (commit)
       via  f5c221e6abc118aefa489aa7e07755af952fd2bb (commit)
       via  6c456face30606641f6b8beaad3121c9b05ca763 (commit)
       via  7bc9969c4c28f2c4a4848bd730db3c63bb9204fe (commit)
       via  72ef5f891f85ce51f5ca7e0c03d0c7cc955be110 (commit)
       via  eded224368dded2264e53546c196b1b485cb2094 (commit)
       via  8fd6f4aab0c173b4c9c4c02c546e7d2ec1a98423 (commit)
       via  ec87a51660cfa8a6851923f757fed31f7ffc7153 (commit)
       via  829150e814a5e6c85d0f21421f46f41e81d74c53 (commit)
       via  a5cdf1277387f8c6292153c37fa9ceb64707d04f (commit)
       via  712ed0c4c0bff1be9e96a54b62512787a4aa6259 (commit)
       via  d054eb33c6ae92560cddb40732e5dcf622591a3c (commit)
       via  f872e8c63a2f8979e6a0d088630575bdd4d7b4f1 (commit)
       via  615dec051c26aac628f120e96bf12fb39fc6d28a (commit)
       via  c465f63585c419ba59a6b04cbbf78ae615a7259d (commit)
       via  b5ba56dea57db97d6c6ba3e7582e74fe0e3041fc (commit)
       via  965a65520693e3731b5b0250127b04c777087808 (commit)
       via  10bc087d0280057962177721bdd6d4f28743b311 (commit)
       via  38cb972382a09f830673277d0a9bd5d20deafff2 (commit)
       via  dffa2b05acce8b73c2fdd085311732bf57f01b7f (commit)
       via  c24fbea156dfdc9154e94eace725526e44cbcdac (commit)
       via  27bde04966e22975777b4034dbaccfe158369110 (commit)
       via  e05e236fc019bfd3b316609a7c190e0e028a4bbc (commit)
       via  8d0c00b60db69bd10f12da4c676e1142dc37af7a (commit)
       via  80053d09eed967fb76898f4a53437bed2b43a02f (commit)
       via  cff58b27c970e9252d131125941c372019fd6660 (commit)
       via  0e982a416a126d9856145c19baef320cd0e71d66 (commit)
       via  486fbd15f4cc4f45a4c110b2ddbba48bade22c9f (commit)
       via  e2d6582001be28c1800e4da8b0f2dc541538c314 (commit)
       via  a21e3765dd83e837d93111f387448bf0a5dd4652 (commit)
       via  4efab41dfa61d5c7951c583d584df3455ee9c704 (commit)
       via  a2c9e4578e149eccb2c6183f64a6b657eb95c5e1 (commit)
       via  a695a38e49e7c3e15a9706392dc920eeab1f11ba (commit)
       via  09a5c59bc8d1301edf60d7ae77504dc6d11a7da2 (commit)
       via  6bd780510058e5589f2f7c3722d37acbba4935ab (commit)
       via  91122c322fbec08138b92c528d9a946f6727b4fd (commit)
       via  ff5291778f0752e176539397e9530dcf0e546bea (commit)
       via  080ba5ac2195fb73ef6f18740abdde57a7b97151 (commit)
       via  f9837f8b6f887d28f29aeb3eeffe8cfb423b40b4 (commit)
       via  33a00ef7233051acdbc66410130ec5d876a8422f (commit)
       via  9e5532e215892b2e0aadd9b106a730727f92c62e (commit)
       via  400b4806c4a9686a2ee6398b5d7c3e0ca0793fd1 (commit)
       via  ff5678fbec2daef461143acf00cef3f94d7655fc (commit)
       via  ff9c641763702ae99632bbf4d0825d578440c074 (commit)
       via  e02417b2a55c45ac2c125b1b3463c9c39e7bc07a (commit)
       via  24cd42769d8f32b90a8876a6a08a36ab23076cd1 (commit)
       via  2397f13d7b5ca3847ef148187c6b179d06f6a47a (commit)
       via  e953808449c102258abb6cba6f4abf486dda3b82 (commit)
       via  37d11895e96ba8bc8c9ba159083970c45f76d9bb (commit)
       via  e366e77ba170d2c27110c56004ae1adf97abef9e (commit)
       via  8171d66f0061fe23ed6dfef87ffe63bfc19596eb (commit)
       via  9d39ada437b02d84b70a5fea78b61bbb32f16d81 (commit)
       via  4b4dd5d7f81bf226e05c7f3d40087043da1517a2 (commit)
       via  18af37e99ef8ff5623161495be432abfe5e3407f (commit)
       via  898894d3acbcc0add2ab0706a3172a446622f687 (commit)
       via  49f0488a5e60c74b6b8361dffcd09ebb2db740f0 (commit)
       via  085d1bea78fabf754ef6dd6d323f74a1d361e45c (commit)
       via  037e64e1900f09e699d5fce50df2850f26f47f91 (commit)
       via  c79c2da69bc352f509e7fca4b9172a4b7f23c0f8 (commit)
       via  4bcb07c412260147cd926452287885d05b2344c1 (commit)
       via  4cc9c79bfced9efa0d3817021512c86ed2fa3516 (commit)
       via  608e0765130aa9bca0aa77db5a888c413867a3fd (commit)
       via  acb98c36a3d56fa6b34747015b913ada3eaa133f (commit)
       via  64ae8b0702cfdc44a778e0cc3705dd685f9f6ab0 (commit)
       via  b70021856e76df1ba407c83cfc19bf332fbfc869 (commit)
       via  178f429a7b6d1008d35e857b6ca1df6adb60d255 (commit)
       via  bb9fc8b4388848863fa2b8735bd77eb07b7b5849 (commit)
       via  484ae893f2179bebd0e2a2efe5f9619a39e48227 (commit)
       via  eb22c34bccc8a04fcf63efa2bc48d9788709382e (commit)
       via  2c84fe393ff2b961abf77d58a371c24db5ecb93b (commit)
       via  82e1c5231c389bea935328a08ecf9b0b3a3979ef (commit)
       via  d9105ea79df198a20c2bfe471c4793d1dbba886e (commit)
       via  f319bd54369a2bc7d32c3bda7fc22f2ef1a51c3a (commit)
       via  859e18db681dabe0990793d03f58e59a061aa8bb (commit)
       via  843a2ed5ef85f628788b0caf7417c6b61b5c6d3f (commit)
       via  7101ae80bf4e530f48e31e4c58707aa45a9fd3d5 (commit)
       via  140070dd81b39545fe2d56f70e9b9c96bfdae07f (commit)
       via  99894a70fe2ebfe43daae7e88ff0fc9cab33e0fb (commit)
       via  5d50f0e16948d18009f6623f132113f7273efc7f (commit)
       via  b4365045797f520a7914afdb69ebd1a8dacfa0d9 (commit)
       via  82f778e85440bc713d3f87c08ddc955d3cfce926 (commit)
       via  482c302d46e2162d0cf552f8456bc49573ae729d (commit)
       via  2ee86cc1f311d7b7504c7b14d142b9c4f6f4b469 (commit)
       via  82421f20dcad4b0e25f109583879a26c0ee9c465 (commit)
       via  1717836f4f36c4e2b6bd82b6b78e2325b2a458ab (commit)
       via  e3825407a509110c786d618efcdfa56ba93380a5 (commit)
       via  0d1300aa2325c94d8fb1c3cf8d454e5eee43dde9 (commit)
       via  33ec6943fb2d01b6df0ce4515d37c671b18d237f (commit)
       via  9b4c76973a8cf03ddc1a9b3777a350f739c00892 (commit)
       via  a90f3dd25a22f9b8777ff6946ce1721859e9479a (commit)
       via  bf48ae41ef5fb8e4675be448d13db522465d8d72 (commit)
       via  8e6b8be51fd1bda789675650a94df0115ee9e238 (commit)
       via  c09acd0896089a612ee3a1e78711abd98bd9cc99 (commit)
       via  3cdb8be02acc23074c8137a54faea62fee4567a0 (commit)
       via  fce390194dadb4961b46c706a1826442eef8c63d (commit)
       via  fc5f556d488488040303438aefecb5ae2a8e54bc (commit)
       via  52e6d81f4d8a4035272d9256d01bafb8ed593027 (commit)
       via  504cf78d00d1120b556124340b9312f890b8b8b9 (commit)
       via  45cfcd44093c7d2681e2ffd5cfb402823e8809f4 (commit)
       via  ecf799093c1989f5499c9d61ce8cc8a98d759160 (commit)
       via  c63a0368d9d4b526ac1e49d891d3a1b7b8d20320 (commit)
       via  1cdc8dbb9cb971cf6dd6cd22b1adaf70ddc77e65 (commit)
       via  d1b10b0c0c323c39742a18e98a1dab7e82ddc7be (commit)
       via  910c19f12448d293a755d1eb46d20f9591f8da7a (commit)
       via  c34535ff4dc6a44909283641596e0ed7c2316fbd (commit)
       via  5abe44d0113839d3a45c9a31d30856aa70c2ea1f (commit)
       via  7332d900538f0cbcd953a723417a0fe31dc9807c (commit)
       via  15f133d5150ed1badb4fef7d644f10cd08a25cb5 (commit)
       via  d874463235fa299e83fe562291c688aca3b85cf3 (commit)
       via  49d2dca9ad837e1b397294fb0e966bf0b77f751c (commit)
       via  cbda4666be88c11a810a192a70667b57f773ace1 (commit)
       via  21677ed6fb8c589f348321533c608cad58c4ec93 (commit)
       via  1db17f312558fe59983a3465680e56c9f0c19e36 (commit)
       via  92e05282d6c4f16e55d914cc3bde3738ea2d44ad (commit)
       via  f30f33685db50860b6cd6fd1b6bdc3066620a78f (commit)
       via  656a6ec5ed81ccfbb86144156a3158e48f105ee4 (commit)
       via  6529a1328b9ec304ad306674651b2a67e4426e23 (commit)
       via  10d95581fb90bfdf58ec32345c4e36c27acf4f37 (commit)
       via  1635e931b909c66eb3b1f5357e3a549b1a0da70d (commit)
       via  093f57a2c00f2d629a3b58e58202f1a7e1bbd406 (commit)
       via  d1873bd81bfc9f486b88f3a38c65c7de8f5a0909 (commit)
       via  04aeac728f56c65b973762f09977de1b1b99099e (commit)
       via  c1c0ede32dc00ed619d1cf5fda40a9de43995f3a (commit)
       via  855391c1e37012b0d6c673a304bb8da8a1efcd72 (commit)
       via  6126f04bd4982b66564dcccd92a15baf9cb856f3 (commit)
       via  7a88f1df9190674deaf5dcbedad02ae4120a5263 (commit)
       via  03372b4ea8ba2938468a5c0fc234d604966ce070 (commit)
       via  f5c992bdaeb73ef726ff4728a9922721474cd6f5 (commit)
       via  76aacdd8e1106f26565e25903091a757b59cd7e2 (commit)
       via  470750fa2e3cf987f10de48451b1ee13aab03907 (commit)
       via  03b3682e3fa53c9f5fdf2c4beac8b5d030fd2630 (commit)
       via  6ac7ef8bf4d384f880c7f483ace70f8e08c15a8b (commit)
       via  df1a3ce0380fa9d8722b2f9b16f65557095e4c83 (commit)
       via  27611d6a0c313732e438cb24c82b9de126e50156 (commit)
       via  1d5c5a221c28f1dc652a80ed516a0f18ba588d9f (commit)
       via  c40d14b1b7ba7c9ae40c0306a2e552504e0f92a6 (commit)
       via  5652e403be099f35cdd29fda8ba4fe2c35de8035 (commit)
       via  da47169c4d3bc1b446b49610d892df05638e912c (commit)
       via  4130c5dd10869b071124e2bf04d6807bbb11ab1f (commit)
       via  e7242221c3318a5c312e17ff4074bef80b639ca8 (commit)
       via  52f78e040749d24058ee1f575d949b57d15f5987 (commit)
       via  3a671b11770057c91e0ae646499d4714f52bc5c0 (commit)
       via  2231ee0aa163d68383dd9636f25f033fe7c1f3e7 (commit)
       via  363c34d4bb488609317794cd3153d85c12643110 (commit)
       via  236dc2fa29b3c0caec51859dbd469f0a13f5917e (commit)
       via  5aa0ab328c36ecd4d7ec03f921e6027340c2ef13 (commit)
       via  b02bf7659f04f1fa203834bd75a2392b48e56c16 (commit)
       via  5d4cc4b018a538dc3f1d79fe091f3e6e67003daf (commit)
       via  923b61fe722c0aec8a5b6ac8dd1df74957dc102b (commit)
       via  cd23d36ada9631095ca68663516de0c8d8c3bbed (commit)
       via  3d44412593b8748a5158e15b83cd9eb548231194 (commit)
       via  f7278a277ed91587cae5b5e3660dad7124bdb73f (commit)
       via  a6620f6e74aadc708395b21b42303d1082192fcc (commit)
       via  b01b756cb577f32a1ec4597efb00017241e01685 (commit)
       via  43c97b259b19c42b4edc7f83dbfc5e486568b4e3 (commit)
       via  c1b8d32b4ef87b9d8f37b451f47fcee2ea753d21 (commit)
       via  e4d49c182e12c2d429d0414209cc2c8ccc19dc91 (commit)
       via  94f5728a77b8c772fb16c4744c24b45de8016e52 (commit)
       via  5830a2427b84e1cce74390b58fe12c45b5a056a6 (commit)
       via  463279c972fa4538919bdd1dff48ca6b2fb8d49c (commit)
       via  35a5b874b925380f7c227e47aebb590c9db4739e (commit)
       via  dc287a7d7420cca0b104049e689a73202bc535f8 (commit)
       via  02b35ba77672727c96ad004be37c7f6f1d3fe474 (commit)
       via  5ef5ddb8369e5e76173285fe9a08498dc8dc73ab (commit)
       via  ef1dc585d869a9e48164cd65bafc92c1da245007 (commit)
       via  0ae735b7a2096a40e5e47086ec41d9d45ef6d36b (commit)
       via  2e69647404c87c438ae7c180277ac3b532941efd (commit)
       via  37225f1ed3f70d7259c2af2c51c671105c34476a (commit)
       via  66fffa577e051212ac7541be906b6c80f4a7c0c9 (commit)
       via  310d673b7cb9000d76437d78e43bc2bf133e4e14 (commit)
       via  f70e371d70e334a7254649b2bb09aa382e6f09bb (commit)
       via  9d5015e6fc68d3eb9e7b7178dbaf8c129dc79471 (commit)
       via  efa4a795db7fb2bddaab3969850d1554fc5f4da1 (commit)
       via  724d71dc838750fff91a45359feeb6e71bf0a4c7 (commit)
       via  141422d9dc24b15b7b8bc7831adab90367a729f7 (commit)
       via  aed864dceaf6ec1e6e6066a587c708b485901200 (commit)
       via  eebd467961dad6cfb38c2a5d6e4b4dbf86e55e63 (commit)
       via  6f8614de0f20d4c507aecd744d9c3f6545078127 (commit)
       via  2d768f664e6db65b3b7e0c732f33ee2b806892f9 (commit)
       via  b883d19a495a41a22db37f9c2cf6250fee529de0 (commit)
       via  b765e12a5fb87a6121e49b349017b6a961929346 (commit)
       via  6ed34d5320c39d8a55f2a36ad4c1ab574e0b0796 (commit)
       via  bcf494b81f4277dc75f05faccf0c446bd15f6e2b (commit)
       via  3d2d877d877146ca09a28a3a44f4840eb36fd377 (commit)
       via  ac06a0e042e7d024060d6e87a49bda9ccc072c52 (commit)
       via  24767be2eb9aed29704c2a4097bab5466cb6728f (commit)
       via  340be0179f55acfff77f8c3c8be958679227bde1 (commit)
       via  ea9e39369379939abf6a4076fa2014c10c1a9ad0 (commit)
       via  211ea7907e8e96041aa6f7d086551d64d065a8a3 (commit)
       via  5c8e56fc7a518e115bceac257867739283cf6a1e (commit)
       via  401f421fa003d9515df15e759b50b56e0c67d69c (commit)
       via  1b4e7bb548976b99f122142b040494b6f9911962 (commit)
       via  0ea0e27d93398df997d3df9d8bf112358af3a4a5 (commit)
       via  68a8ee99b128a5ec883600735626bdb3bbc9c503 (commit)
       via  c5a0aef668a63f927d6184612b13ce316eb4a0be (commit)
       via  5736e17c139c9a8049e235429aeae0c6c9d0e93d (commit)
       via  844aa6300ee4d87561e698001ebc15ac1e455528 (commit)
       via  78ca29352aa39f4ef4e41096b92d55cb2e0d348a (commit)
       via  a7e3b5fac6b3f5d74473f26eb86c067b35647996 (commit)
       via  4b1dbcf0853bdc4832d39a477823ae34f216da52 (commit)
       via  1640da1cab7e8b545367824204c82931f3346848 (commit)
       via  6af5e74a21546d723008d69d6752ebebf898c947 (commit)
       via  f66428f9d2013080a414404c1ba6117888352fd6 (commit)
       via  af6656f2844d8fd72204a70358c9d589dbe1bd34 (commit)
       via  59f46d7261dfdbdef900bf95dd9eb28ad22a46b2 (commit)
       via  b022863d44026c19d5aae54aa485b670bea0540e (commit)
       via  9ac82311d796e1fab31f8de62b8ccc754445093c (commit)
       via  2ff2679e8f3d50ebf735f2c420898a84268bdc95 (commit)
       via  c13077ca64f6e6569c30ef7fcb044e5711dce1a3 (commit)
       via  c46adb210e47530488503e20d682d4d182c0fb79 (commit)
       via  54d227811753f4a87f1a2c9dc0b1389f5ca2a12f (commit)
       via  7f64a00c76203fdf6673c3f862a4bfd17fb848d7 (commit)
       via  a78b8ea7168e5fdb2d62379ad3112008b2748576 (commit)
       via  142111983c103e90ccccbe26fd580c4eb28e949f (commit)
       via  dccb549fd6a6e338063699544e52f2a1a6a966b5 (commit)
       via  6e8b279ed307eccac08386e98510361ba3ab3d36 (commit)
       via  8cc6c5de3d7abb0b72eaa6e769e70963b02d84cb (commit)
       via  03b5bbaae1b53830a4cd20d3079ab8f45ffce923 (commit)
       via  7b73834ba3ac197cc8a3020c111f9bb2c567e70b (commit)
       via  9b90d671581e390e2892d3a68f3ca98d58bef4df (commit)
       via  53bc5ca23ca55a3ac63a440051f16716944a2a51 (commit)
       via  93153bca68926401dc9ae7fd77ed3f17be923344 (commit)
       via  47ffe75848f216568ce3db0a60ca88cfe3d6903a (commit)
       via  c1ba1392fe52762960e896ace0aca0ee4faa94d5 (commit)
       via  c73ea56275d4be76f7ed983d7565b20237dbdce3 (commit)
       via  4cf1b7c32bcf7e4b65aec1fa7ee1a4b162cac889 (commit)
       via  fd2f04554e604bc421806be96b987e601473a9b8 (commit)
       via  f5cb41ecf3fa986b8af243e8546eb3b985cd902a (commit)
       via  e9661b383e0c50b9e3d114b7434dfe601aff5744 (commit)
       via  76e8bdc11b953398ce8850de57aa51f30cb46bff (commit)
       via  c476c81f3e3d8fc62f2e53d82fce5774044ee9ce (commit)
       via  b2a300768536d10bd867a987ad4cf1c5268c44bc (commit)
       via  32cfdc3aec34272612f43a3588e4cabed9c85b68 (commit)
       via  497766cf186442de00fb324343150442457be858 (commit)
       via  391926a87a7af73840f10bb314c0a2f951a0854c (commit)
       via  814704a3286756d40c2a6c508c1c0b77fa711891 (commit)
       via  0fafdcb8d3532a05846abaa5805b2e2f3cee8f47 (commit)
       via  020fd21e0905e7f11400f6537988645987f2bb32 (commit)
       via  9a2b4f6b17e54685f878d75bad27aa5090b4571f (commit)
       via  0d925e6f2767691fa561f15bbb857a2aec531143 (commit)
       via  bfee777faff75e9bed4aedc1558957483616a6d3 (commit)
       via  816b9177f51ae5b21b92ff4a404f548fe9723c96 (commit)
       via  e6488c0e05bab5c4c2c0a6370930b0b27e5ed56e (commit)
       via  9ecee127e19a9e7cae114a66f3514ee7a75276c5 (commit)
       via  a305cb7743c24386e464f6b2efab7e2108bb1e7e (commit)
       via  024386931bda9757079f206238ae09bae4de6ea2 (commit)
       via  1269458547795c90d544371332ba1de68df29548 (commit)
       via  ec36ced9446da7e3bf866466d265ee8e18f606c1 (commit)
       via  5d894e1ae5228df6bbe4fc305ccba19803fa3798 (commit)
       via  eadf5e44ef97d7703a7d3bce0e7ea0f21cb11f14 (commit)
       via  0a53d6b5ac81daf0efa32f35e7758ede2a5bdb63 (commit)
       via  8ddb97040842375daf378cbb5816d0c2b031fa65 (commit)
       via  76a0ca77feba14e1e1162c195ffbdf516e62aa4d (commit)
       via  0eb1d0aa14e68b598d9e281c8a02b8f94a042fd9 (commit)
       via  6be931266a4e41fd0253f760936ad9707dd97c47 (commit)
       via  fff280878e670e93a818c0071f3172056214e8c4 (commit)
       via  7c95e56ba871a4e0cb893a5cb5d821e7ff6e6dd6 (commit)
       via  b796d736946856abfbe53de95dfcd73072ee8ccd (commit)
       via  d971b2ca84c0451dc7e5acbf4a5ade06270a2044 (commit)
       via  59faf3f923a5989b5ee94ef02a12827412775bae (commit)
       via  c23d804165e84bdf95ba960c953c736d361011d7 (commit)
       via  428914377851a98b3fc893798783fbfebffc1c0d (commit)
       via  03a5bb727b9db1ba952632f08ceb5355f0df842d (commit)
       via  8aef46d2aab3efb322dda51eaa202653cefd5222 (commit)
       via  e5496a83ef4a01604195b27c4b97f50d4979510e (commit)
       via  fe68972eb9cf3aa1f16ba1aacf57ade5d66e647c (commit)
       via  90abc4ac7c16e854cf6e8f96b60a77bc92e35e07 (commit)
       via  4113385865f53a57b18ea752a7dad8a08bed588e (commit)
       via  b9882710e12f28c96a0af298e419160f00578241 (commit)
       via  574702f8d701fe3e493b31948420b2981eb36f93 (commit)
       via  41aa9bdfa2934f564bdc14374362437dfad0045f (commit)
       via  5a7c1e7f15693522bbf1c39a53be2304ece9a134 (commit)
       via  0e130d79ab71cf3aa65c40af91866823246a0283 (commit)
       via  5fc297a6bd49d9366703eef3edb9bdf0fe8505cc (commit)
       via  cc99c05c0c6484ad574039a454e6133852cb41fa (commit)
       via  c5cbb95512f034abeec515579983bf7ac55eadd9 (commit)
       via  0a0526e03ef995b6b6634f5b75c7a17cb7b5df8f (commit)
       via  17fa252d0d6981fbae8083a818f26d5ce9c5102e (commit)
       via  2027cf3881ba890648c543bacbfd5b06464efc10 (commit)
       via  de9e5236b20d70eac5ed29991703d6d25a103963 (commit)
       via  157807af72ed4f7314afbc9c19756f9787b92c15 (commit)
       via  f75d379377f5d4abbff2576ddc5d58d91dc53bf4 (commit)
       via  b4a7efa7e53e060a91dea0e8e57b116e2aeacebf (commit)
       via  22f00368b4cb3a6bfb92033a7dbe693d31b41a54 (commit)
       via  4d0523dd94fb07e860b3e8118691f93d1ef8d0fa (commit)
       via  b5a21fd39269a6e2a9d1c8182dd42a1773ccbb3f (commit)
       via  9ea261f791ab919eb1ce5b37073b4f1d30694bb8 (commit)
       via  83e7c161efa93cd7acdfc803142b4fb3bfde7538 (commit)
       via  bc8aee079e09164e06533a1474f5e9d899795933 (commit)
       via  bb8d02abd88899d259085b9b23fa52accb222be9 (commit)
       via  4c6e68ae942c05224c5f8b683fbc2dc1adced8ee (commit)
       via  3d55408cbbb3bb71670b80f3dad5639ea0be5b5b (commit)
       via  4f50aa8bb8be544058523f2f544109a26c2b3b51 (commit)
       via  821333afb458358f90446062b0242790695e5060 (commit)
       via  e9b3477a5b9a2eff18f727e7d59338bfb5214793 (commit)
       via  a1f37fdc5217e57d2d643d77a811afca747685e0 (commit)
       via  16db4882635d84b8410a77e2ea8b08d0a257b0ab (commit)
       via  50c2caed57c0520f506eaaeeb0bba2c272da6ef6 (commit)
       via  937823cc73eb098230acff4b1583f6d01f26c21a (commit)
       via  0e6c06ac38fd82adf124d111717502055501974a (commit)
       via  c278c798d41a35f58ca81f8f0e08e4dab51eba9b (commit)
       via  28d0648725e7de4e4d0e8569e3fbfb0fa1d7f934 (commit)
       via  143f1fa3cc4588505e3992c601153ea08be8432d (commit)
       via  a1d654a982ca56fade82552f4e6b5586236d3233 (commit)
       via  d3e7407dc9854ec358d081777c5450ec68b17862 (commit)
       via  12b187f971d857353403393a9850503e0e558672 (commit)
       via  a2830594ebeb54eb51ff90999cb12370aeec6e8b (commit)
       via  517e9d9b188b18dffc712a8fecddb41540d27b8d (commit)
       via  5d97c07be13a8209a81dfc8f73e49371949e4dc3 (commit)
       via  3c93336ab92c2e4829ff4dc360045bfa6df21d50 (commit)
       via  862526e558099fad4c8259cb88da9b776aa7f80d (commit)
       via  1d24a3869fe89fc9a109fd9e9b69df5fc665a5f6 (commit)
       via  10a3680fb3917ecafc824e73872eace321026172 (commit)
       via  2e60749de3714239224cc04170a9aeeee158153f (commit)
       via  66b22980b14601f29fe8cc64bd8f29883c7ca1c0 (commit)
       via  83b7b233cb4707e826f6ba260bd630c8bc8f1e76 (commit)
       via  a6d353519932eee48f9241ad8887b692882906c9 (commit)
       via  33fb0e7ba047ca73969b59bccf70a04a17c25a0a (commit)
       via  b0648c7f08eba87ec3c9714e2525c9b621bfb4ef (commit)
       via  6c79fa33e26cc4f0873577f8e122b1495b4c427e (commit)
       via  834c93b3e1b8f4151b8a2cd82c2dd8bacc17f66c (commit)
       via  8001488be4f2beb25e943fe01b2afc2e8779930d (commit)
       via  470822b329f9d3ca9bef518b56e9ce28d5fedda2 (commit)
       via  533c3e053293941d2a9484b495e78d45f478bb08 (commit)
       via  fe8027309c1f7b987cd368fa98f9b28741baa786 (commit)
       via  466beafadb37011fe273de8810ab0012e92a1fd8 (commit)
       via  e7d57d7ae678b24dab3364a348838c6a3398942c (commit)
       via  b90bdb07c1f6913ddbf11bde9684bdc8af61c549 (commit)
       via  20b15de068d042b292725945927ceda1b01d07c0 (commit)
       via  6804f880436645b52c09a78fa300377fa8058d0e (commit)
       via  defbe318152fc479e8076ad70433cdb4971951af (commit)
       via  c715746c2f40eb9b21dbf011d16f1f1b0b53fdf9 (commit)
       via  fbc453733d53359b9eba34a7ca9123237a7ecca5 (commit)
       via  c5f798116bf3b7954e23c7267b056ee1f5560f45 (commit)
       via  35a60a63a9b5c7d98dde514ae552239506b691c9 (commit)
       via  f1e350f9edb74cc44b6c5be4c062fd93e98ba8c4 (commit)
       via  ac655b0a65b32d809d47fec9821f7f31bb2fe2a7 (commit)
       via  c4b05a731e1bee8f5b46529773a4f5389b2b6064 (commit)
       via  5fdf842db09cd806248cdbdce2270f39ed213872 (commit)
       via  80a8d728e9680040e00d24361dfc9367dd372a56 (commit)
       via  6427f0b68d60b556a023f64e15e156000ba6f943 (commit)
       via  29d2ee8d9c6c6f36b2334480f646d6db209f370e (commit)
       via  354c0edacf2d6cec5b295e139d4fec618bad1b06 (commit)
       via  cb8df973ccd446d87fbdd9a27843e54841ba5d89 (commit)
       via  364e70b763f0ccd7714d15723ad3ea4d7e2968a1 (commit)
       via  1908bac812650ca25151051f5d86815e0b8ed319 (commit)
       via  b6bde176af69354ccfb00e6a3169f6b355a59d15 (commit)
       via  20a9d35933d89dc7eb710075f360686a49d78609 (commit)
       via  ffb911896704ddf6bd5a66e43ba2ae8c382e68de (commit)
       via  6ccb495d1110157c06596763c7e252f3182c251e (commit)
       via  5e13a25df5ccf184bd48595c99765a592bbc5969 (commit)
       via  8001ae580bcc28d45f6026b529d7ffc247cbba34 (commit)
       via  e8e7129ff1371065fbd75e1aea844d6d04a96fa9 (commit)
       via  eda052101728cf922ce892e3c53b4f37e7ceac42 (commit)
       via  b7dc1e0720991cc65353e07cf87608acea21ba27 (commit)
       via  1a3ecdee85b82bb3234a92ae6bcdeb92238eb7ee (commit)
       via  1cbf06a126621b3e932925cdad2ef9c009f93d4e (commit)
       via  058e21d96c3c02759833fd5ddfe7b43e6a5f5740 (commit)
       via  bf50709630df000583f2b0ef0edc177c01d60eaf (commit)
       via  9e1b99221c8f257129641f6eda2795537b7ce9de (commit)
       via  020e2e30e56b9675f345ee62d6bf585396208059 (commit)
       via  fb83dba255fc91413a475b273e374e0c4d538137 (commit)
       via  209ff041596e39688186c99995863ed3e816b8e4 (commit)
       via  f98fefbc566eefbfcc660646af6e25256ab82b13 (commit)
       via  a5d90d8ed8b44355c4ffb9c32ded772025fcc174 (commit)
       via  825c506da76d7afd0714b75b8c8727874183a618 (commit)
       via  b95524c08bf12914120cb6c818ecc1c99738fe37 (commit)
       via  9e4902c7d3ad1329c296f4196fcb1396f2a7a6a0 (commit)
       via  c1d8496f9fd5e8046f3d990264258dfb054f3b32 (commit)
       via  9ffd54b73c0d64b67e8e736d7cb54490e77ffa78 (commit)
       via  1446f4c247310e2ff2d522055bd8927d1a78d017 (commit)
       via  48ac5c77698ab7a28d24629cc8a6985011c5d14d (commit)
       via  d7b9babda2f7c7f7b95ee19ec75c37200816c6ef (commit)
       via  2febdd23f754a2d4699bed36b941442ab362a376 (commit)
       via  3be446434adb0f3095ac0ef4b7c4a6258780b863 (commit)
       via  11fefd02e6c9531ffb28b9e6acaf42ba39757d87 (commit)
       via  ab9657b5a66d5665e6c5fd1bf8eb4074a3bffeec (commit)
       via  0fb9573d1c838b436ab9be83e197b68f35f94acb (commit)
       via  0df012d58eb83195ea0365be19e0566dbc394a66 (commit)
       via  6b47ea111867c845974aa2687a658ebca2854816 (commit)
       via  cb432e30351d5e5a41e98da3c7b1c2a4d400a3a2 (commit)
       via  4892222ffb255dccd8ced1cb047f199386bb3e98 (commit)
       via  8ab1349feb64a91cb500c130ea299e2182491f06 (commit)
       via  a6fbc65aca35c41c428a82d7402e43c6eaac1d6e (commit)
       via  363e7e939ad46b3f75c83c30d4163d63876c2456 (commit)
       via  0c9b0466fd87b3f1e5d53f867c863217802ac43b (commit)
       via  467da12a785ba3367ed9cbdf79440394e9703289 (commit)
       via  cb36bbb5418290e8e5b770d2d836285b15da2a6f (commit)
       via  22712c577f64ec84851b4addcf4a46c7e99e0662 (commit)
       via  3b0d44497800a16400d05a30bdaf6e6c285d4b36 (commit)
       via  9560f8b7fe0f7ee0386a87c2653333071050fe4b (commit)
       via  02ee9dfd3c6b09f5c5172a7e38738c20b7f0aecd (commit)
       via  813cfd7c625ac8af4ef169cc92fb6d69f66004c9 (commit)
       via  8d430ae6968dfe566614379436fc3c56003fcd88 (commit)
       via  47b67077bdfa64938bb0fa6d1ca8f56fbd5c960e (commit)
       via  325de818f88f339a16dc4544e899a2d735933c44 (commit)
       via  8d5cb2586a1d5a0255cc18295430927b914d4527 (commit)
       via  fa34e8a5d588026029dca949151697817fe7f127 (commit)
       via  64da4402c6ad485f1d0a604878a7b0c01a0ea5f0 (commit)
       via  39642e745254d93d74dde907787503854fe6ca4a (commit)
       via  6a1f7a7b1b3a0b8f89998db8fdad83bbb4e9b5a5 (commit)
       via  4037b6e73a819a8e2463dfe0959b42875e05e106 (commit)
       via  227fe99f105bdc3a4f1000f238cbe3adeb3f22f0 (commit)
       via  cc30ee2f4f33cb75b2be980c2d4dff6c7c23852f (commit)
       via  a10fc51f4c30e85ada6d4b7347b0f9a8ebc76637 (commit)
       via  20678e1506db1f96b58c326ee91339e797c07c22 (commit)
       via  a244b75ee49556b0ff51e254cc812594ee3b23a7 (commit)
       via  8ec633b64a05a2d903c2b9639909f15f6375548f (commit)
       via  440e870d61267054b24404bcb69e599226353949 (commit)
       via  752a9c81de97be509de7e7feddde749cc5ee22a8 (commit)
       via  11193e1e192bee6f579bdf1303153571a82711d7 (commit)
       via  331c6e3afd96d8b5e191153a631efdbdabb6ea33 (commit)
       via  e79c3bcead7bd4bfb74d0aec81908da71551c107 (commit)
       via  ab4a6a58fb002ec29c19d167800e47987b023fe4 (commit)
       via  db250cad7c92c1cc0a690725a4e39531a2e1b7fd (commit)
       via  496dc2e80b714811c6e69dc928deaad61cf603b1 (commit)
       via  f1b6ee4a55cdca60f93d992f0431d91bf301af2c (commit)
       via  0785afba8e5cd501b9e0ecb4a6a44edf43b57ab0 (commit)
       via  38d7487bc68c8cf85980004aceeef24ae32d6f36 (commit)
       via  514a60c57557042e463efeff53dd11b9fec40561 (commit)
       via  14fca8383b6b1da49278a9181a975543b956161b (commit)
       via  f3e09f2cfd33e79e69fc8c84ce4781a31a7a0437 (commit)
       via  431f79f7c9038ebd95d27c2465207ca40b8f4f23 (commit)
       via  e01ab46bafad09a5e320d420734db129d35863bc (commit)
       via  27296a47b3d057a6729287acf128b2b67775ecde (commit)
       via  5b70fa8cfd5916d3c212823ad5cc1b251ae175ed (commit)
       via  61282d4a9be9e544aaa86f3cffc5b58e417f5ab1 (commit)
       via  8264c42969d4be7fc6c5b4d56f8b5ef7c62b3bfb (commit)
       via  25e82a8a667a54c6921ef076c63fdd738dd75d19 (commit)
       via  befabc917edb036ca81f5216f65a6d62b26ee83e (commit)
       via  87146db2769c2ec494813685bf9cec0d2a6336c3 (commit)
       via  f76d6fed8f9630450263b9fa4b5fdf3493fb1e11 (commit)
       via  ead97cabeb1e0b73bff9d45f8aec8b226769ee9f (commit)
       via  0a4d409baabf242a87c06293789d589c896b104c (commit)
       via  1a09b02767f3928d3c5db0e0afc59bb938e4a445 (commit)
       via  3997d7e5471810e9a2f145ce2e795073dfc5eded (commit)
       via  6ef4364b3349145b2fec23e0431cd6df6dcadd41 (commit)
       via  a4aac7312947aa3b26bc26993f04b586c64f18cb (commit)
       via  f50d64a8ac91415ca297216d2103ff940076f02b (commit)
       via  2b478b0f5f09dd06626592573f053706ac637edd (commit)
       via  11137bc2d492a62a26ec9f9f62ff362e81643f66 (commit)
       via  1f906bd3476e7cebf217e35b5477d6a7bb615a0c (commit)
       via  02862c086d045497f49f3c060700419815d607e7 (commit)
       via  54f9c314a0354f1039208fe6ac7dc159b6db8750 (commit)
       via  2e9fc6f0609833c6d8146196011ef780669d615d (commit)
       via  b3ae2b753261443dca317803752a9d61285a3270 (commit)
       via  27d152a918680a59c7412aec7e1772f25b72d469 (commit)
       via  97ded8a629ec762f71bad28515e4fbc810790b1d (commit)
       via  02f68dc60e0b7bf26d631850b12834d5c71a88f2 (commit)
       via  454125ccfda04aa6b4e14f5c05164d29f41a0ead (commit)
       via  5ad283458e59ea8232e01f34be007901c10c8a2e (commit)
       via  bf5402b41282da94fee1ab3e4546ec089ff12f37 (commit)
       via  ff824676fab94168707aada7423ae766bc0f711c (commit)
       via  f5e9f3007c10a937158bc8cdfabf33c984cf9c50 (commit)
       via  ddd089810a14efe4be6e1ff3eccaa604e4913c9e (commit)
       via  ef992a64d2376b621d4d2973ae22e567158aee12 (commit)
       via  82fad66123c1b8c5d4ed3b19c39acf6f367b3f37 (commit)
       via  536229fd120bc3fdc2419e22d3bd6ab243dd6667 (commit)
       via  a3406c10d70f89d332eab25d481083142dff987d (commit)
       via  e62928f56ce8927b1d8686db2c31538c86462d1a (commit)
       via  46474e5f21fd97dd765c616647ff46055a9970e7 (commit)
       via  eb854f65f978f24583e221138eb4f9b917b89285 (commit)
       via  3807681e74f4bfe92befdae6ed616ff5f1a99880 (commit)
       via  343c005367789e108c0320e95d7a264535d68dd8 (commit)
       via  f6e39d35713475defaa08a623e194f3f2f8f7d53 (commit)
       via  70e7781df1f118a0e2632a9c634f3fd388fa6c8c (commit)
       via  346fa055f4106497b87df97da5ebd6e51fa1ef8c (commit)
       via  3501d6b70bd905d6fdc4e74fe2cedc3ba77e4b86 (commit)
       via  5974b5f7998ef96aeadb7377f32ef1ab85bb5943 (commit)
       via  c1d7c11978d27d2ee41a2129b31d9ab61a43f8da (commit)
       via  5f14874c5c705dd637f88a77f30c930fea1201d2 (commit)
       via  b2ce8b900a7d00944c84e0574fea5b371064a06d (commit)
       via  eb1fecaef9aa5cb85dff7d4f7af8a9878deabed8 (commit)
       via  318abeb4b913a8d846e7eaf4cf5c2a67b61ce974 (commit)
       via  46194e87e189521375b39b4ef33da2b493429fd8 (commit)
       via  e8d692590da1070c87a4144031e3306d190ebed2 (commit)
       via  0cb3d33caa42ed783e03bc825b181dde4cf63616 (commit)
       via  465dc95fef0ff6651ff49fa94e4cf2ebd1036ac4 (commit)
       via  ca6d045e419f308f57e74d4c978907afb05ddb85 (commit)
       via  67741c0ee01916d94cace8e9462ef02507e06078 (commit)
       via  dd122351efaeef5475cdec111eb900110d83ec35 (commit)
       via  687535b51622d1fac7ccb38fa640bf1febd69fd8 (commit)
       via  5cb4d63bf6887d15aba37fafc3f6b6ba38027f13 (commit)
       via  f72d33ac73ebb1af802bacdfb30279df3cd8b8f9 (commit)
       via  e77bf5708df6782b4516f698b9981a1d27e2f10b (commit)
       via  deed52b7e4aac94b4d11a8d89d08739e1dfd4ed7 (commit)
       via  7d91de8a837a12082c343980428153720dcad741 (commit)
       via  22f0065cd6b66fa0f623f465aaca98883955ac79 (commit)
       via  789703ea684717781c176fd3a2a24d96abde220b (commit)
       via  9c63858c0b22c81eaccb9865a414af0bbb2833d4 (commit)
       via  3befe5526e147d49451fddc930aaafc3dbe2e9c1 (commit)
       via  9d95dfbd12898975ba0d8560d95a974210d3de7c (commit)
       via  be52954d921e7d443304cf49fbd488c619a9c4ec (commit)
       via  804e5905be51f43c8a338bfbe216fd8d5718850f (commit)
       via  e8df6fc301fb7faf72c72eb39ea68d44d1526b00 (commit)
       via  9ffb0d08d34cbafed0e49350a3a72b15d92c8ea7 (commit)
       via  c1c0ebb8da9a6c29ee83868a311f07f30cb4ed16 (commit)
       via  9b206d96da3341836cc25aee5693f551f6f3a80e (commit)
       via  23ae9e9863ea90c6fb3f105403fd098041fa73f4 (commit)
       via  4e9a3a5dc232bac12ab387ea0cf4f1b279bed5c1 (commit)
       via  d1d370033d5007ad1c2c34cd9eeac53001f4b13e (commit)
       via  b77e4698e7f83443243965f93b84237f2903cd46 (commit)
       via  b1fe04f2e9447f762a0b805763deb29296585ff8 (commit)
       via  fe26da7780545b1ecc0a7da5bc1cf8beaeea94cc (commit)
       via  cfe63636a163730ae9ad3554b78519b3c07d8896 (commit)
       via  803cfb4cd2f6d139f466053a6d7e104fcb772ef5 (commit)
       via  d1332f4d5d3d3e4b4e0cd362a6903d09e0d5fcbb (commit)
       via  95a3ee551241aa164967991fe5efe078e1714bde (commit)
       via  096cdc0c12d22d99f8405bee5cb9f05c616c8492 (commit)
       via  6e35feb06ec036b9036c5d1cdd94f7cef140d8a6 (commit)
       via  2cb04747887674def299e574fccb827c1c3194e7 (commit)
       via  5e7dc36f1649824db2f9dab34bede8b388502a57 (commit)
       via  a083a1976d621c76121f1fa2c2f484cfa47267bd (commit)
       via  edb58a417bfeb094cbbbf96caec8e2918256dad9 (commit)
       via  db7195d762f69577c4e28f0b0e0ded0ac7f91f0b (commit)
       via  f66d17fb2e81a35d5adb3754e1cc902f76b4590a (commit)
       via  4364419a486c1995bea56dab603cc4960e7c8e7a (commit)
       via  74e416108df6934f45ca646d709785dd76ab3c35 (commit)
       via  84e5a55a900b01903b80e23045edfc726d8d77a1 (commit)
       via  0e6a52ee66830e7742eaa392cd3dd9caeb808fb3 (commit)
       via  3085170be8460e59996a3eee4e29fec9ddbcf0f8 (commit)
       via  03b0d913ae009284e2fadda1b9246ec77d19db29 (commit)
       via  db7b96304e4725f29b12398b7582e385daed63ed (commit)
       via  4f7b39a4871af28df1c4545ec37db179fa47a7da (commit)
       via  1ae3a40705e14efcc24f558cd4d677932765c4fd (commit)
       via  b5410e7be0525e6e5cd49ccebc7bbc57086f3cb2 (commit)
       via  5624da65d3fad1905c9f93a9e41a90b98ad692d2 (commit)
       via  31216fd48117526c943e42d137ce24ef89fa0009 (commit)
       via  a2aaef03d4d6bbd4b42f50f732254935d4d3469c (commit)
       via  407b3117dfc1072117abf681ec98b9e252d8744c (commit)
       via  7bf9fff9139a4270496bddb97f9433bab87824bf (commit)
       via  e5ba8e1a832c223496ad72209ce1d3203cdaa2d7 (commit)
       via  b060911683d8ac201806d35a505867fe3ba9519f (commit)
       via  4899a888d4e2c31b4bd7220f3cd8936168942e61 (commit)
       via  f7a326b560b12f8b46c01d98cdd460e5510c67fb (commit)
       via  0310a6b17d6167c46482a07c6cd96bcabda6ffbc (commit)
       via  13b81b6c8e01aa52a31756ecffa797a4761115db (commit)
       via  4fad47c1af8503385b090be281ffbd284021279c (commit)
       via  7a6134e684c9ac4763bf198ef1410867b6082c94 (commit)
       via  12e14a09dd28ed005c8eb8fca7cd38a96aab938e (commit)
       via  e978b274a6af94ea7734675243ec65c5b17a583d (commit)
       via  affa6f47432507e84b7e76b88a2c27fff8e6e2e4 (commit)
       via  8903b858ddd3a016d9cf765187839814443a67ca (commit)
       via  f6cf586d8f6384e48215b7d2c20fb83e98504878 (commit)
       via  fb47cce86c0edae5caaf485f13ae7a151b6cb00d (commit)
       via  10ebeb215e7260186dab8f4f2403c48db9df9a00 (commit)
       via  f76132b0d555e52ee0a379ec2c156350b37b0280 (commit)
       via  46823aa7c673bc18a1424500b3f01da9c2dd6333 (commit)
       via  77574b7d7fe11c8e73957a80845481f3b2a64219 (commit)
       via  b869bb0e32d32422a5ba6b235864acba07f2b412 (commit)
       via  0c4c2240267af183d54ffd4c0aacda208f6eff6a (commit)
       via  7a95257a5ec19f232f661bc7f797051bf08ab776 (commit)
       via  e1d709f32196e19d4041ee2958e143791762e08f (commit)
       via  e26d9d32e68e7db1cf4f96c47c0126e9e0b213be (commit)
       via  54c047c48902a15e5d2925bfa86e012a11188796 (commit)
       via  cd65d8acb97aa9f83ff0d0585bf09caef2d2f3eb (commit)
       via  9bceef2b13fe9560ca02a266ce5a1fbbcef3af22 (commit)
       via  448cd8db1305c1e6dfab323f92eac4a576596e4e (commit)
       via  85590e9dfaab0db16ce8103e509fd4d51aef4ad5 (commit)
       via  8ed4fa0eb09238952044645b72234185e498a40c (commit)
       via  fbfa1c72875dda4d1636d8e72c67ba09b10455df (commit)
       via  e5b25e1386294b1f800c32fb01c69c3c3ce85c26 (commit)
       via  d8d21884736a9610d48cf532e1c6778e511fb7a8 (commit)
       via  49de8429d2a996dc055370541a12ea36762abe94 (commit)
       via  5852a526ce7d0333cd1f9a05353d8920ea99db37 (commit)
       via  7e799b7523c9699bd65a8a8207f7e03d668b0b81 (commit)
       via  0e9c3e0cf76dd33a24241f02709e56bc330f009a (commit)
       via  a42dbdb7b9ccf3ce2aed48aa33f1cd3af2e94fe3 (commit)
       via  836b95f32724cf37e4f643f20653f78842613692 (commit)
       via  c513a31d755003d7af91529790b06ce0d226c90f (commit)
       via  875778fbbfd6b0f09fd2db76f7348ad6271350a3 (commit)
       via  a0ad69197b4771f3d5be23d78d0933d732405f08 (commit)
       via  afafab0ac6cac90c3f8614204b5b6df92e446728 (commit)
       via  64405bdbebb2ddf0ae980e958ede77df79139000 (commit)
       via  8f48e37c254e0852d4e2dea54b905ce5ef2b925d (commit)
       via  8d0d432ab7766d9c0f9868fd77e48b9b5cc5d9f9 (commit)
       via  8b6a5bba93843cd83b7b386b82949ad88f29884a (commit)
       via  6de2823f5f7976d4efa20761e518d6b67753f054 (commit)
       via  ce19658ba13272238058e9b9bc03e62f48b737c0 (commit)
       via  e72974e5cefabc7035399d16633f727f868caa61 (commit)
       via  233c52bfb087f636ad61e95c12616c02901f4f83 (commit)
       via  fe3ceb101a5a9c336973c2c6c31406bd8181c2fe (commit)
       via  e03980add02a28609a7a0a0c87ebc85419b98144 (commit)
       via  5253a0ba3a34fbf5810f363ecc094203d49e835f (commit)
       via  aa22d1875b1997664af983c0baeabe34e40dd253 (commit)
       via  4c3dac215a088947f645f727343997f5d47e3260 (commit)
       via  9a251078f22aea15b9ca37393e0b5e2740aa21fb (commit)
       via  abf4540bfb06de56b0a7b5976b5f1b2a24a8743d (commit)
       via  f9b71757f034732647228d4b8a8f00528028b6b0 (commit)
       via  c53353c6402f378f29200313d82f1f9262d628b1 (commit)
       via  878437a909ea44dfc3635f082e34741ee256e505 (commit)
       via  8fcc4610de926f44e18ec85fb57ca5f7d3c28bd6 (commit)
       via  b7787255391eddef8458f81ff9b75d9116e2afd3 (commit)
      from  32a69b0efa078b069802470be6488a4efe32961d (commit)

http://gitweb.samba.org/?p=tridge/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d5eaddff89ab3a5f75b2db7708ebbce5a0d213a5
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Feb 4 14:36:14 2010 +1100

    ctdb: when we fill the client packet queue we need to drop the client
    
    We can't just drop packets to the list, as those packets could be part
    of the core protocol the client is using. This happens (for example)
    when Samba is doing a traverse. If we drop a traverse packet then
    Samba hangs indefinately. We are better off dropping the ctdb socket
    to Samba.

commit 4232cfcbb730b9af2b693a518000693b7b4de90d
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Feb 4 14:14:18 2010 +1100

    ctdb: move ctdb_io.c to use TLIST_*() macros
    
    This will make large packet queues much more efficient

commit 4274e07ed22f63c473d484a8d9345473b0aa9afd
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Feb 4 14:13:49 2010 +1100

    util: added TLIST_*() macros
    
    The TLIST_*() macros are like the DLIST_*() macros, but take both a
    head and tail pointer for the list. This means that adding an element
    to the end of the list is efficient (it doesn't need to walk the
    list).
    
    We should move all uses of the DLIST_*() macros which use
    DLIST_ADD_END() to use the TLIST_*() macros instead.

commit c3eec8f10764a647106087099eeb47b7196f7aac
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Feb 4 10:03:21 2010 +1100

    When trying to enable/disable a node.
    Check if the node is already enabled/disabled and log an information
    message if so.

commit 59ba5d7f80e0465e5076533374fb9ee862ed7bb6
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Feb 4 09:54:06 2010 +1100

    We only queued up to 1000 packets per queue before we start dropping
    packets, to avoid the queue to grow excessively if smbd has blocked.
    
    This could cause traverse packets to become discarded in case the main
    smbd daemon does a traverse of a database while there is a recovery
    (sending a erconfigured message to smbd, causing an avalanche of unlock
    messages to be sent across the cluster.)
    
    This avalance of messages could cause also the tranversal message to be
    discarded  causing the main smbd process to hang indefinitely waiting
    for the traversal message that will never arrive.
    
    Bump the maximum queue length before starting to discard messages from
    1000 to 1000000 and at the same time rework the queueing slightly so we
    can append messages cheaply to the queue instead of walking the list
    from head to tail every time.

commit 8c89aac20260dc7f3746e29fe99f17422a77cb88
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Feb 4 09:45:32 2010 +1100

    add two new debug controls to send and receive messages
    
    ctdb msglisten and msgsend

commit eae1d4f9e52e73b4d8769868fffdafa590d03784
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Feb 4 06:37:41 2010 +1100

    Drop the debug level for logging fd creation to DEBUG_DEBUG

commit 898b5edfe757cb145960b8f3631029bfd5592119
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Jan 29 18:21:09 2010 +0100

    tdb: fix an early release of the global lock that can cause data corruption
    
    There was a bug in tdb where the
    
                    tdb_brlock(tdb, GLOBAL_LOCK, F_UNLCK, F_SETLKW, 0, 1);
    
    (ending the transaction-"mutex") was done before the
    
                            /* remove the recovery marker */
    
    This means that when a transaction is committed there is a window where another
    opener of the file sees the transaction marker while the transaction committer
    is still fully functional and working on it. This led to transaction being
    rolled back by that second opener of the file while transaction_commit() gave
    no error to the caller.
    
    This patch moves the F_UNLCK to after the recovery marker was removed, closing
    this window.

commit 522fbb012524fe41a67dbe43589a282dda6bcbe2
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Jan 22 13:19:00 2010 +1100

    initscript: handle spaces in option values inserted into $CTDB_OPTIONS.
    
    This puts single quotes around everything and uses eval on the
    command-lines that actually start ctdbd.  The eval causes the single
    quotes to be interpreted.
    
    The "redhat" init style no longer uses the Red Hat daemon function.
    It loses the quoting and re-splits on spaces.  Instead we add an extra
    line that uses the success/failure functions to keep things pretty.
    Note that this means that we don't respect daemon's
    $DAEMON_COREFILE_LIMIT variable but we do our own core file handling
    with $CTDB_SUPPRESS_COREFILE anyway.  daemon's core file handling was
    probably overriding what we were doing anyway, so this can be regarded
    as a bug fix.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 60aa570aaa77d293b963105b3f605f9625a4594b
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jan 21 13:40:03 2010 +1100

    onnode: update algorithm for finding nodes file.
    
    2 changes:
    
    * If a relative nodes file is specified via -f or $CTDB_NODES_FILE but
      this file does not exist then try looking for the file in /etc/ctdb
      (or $CTDB_BASE if set).
    
    * If a nodes file is specified via -f or $CTDB_NODES_FILE but this
      file does not exist (even when checked as per above) then do not
      fall back to /etc/ctdb/nodes ((or $CTDB_BASE if set).  The old
      behaviour was surprising and hid errors.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 503e4908b3028330bc25dc6de8561dbd53ee6a8d
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jan 21 13:16:18 2010 +1100

    onnode - respect $CTDB_BASE rather than hard-coding /etc/ctdb.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 3bab985cf615720eded4d47b4f9f37a9c28840aa
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 13:05:54 2010 +0100

    config: 10.interface: search "ethtool" in $PATH instead of using a hardcoded path
    
    This is very useful for testing, I use such a script:
    
    cat ~/bin/ethtool
     #!/bin/sh
    
     IFACE=$1
    
     case "$IFACE" in
            Neth2)
                    ;;
            Neth3)
                    ;;
            Neth4)
                    ;;
            Neth5)
                    ;;
            *)
                    exec /usr/sbin/ethtool $@
                    ;;
     esac
    
     ip link set down $IFACE
    
     exec /usr/sbin/ethtool $@
    
    metze

commit 0e41a2204fa8a1e77dc83c0d4b253ab272b5c72d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jan 19 08:42:48 2010 +0100

    server: reload the public addresses before doing a takeover run
    
    metze

commit 48e0af91113d6cead6cae3f28d8d8f610cacaa71
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 15:04:32 2010 +0100

    server: ban ourself if the ctdb and kernel knowledge of a public ip differs
    
    metze

commit 2f44d6f3d290cc1b37b19ec34edfbad12cc0c0a7
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 15:38:01 2010 +0100

    server: give an error if we're getting an takeover_ip event with a wrong pnn
    
    metze

commit f5c221e6abc118aefa489aa7e07755af952fd2bb
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 15:08:15 2010 +0100

    server: return an error if we get an takeover ip event and we cannot serve the ip
    
    metze

commit 6c456face30606641f6b8beaad3121c9b05ca763
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 15:12:46 2010 +0100

    server: print node number as signed integer on release ip event
    
    metze

commit 7bc9969c4c28f2c4a4848bd730db3c63bb9204fe
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 15:22:16 2010 +0100

    server: debug redundant takeover ip events with level INFO
    
    metze

commit 72ef5f891f85ce51f5ca7e0c03d0c7cc955be110
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 15:04:32 2010 +0100

    server: be less verbose on redundant release_ip events
    
    metze

commit eded224368dded2264e53546c196b1b485cb2094
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Jan 16 15:01:17 2010 +0100

    server: add a ctdb_do_updateip()
    
    metze

commit 8fd6f4aab0c173b4c9c4c02c546e7d2ec1a98423
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Jan 16 13:30:58 2010 +0100

    server: split out a ctdb_do_takeover_ip() function
    
    metze

commit ec87a51660cfa8a6851923f757fed31f7ffc7153
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Jan 16 13:20:45 2010 +0100

    server: split out a ctdb_announce_vnn_iface() function
    
    metze

commit 829150e814a5e6c85d0f21421f46f41e81d74c53
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 08:45:19 2009 +0100

    events: add updateip event to 13.per_ip_routing
    
    metze

commit a5cdf1277387f8c6292153c37fa9ceb64707d04f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 08:40:50 2009 +0100

    events: 10.interface handle updateip event
    
    metze

commit 712ed0c4c0bff1be9e96a54b62512787a4aa6259
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 08:33:55 2009 +0100

    server: add updateip event
    
    metze

commit d054eb33c6ae92560cddb40732e5dcf622591a3c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 14:02:03 2009 +0100

    config: add CTDB_PARTIALLY_ONLINE_INTERFACES to ctdb.sysconfig
    
    With this option set to "yes", we don't become unhealthy
    as long as at least one interface is still available.
    
    metze

commit f872e8c63a2f8979e6a0d088630575bdd4d7b4f1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 19:18:10 2009 +0100

    server: start with disabled interfaces and let the event scripts enable the interfaces explicit
    
    This makes sure that we don't get public addresses assigned during the
    initial recovery and remove them again in the startup event.
    
    metze

commit 615dec051c26aac628f120e96bf12fb39fc6d28a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 22 15:25:30 2009 +0100

    config: 10.interfaces call monitor_interfaces on startup
    
    metze

commit c465f63585c419ba59a6b04cbbf78ae615a7259d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 22 15:25:30 2009 +0100

    config: 10.interfaces call ctdb ifaces and ctdb setifacelink for monitoring
    
    metze

commit b5ba56dea57db97d6c6ba3e7582e74fe0e3041fc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 14 11:59:45 2009 +0100

    events: splitout a monitor_interfaces function in 10.interface
    
    metze

commit 965a65520693e3731b5b0250127b04c777087808
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 22 15:21:08 2009 +0100

    server: monitor interfaces in verify_ip_allocation()
    
    metze

commit 10bc087d0280057962177721bdd6d4f28743b311
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 22 15:21:08 2009 +0100

    server: only trigger one takeover run in verify_ip_allocation()
    
    metze

commit 38cb972382a09f830673277d0a9bd5d20deafff2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 13:30:45 2009 +0100

    tools/ctdb: add PartiallyOnline state for "ctdb status" and "ctdb status -Y"
    
    This is based on the GET_IFACES control against each node.
    
    metze

commit dffa2b05acce8b73c2fdd085311732bf57f01b7f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Jan 16 10:36:35 2010 +0100

    tools/ctdb: display interfaces in "ctdb ip" and "ctdb ip -Y" outputs
    
    metze

commit c24fbea156dfdc9154e94eace725526e44cbcdac
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Jan 16 10:35:41 2010 +0100

    tests: add a all_ips_on_node() helper function that wraps ctdb ip -Y
    
    metze

commit 27bde04966e22975777b4034dbaccfe158369110
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Jan 15 10:53:14 2010 +0100

    tests/simple/11_ctdb_ip.sh: be more strict in checking ctdb ip -Y output
    
    metze

commit e05e236fc019bfd3b316609a7c190e0e028a4bbc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 17 11:23:59 2009 +0100

    tools/ctdb: add "ctdb ipinfo <ip>"
    
    metze

commit 8d0c00b60db69bd10f12da4c676e1142dc37af7a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 17:02:23 2009 +0100

    tools/ctdb: add "ctdb setifacelink <iface> <status>"
    
    metze

commit 80053d09eed967fb76898f4a53437bed2b43a02f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 16:50:23 2009 +0100

    tools/ctdb: add "ctdb ifaces"
    
    metze

commit cff58b27c970e9252d131125941c372019fd6660
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 17 10:30:36 2009 +0100

    server: implement ctdb_control_set_iface_link()
    
    This only marks the interface status and doesn't
    generate any directly triggered action.
    
    The actions is later taken by the recovery process
    in verify_ip_allocation.
    
    metze

commit 0e982a416a126d9856145c19baef320cd0e71d66
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 11:14:44 2009 +0100

    server: implement ctdb_control_get_ifaces()
    
    metze

commit 486fbd15f4cc4f45a4c110b2ddbba48bade22c9f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 11:20:28 2009 +0100

    server: implement ctdb_control_get_public_ip_info()
    
    metze

commit e2d6582001be28c1800e4da8b0f2dc541538c314
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 16:18:36 2009 +0100

    client: implement ctdb_ctrl_set_iface_link()
    
    metze

commit a21e3765dd83e837d93111f387448bf0a5dd4652
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 15:30:07 2009 +0100

    client: implement ctdb_ctrl_get_ifaces()
    
    metze

commit 4efab41dfa61d5c7951c583d584df3455ee9c704
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 16:23:08 2009 +0100

    client: implement ctdb_ctrl_get_public_ip_info()
    
    metze

commit a2c9e4578e149eccb2c6183f64a6b657eb95c5e1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 14:40:21 2009 +0100

    controls: add stups for GET_PUBLIC_IP_INFO, GET_IFACES and SET_IFACE_LINK_STATE
    
    metze

commit a695a38e49e7c3e15a9706392dc920eeab1f11ba
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 16:09:40 2009 +0100

    server: use CTDB_PUBLIC_IP_FLAGS_ONLY_AVAILABLE during a takeover run
    
    We know ask for the known and available interfaces.
    This means a node gets a RELEASE_IP event for all interfaces
    it "knows", but doesn't serve and a node only gets a TAKE_IP event
    for "available" interfaces.
    
    metze

commit 09a5c59bc8d1301edf60d7ae77504dc6d11a7da2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 16:08:45 2009 +0100

    server: implement CTDB_PUBLIC_IP_FLAGS_ONLY_AVAILABLE behavior
    
    metze

commit 6bd780510058e5589f2f7c3722d37acbba4935ab
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 15:50:06 2009 +0100

    client: add CTDB_PUBLIC_IP_FLAGS_ONLY_AVAILABLE ctdb_ctrl_get_public_ips_flags()
    
    metze

commit 91122c322fbec08138b92c528d9a946f6727b4fd
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 12:10:18 2009 +0100

    reserve upper bits in ctdb_control->flags for opcode specific flags
    
    metze

commit ff5291778f0752e176539397e9530dcf0e546bea
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 10:39:40 2009 +0100

    server: keep the interface information in a list of ctdb_iface structures
    
    metze

commit 080ba5ac2195fb73ef6f18740abdde57a7b97151
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 09:48:21 2009 +0100

    server: we don't need to copy strings we pass as talloc_asprintf() arguments
    
    metze

commit f9837f8b6f887d28f29aeb3eeffe8cfb423b40b4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 08:39:21 2009 +0100

    events: 10.interfaces allow multiple interfaces per public address
    
    metze

commit 33a00ef7233051acdbc66410130ec5d876a8422f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 14 18:52:06 2009 +0100

    server: allow multiple interfaces comma separated in public_addresses
    
    metze

commit 9e5532e215892b2e0aadd9b106a730727f92c62e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 16 08:54:02 2009 +0100

    server: add a ctdb_vnn_iface_string() helper function to access vnn->iface
    
    metze

commit 400b4806c4a9686a2ee6398b5d7c3e0ca0793fd1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 14 19:33:35 2009 +0100

    server: add a ctdb_set_single_public_ip() helper function
    
    metze

commit ff5678fbec2daef461143acf00cef3f94d7655fc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Dec 19 18:26:01 2009 +0100

    config: add 13.per_ip_routing event script
    
    With this script it's possible to generate routing tables
    per public ip address.
    
    metze

commit ff9c641763702ae99632bbf4d0825d578440c074
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Dec 11 19:56:36 2009 +0100

    config: add some ipv4 helper shell functions
    
    Many thanks to Michael Adam <obnox at samba.org>
    for the basic work.
    
    metze

commit e02417b2a55c45ac2c125b1b3463c9c39e7bc07a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jan 20 11:10:48 2010 +0100

    config: add interface_modify.sh and call it under flock to make modification on interfaces atomic
    
    When two releaseip events run in parallel it's possible that the 2nd script
    readds a secondary ip that was removed by the 1st script.
    
    metze

commit 24cd42769d8f32b90a8876a6a08a36ab23076cd1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Dec 18 11:08:22 2009 +0100

    events/10.interfaces: move some parts to helper functions
    
    metze

commit 2397f13d7b5ca3847ef148187c6b179d06f6a47a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Dec 18 09:43:20 2009 +0100

    config/functions: add tickle_tcp_connections()
    
    metze

commit e953808449c102258abb6cba6f4abf486dda3b82
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jan 19 10:07:14 2010 +0100

    server: add "init" event
    
    This is needed because the "startup" event runs after the initial recovery,
    but we need to do some actions before the initial recovery.
    
    metze

commit 37d11895e96ba8bc8c9ba159083970c45f76d9bb
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jan 7 09:21:56 2010 +0100

    server: setup fault handler to get the build-in backtrace support
    
    The panic action feature will be added later.
    
    metze

commit e366e77ba170d2c27110c56004ae1adf97abef9e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jan 12 12:17:00 2010 +0100

    lib/util: add pre and post panic action hooks
    
    metze

commit 8171d66f0061fe23ed6dfef87ffe63bfc19596eb
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Dec 18 12:32:38 2009 +0100

    lib/util: import fault/backtrace handling from samba.
    
    metze

commit 9d39ada437b02d84b70a5fea78b61bbb32f16d81
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Dec 18 12:14:28 2009 +0100

    configure: don't overwrite AC_CHECK_FUNC_EXT and AC_CHECK_LIB_EXT
    
    This has curently no affect on the generated configure and config.h.in files.
    
    metze

commit 4b4dd5d7f81bf226e05c7f3d40087043da1517a2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Dec 19 11:40:06 2009 +0100

    move DEBUG* macros to one place
    
    metze

commit 18af37e99ef8ff5623161495be432abfe5e3407f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 21 13:34:21 2009 +0100

    tools/ctdb: display INACTIVE status in "ctdb status" and "ctdb status -Y"
    
    metze

commit 898894d3acbcc0add2ab0706a3172a446622f687
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jan 19 08:38:53 2010 +0100

    server: add missing goto again after do_recovery()
    
    metze

commit 49f0488a5e60c74b6b8361dffcd09ebb2db740f0
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jan 18 13:19:29 2010 +0100

    lib/events: finish "Run only one event for each epoll_wait/select call"
    
    This finished commit a78b8ea7168e5fdb2d62379ad3112008b2748576.
    
    The logic was missing in events_standard (the one that's used by default).
    
    metze

commit 085d1bea78fabf754ef6dd6d323f74a1d361e45c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jan 20 10:35:02 2010 +1100

    source the nfs sysconfig file from the 61.nfstickles script

commit 037e64e1900f09e699d5fce50df2850f26f47f91
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Jan 15 16:01:51 2010 +1100

    document the in-memory ringbuffer for logging and the commands
    used to set it up and manage it.

commit c79c2da69bc352f509e7fca4b9172a4b7f23c0f8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Jan 15 15:38:56 2010 +1100

    Make the size of the in memory ringbuffer for keeping the recent log messages
    configureable using --log-ringbuf-size=<num-entries>.
    
    Add an entry in the sysconfig file to set this persistently.

commit 4bcb07c412260147cd926452287885d05b2344c1
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jan 13 07:12:08 2010 +1100

    new version 1.0.113

commit 4cc9c79bfced9efa0d3817021512c86ed2fa3516
Merge: 64ae8b0702cfdc44a778e0cc3705dd685f9f6ab0 608e0765130aa9bca0aa77db5a888c413867a3fd
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Jan 13 07:01:40 2010 +1100

    Merge commit 'metze/master-for-ronnie'

commit 608e0765130aa9bca0aa77db5a888c413867a3fd
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jan 7 13:29:09 2010 +0100

    server: call event_add_fd at the end of ctdb_set_child_logging()
    
    metze

commit acb98c36a3d56fa6b34747015b913ada3eaa133f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Jan 7 13:47:46 2010 +0100

    ctdb_logging: simplify ctdb_fork_with_logging a lot and reduce the syscall usage
    
    metze

commit 64ae8b0702cfdc44a778e0cc3705dd685f9f6ab0
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Jan 12 21:07:45 2010 +1100

    New version 1.0.112.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit b70021856e76df1ba407c83cfc19bf332fbfc869
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Jan 12 21:02:44 2010 +1100

    Revert "Use wbinfo --ping-dc isntead of wbingo -p sicne this is a more reliable way to determine if winbindd is in a useful state."
    
    This reverts commit 7c95e56ba871a4e0cb893a5cb5d821e7ff6e6dd6.
    
    wbinfo --ping-dc is proving too unreliable.

commit 178f429a7b6d1008d35e857b6ca1df6adb60d255
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Jan 12 21:02:11 2010 +1100

    Revert "events/50.samba: only use wbinfo --ping-dc if available"
    
    This reverts commit 7b73834ba3ac197cc8a3020c111f9bb2c567e70b.
    
    wbinfo --ping-dc is proving too unreliable.

commit bb9fc8b4388848863fa2b8735bd77eb07b7b5849
Merge: 82e1c5231c389bea935328a08ecf9b0b3a3979ef 484ae893f2179bebd0e2a2efe5f9619a39e48227
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jan 7 12:46:26 2010 +1100

    Merge commit 'origin/master'

commit 484ae893f2179bebd0e2a2efe5f9619a39e48227
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Dec 18 15:16:04 2009 +1100

    New version 1.0.111

commit eb22c34bccc8a04fcf63efa2bc48d9788709382e
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Dec 18 14:13:09 2009 +1030

    eventscript: fix bug when script is aborted
    
    Another corner case when we terminate running monitor scripts to run
    something else: logging can flush the output and we write to a NULL
    pointer.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 2c84fe393ff2b961abf77d58a371c24db5ecb93b
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Dec 18 13:54:40 2009 +1030

    eventscript: remove cb_status, fix uninitialized bug when monitoring aborted
    
    (Reapplied with merge after accidental revert)
    
    Previously we updated cb_status a each script finished.  Since we're storing
    the status anyway, we can calculate it by iterating the scripts array
    itself, providing clear and uniform behavior on all code paths.
    
    In particular, this fixes a longstanding bug when we abort monitor
    scripts to run some other script: the cb_status was uninitialized.  In
    this case, we need to hand *something* to the callback; 0 might make
    us go healthy when we shouldn't.  So we use the last status (normally,
    this will be the just-saved current status).
    
    In addition, we make the case of failing the first fork for the script
    and failing other script forks the same: the error is returned via the
    callback and saved for viewing through 'ctdb scriptstatus'.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 82e1c5231c389bea935328a08ecf9b0b3a3979ef
Merge: d9105ea79df198a20c2bfe471c4793d1dbba886e 859e18db681dabe0990793d03f58e59a061aa8bb
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Dec 18 14:44:25 2009 +1100

    Merge commit 'origin/master'

commit d9105ea79df198a20c2bfe471c4793d1dbba886e
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Dec 18 14:43:45 2009 +1100

    Test suite: Add an optimisation in the getvar test.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit f319bd54369a2bc7d32c3bda7fc22f2ef1a51c3a
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Dec 18 14:42:58 2009 +1100

    Test suite: allow settign of timeout triggers for all events not just monitor.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 859e18db681dabe0990793d03f58e59a061aa8bb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Dec 18 12:32:58 2009 +1100

    Version 1.0.110

commit 843a2ed5ef85f628788b0caf7417c6b61b5c6d3f
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Dec 18 11:54:24 2009 +1030

    eventscript: fix cleanup path when setting up script list
    
    We shouldn't set ctdb->current_monitor until we set destructor: that's
    what cleans it up.
    
    Also, free state->scripts on no-scripts exit path: it's not a child of
    state because we need it in the destructor.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 7101ae80bf4e530f48e31e4c58707aa45a9fd3d5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 17 13:04:27 2009 +0100

    server: add set_close_on_exec() on more fds
    
    metze

commit 140070dd81b39545fe2d56f70e9b9c96bfdae07f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 17 13:03:42 2009 +0100

    server: fix fd leaks in the new logging code
    
    metze

commit 99894a70fe2ebfe43daae7e88ff0fc9cab33e0fb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Dec 17 15:49:01 2009 +1100

    version 1.0.109

commit 5d50f0e16948d18009f6623f132113f7273efc7f
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Dec 17 14:38:15 2009 +1030

    eventscript: remove cb_status, fix uninitialized bug when monitoring aborted
    
    Previously we updated cb_status a each script finished.  Since we're storing
    the status anyway, we can calculate it by iterating the scripts array
    itself, providing clear and uniform behavior on all code paths.
    
    In particular, this fixes a longstanding bug when we abort monitor
    scripts to run some other script: the cb_status was uninitialized.  In
    this case, we need to hand *something* to the callback; 0 might make
    us go healthy when we shouldn't.  So we use the last status (normally,
    this will be the just-saved current status).
    
    In addition, we make the case of failing the first fork for the script
    and failing other script forks the same: the error is returned via the
    callback and saved for viewing through 'ctdb scriptstatus'.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit b4365045797f520a7914afdb69ebd1a8dacfa0d9
Merge: 82421f20dcad4b0e25f109583879a26c0ee9c465 82f778e85440bc713d3f87c08ddc955d3cfce926
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Dec 17 08:18:04 2009 +1100

    fix a conflict in the merge from rusty
    
    Merge commit 'rusty/ctdb-no-setsched'
    
    Conflicts:
    
    	server/ctdb_vacuum.c

commit 82f778e85440bc713d3f87c08ddc955d3cfce926
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Dec 16 20:57:20 2009 +1030

    ctdb: use mlockall, cautiously
    
    We don't want ctdb stalling due to paging; this can be far worse than
    scheduling delays.  But if we simply do mlockall(MCL_FUTURE), it
    increases the risk that mmap (ie. tdb open) or malloc will fail,
    causing us to abort.
    
    This patch is a compromise: we mlock all current pages (including
    10k of future stack for expansion) and then relock when a client
    asks us to open a TDB.  We warn, but don't exit, if it fails.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 482c302d46e2162d0cf552f8456bc49573ae729d
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Dec 16 19:26:22 2009 +1030

    Remove RT priority, use niceness.
    
    1) It's buggy.  Code needs to be carefully written (ie. no busy
       loops) to handle running with it, and we fork and run scripts.[1]
    
    2) It makes debugging harder.  If ctdbd loops (as has happened recently)
       it can be extremely hard to get in and see what's happening.  We've already
       seen the valgrind hacks.
    
    3) We have seen recent scheduler problems.  Perhaps they are unrelated,
       but removing this very unusual setup is unlikely to hurt.
    
    4) It doesn't make anything faster.  Under all but the most perverse of
       circumstances, 99% of the cpu gives the same performance as 100%, and
       we will always preempt normal processes anyway.
    
    [1] I made this worse in 0fafdcb8d353 "eventscript: fork() a child for
        each script" by removing the switch_from_server_to_client() which
        restored it, but even that was only for monitor scripts.  Others were
        run with RT priority.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 2ee86cc1f311d7b7504c7b14d142b9c4f6f4b469
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Dec 16 20:59:15 2009 +1030

    Add --valgringing flag instead of --nosetsched
    
    The do_setsched was being tested for whether to mmap tdbs: let's make it
    explicit.  We can also happily move the kill-child eventscript hack under
    this flag.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 82421f20dcad4b0e25f109583879a26c0ee9c465
Merge: 1717836f4f36c4e2b6bd82b6b78e2325b2a458ab e3825407a509110c786d618efcdfa56ba93380a5
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 16 18:34:40 2009 +1100

    fix conflict in merge from metze
    
    Merge commit 'metze/master-tdb-check'
    
    Conflicts:
    
    	server/ctdb_vacuum.c

commit 1717836f4f36c4e2b6bd82b6b78e2325b2a458ab
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Nov 20 21:17:59 2009 +0100

    ctdb: pass TDB_DISALLOW_NESTING to all tdb_open/tdb_wrap_open calls
    
    metze
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit e3825407a509110c786d618efcdfa56ba93380a5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 13:02:59 2009 +0100

    doc: regenerate manpages
    
    metze

commit 0d1300aa2325c94d8fb1c3cf8d454e5eee43dde9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 8 12:28:38 2009 +0100

    doc: fix docbook warnings for ctdb.1 and onnode.1 manpages
    
    metze

commit 33ec6943fb2d01b6df0ce4515d37c671b18d237f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 9 11:29:52 2009 +0100

    doc/ctdb.1: update example "ctdb listvars" output
    
    metze

commit 9b4c76973a8cf03ddc1a9b3777a350f739c00892
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 8 12:44:13 2009 +0100

    doc/ctdb.1: make clear the database is specified by name for "ctdb backupdb"
    
    metze

commit a90f3dd25a22f9b8777ff6946ce1721859e9479a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 8 12:43:33 2009 +0100

    doc/ctdb.1: document "ctdb getdbstatus <dbname>"
    
    metze

commit bf48ae41ef5fb8e4675be448d13db522465d8d72
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 10:19:20 2009 +0100

    doc/ctdb.1: add "See also" for ctdb getdbmap
    
    metze

commit 8e6b8be51fd1bda789675650a94df0115ee9e238
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 8 12:08:27 2009 +0100

    doc/ctdb.1: document "ctdb dumpdbbackup <file>"
    
    metze

commit c09acd0896089a612ee3a1e78711abd98bd9cc99
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 10:18:39 2009 +0100

    doc/ctdb.1: document -Y output fot ctdb getdbmap
    
    metze

commit 3cdb8be02acc23074c8137a54faea62fee4567a0
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 10:10:05 2009 +0100

    doc/ctdb.1: document UNHEALTHY for "ctdb getdbmap"
    
    metze

commit fce390194dadb4961b46c706a1826442eef8c63d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 10:00:52 2009 +0100

    doc/ctdb.1: document "ctdb wipedb"
    
    metze

commit fc5f556d488488040303438aefecb5ae2a8e54bc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 10:53:31 2009 +0100

    config: add CTDB_MAX_PERSISTENT_CHECK_ERRORS option
    
    metze

commit 52e6d81f4d8a4035272d9256d01bafb8ed593027
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 10:46:10 2009 +0100

    config: try to use tdbtool <tdb> check instead of tdbdump for persistent db checks
    
    metze

commit 504cf78d00d1120b556124340b9312f890b8b8b9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 09:57:45 2009 +0100

    ctdb: print out some hints how to debug a "ctdb catdb" failure
    
    metze

commit 45cfcd44093c7d2681e2ffd5cfb402823e8809f4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 09:23:02 2009 +0100

    ctdb: add machinereadable output fot "ctdb -Y getdbmap"
    
    metze

commit ecf799093c1989f5499c9d61ce8cc8a98d759160
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 09:22:02 2009 +0100

    ctdb: disallow "ctdb backupdb" on unhealthy databases
    
    metze

commit c63a0368d9d4b526ac1e49d891d3a1b7b8d20320
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Dec 4 15:24:23 2009 +0100

    client: add "ctdb dumpdbbackup <filename>"
    
    metze

commit 1cdc8dbb9cb971cf6dd6cd22b1adaf70ddc77e65
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Dec 4 15:23:56 2009 +0100

    client: make ctdb_dumpdb_record() public
    
    metze

commit d1b10b0c0c323c39742a18e98a1dab7e82ddc7be
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 2 12:58:03 2009 +0100

    tools/ctdb: let "ctdb restoredb" and "ctdb wipedb" mark the db as healthy on all
    nodes
    
    metze

commit 910c19f12448d293a755d1eb46d20f9591f8da7a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 2 12:57:29 2009 +0100

    tools/ctdb: add "ctdb getdbstatus <dbname>"
    
    metze

commit c34535ff4dc6a44909283641596e0ed7c2316fbd
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 2 12:54:29 2009 +0100

    tools/ctdb: display db health in "ctdb getdbmap"
    
    metze

commit 5abe44d0113839d3a45c9a31d30856aa70c2ea1f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 2 12:51:37 2009 +0100

    client: add ctdb_ctrl_getdbhealth()
    
    metze

commit 7332d900538f0cbcd953a723417a0fe31dc9807c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 2 12:48:22 2009 +0100

    server: add CTDB_CONTROL_DB_SET_HEALTHY and CTDB_CONTROL_DB_GET_HEALTH
    
    metze

commit 15f133d5150ed1badb4fef7d644f10cd08a25cb5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 13:28:11 2009 +0100

    server: Use tdb_check to verify persistent tdbs on startup
    
    Depending on --max-persistent-check-errors we allow ctdb
    to start with unhealthy persistent databases.
    
    The default is 0 which means to reject a startup with
    unhealthy dbs.
    
    The health of the persistent databases is checked after each
    recovery. Node monitoring and the "startup" is deferred
    until all persistent databases are healthy.
    
    Databases can become healthy automaticly by a completely
    HEALTHY node joining the cluster. Or by an administrator
    with "ctdb backupdb/restoredb" or "ctdb wipedb".
    
    metze

commit d874463235fa299e83fe562291c688aca3b85cf3
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 13:19:33 2009 +0100

    server: move error handling to a 'fail' label in ctdb_control_transaction_commit()
    
    metze

commit 49d2dca9ad837e1b397294fb0e966bf0b77f751c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Nov 27 16:36:05 2009 +0100

    server/recovery: update flags on nodes before syncing dbs
    
    metze

commit cbda4666be88c11a810a192a70667b57f773ace1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sun Nov 29 12:39:37 2009 +0100

    server: open /var/ctdb/state/persistent_health.tdb.X on startup
    
    This node internal tdb will store the HEALTH state of persistent
    tdbs.
    
    metze

commit 21677ed6fb8c589f348321533c608cad58c4ec93
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 23 15:39:19 2009 +0100

    server: create vactune.tdb.X with 0600 permissions
    
    metze

commit 1db17f312558fe59983a3465680e56c9f0c19e36
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 23 15:38:31 2009 +0100

    server: create vactun.tdb.X under /var/ctdb/state
    
    metze

commit 92e05282d6c4f16e55d914cc3bde3738ea2d44ad
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 23 15:36:45 2009 +0100

    server: create recdb.tdb.X in /var/ctdb/state/
    
    metze

commit f30f33685db50860b6cd6fd1b6bdc3066620a78f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sun Nov 29 12:39:23 2009 +0100

    server: only do the mkdir() calls for db_directory* once at the start
    
    metze

commit 656a6ec5ed81ccfbb86144156a3158e48f105ee4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 23 14:38:03 2009 +0100

    server: add db_directory_state to ctdb_context
    
    metze

commit 6529a1328b9ec304ad306674651b2a67e4426e23
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 23 14:40:17 2009 +0100

    server: create tdbs with 0600 permissions in ctdb_local_attach()
    
    metze

commit 10d95581fb90bfdf58ec32345c4e36c27acf4f37
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 9 15:06:59 2009 +0100

    config: load 'ctdb' config before 'nfs' config in statd-callout
    
    All other scripts do 'loadconfig ctdb' before any other 'loadconfig foo'
    call. I think we should do the same in statd-callout.
    
    Otherwise it's very confusing, if you have configured some Options
    in /etc/sysconfig/ctdb, but /etc/ctdb/statd-callout doesn't notice
    them.
    
    metze

commit 1635e931b909c66eb3b1f5357e3a549b1a0da70d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Nov 20 21:17:59 2009 +0100

    ctdb: pass TDB_DISALLOW_NESTING to all tdb_open/tdb_wrap_open calls
    
    metze
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 093f57a2c00f2d629a3b58e58202f1a7e1bbd406
Author: Simo Sorce <idra at samba.org>
Date:   Mon Dec 7 09:25:03 2009 -0500

    Fix release script with newer versins of git
    (cherry picked from commit 4334092cbae28181ba0d1cf2ac026961f2192972)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit d1873bd81bfc9f486b88f3a38c65c7de8f5a0909
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date:   Fri Oct 16 19:02:02 2009 +0200

    tdb tools: Mostly cosmetic adaptions
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from samba commit 9776cb03450d21da5d454e683bdba29793ba3f67)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 04aeac728f56c65b973762f09977de1b1b99099e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 09:49:03 2009 +0100

    tdb: change version to 1.2.0 after adding TDB_*ALLOW_NESTING
    
    metze
    (cherry picked from samba commit 5ca0a4bfd6fdbb515835682a12f715283b46cb3e)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit c1c0ede32dc00ed619d1cf5fda40a9de43995f3a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 09:34:05 2009 +0100

    tdb: add TDB_DISALLOW_NESTING and make TDB_ALLOW_NESTING the default behavior
    
    We need to keep TDB_ALLOW_NESTING as default behavior,
    so that existing code continues to work.
    
    However we may change the default together with a major version
    number change in future.
    
    metze
    (cherry picked from samba commit 3b9f19ed919fef2e88b2f92ae541e07bc7379cd1)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 855391c1e37012b0d6c673a304bb8da8a1efcd72
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 09:38:48 2009 +0100

    tdb: always set tdb->tracefd to -1 to be safe on goto fail
    
    metze
    (cherry picked from samba commit 85449b7bcc4bd7948bea38b5514a02357950a002)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 6126f04bd4982b66564dcccd92a15baf9cb856f3
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Nov 6 14:04:49 2009 +0100

    tdb: Fix a C++ warning (cherry picked from samba commit be88a126ea50ea7e41583f402013c63234305e48)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 7a88f1df9190674deaf5dcbedad02ae4120a5263
Author: Kirill Smelkov <kirr at mns.spb.ru>
Date:   Wed Oct 21 21:18:58 2009 +0400

    tdb: update README a bit
    
    While studying tdb, I've noticed a couple of mismatches between readme
    and actual code:
    
    - tdb_open_ex changed it's log_fn argument to log_ctx
    - there is now no tdb_update(), which it seems was transformed into
      non-exported tdb_update_hash()
    
    There were other mismatches, but I don't remember them now, sorry.
    
    Signed-off-by: Kirill Smelkov <kirr at mns.spb.ru>
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit 83de5c826313aa09c76131ae70550bd81b3521c5)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 03372b4ea8ba2938468a5c0fc234d604966ce070
Author: Kirill Smelkov <kirr at mns.spb.ru>
Date:   Wed Oct 21 21:18:57 2009 +0400

    tdb: add tests for double .close() in pytdb
    
    The reason I do it is that when using older python-tdb as shipped in
    Debian Lenny, python interpreter crashes on this test:
    
        (gdb) bt
        #0  0xb7f8c424 in __kernel_vsyscall ()
        #1  0xb7df5640 in raise () from /lib/i686/cmov/libc.so.6
        #2  0xb7df7018 in abort () from /lib/i686/cmov/libc.so.6
        #3  0xb7e3234d in __libc_message () from /lib/i686/cmov/libc.so.6
        #4  0xb7e38624 in malloc_printerr () from /lib/i686/cmov/libc.so.6
        #5  0xb7e3a826 in free () from /lib/i686/cmov/libc.so.6
        #6  0xb7b39c84 in tdb_close () from /usr/lib/libtdb.so.1
        #7  0xb7b43e14 in ?? () from /var/lib/python-support/python2.5/_tdb.so
        #8  0x0a038d08 in ?? ()
        #9  0x00000000 in ?? ()
    
    master's pytdb does not (we have a check for self->closed in obj_close()),
    but still...
    
    Signed-off-by: Kirill Smelkov <kirr at mns.spb.ru>
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit 71a21393dd1bb61bded82b1581ac6d5bd3b0153c)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit f5c992bdaeb73ef726ff4728a9922721474cd6f5
Author: Kirill Smelkov <kirr at mns.spb.ru>
Date:   Wed Oct 21 21:18:56 2009 +0400

    tdb: reset tdb->fd to -1 in tdb_close()
    
    So that erroneous double tdb_close() calls do not try to close() same
    fd again. This is like SAFE_FREE() but for fd.
    
    Signed-off-by: Kirill Smelkov <kirr at mns.spb.ru>
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit b4424f8234a78a79fb2d71d46ca208b4f12e0f9e)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 76aacdd8e1106f26565e25903091a757b59cd7e2
Author: Kirill Smelkov <kirr at mns.spb.ru>
Date:   Wed Oct 21 21:18:55 2009 +0400

    tdb: fix typo in python's Tdb.get() docstring
    
    It's Tdb.get(), not Tdb.fetch().
    
    Signed-off-by: Kirill Smelkov <kirr at mns.spb.ru>
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit cfed5f946de0992a594c189ee3c19cf98e59d380)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 470750fa2e3cf987f10de48451b1ee13aab03907
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Oct 23 22:45:03 2009 +1100

    tdb: detect tdb store of identical records and skip
    
    This can help with ldb where we rewrite the index records
    (cherry picked from samba commit d4c0e8fdf063f88032c32de7ece60d502b322089)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 03b3682e3fa53c9f5fdf2c4beac8b5d030fd2630
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 23 13:51:03 2009 +0200

    tdb: rename 'struct list_struct' into 'struct tdb_record'
    
    metze
    (cherry picked from samba commit 3b62e250c066f44d0ab08a7db037b6b4f74a914b)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 6ac7ef8bf4d384f880c7f483ace70f8e08c15a8b
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Nov 19 22:15:59 2009 +0100

    lib/tdb: make tdbtool use tdb_check() for "check" command
    
    Also, set logging function so we get more informative messages.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    
    (cherry picked from samba commit 094493115971cf3d5a3138ff10ebe02335824723)
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit df1a3ce0380fa9d8722b2f9b16f65557095e4c83
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Oct 22 00:10:34 2009 +1030

    lib/tdb: add tdb_check()
    
    ctdb wants a quick way to detect corrupt tdbs; particularly, tdbs with
    loops in their hash chains.  tdb_check() provides this.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    
    (cherry picked from samba commit 022b4d4aa6861c1e3e6d76484d92555221cb6d14)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 27611d6a0c313732e438cb24c82b9de126e50156
Author: Kirill Smelkov <kirr at mns.spb.ru>
Date:   Wed Oct 21 21:18:54 2009 +0400

    tdb: kill last bits from swig
    
    We no longer use swig for pytdb, so there is no need for swig make
    rules. Also pytdb.c header should be updated.
    
    Signed-off-by: Kirill Smelkov <kirr at mns.spb.ru>
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit ecbe5ebd8d1c44a478c613eb1cace0521142d0d3)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 1d5c5a221c28f1dc652a80ed516a0f18ba588d9f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 15:44:10 2009 +0100

    lib/tdb: sync build files from samba master
    
    metze
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit c40d14b1b7ba7c9ae40c0306a2e552504e0f92a6
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 16:52:46 2009 +0100

    s3 build: Remove unused fstat check to fix a bunch of HAVE_FSTAT warnings (cherry picked from samba commit 2c2545d45af9c7479bf032fff1263e102926a495)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 5652e403be099f35cdd29fda8ba4fe2c35de8035
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Jan 30 19:38:59 2009 +0100

    lib/tdb: include replace.h and system/filesys.h in pytdb.c
    
    This fixes the build on Tru64.
    
    metze
    (cherry picked from samba commit 3718cf294ad1f3e00178cb34b2c914c9aecf2016)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit da47169c4d3bc1b446b49610d892df05638e912c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 16:50:50 2009 +0100

    Avoid using a utility header for Python replacements included in Samba, since this will not be shipped with talloc/tdb/tevent/etc. (cherry picked from samba commit ba5d6e6d706ebf07640ee24d701255cbb4803525)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 4130c5dd10869b071124e2bf04d6807bbb11ab1f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 16:49:13 2009 +0100

    s3/s4 build: Fix Py_RETURN_NONE to work with python versions < 2.4 (cherry picked from samba commit 61a23c5eea2203721a70a4ad41bfdc6cd1d6a2a7)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit e7242221c3318a5c312e17ff4074bef80b639ca8
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 16:31:29 2009 +0100

    py: Properly increase the reference counter of Py_None. (cherry picked from samba commit d2c70d24e12293d9b4272eb310a6a4c4582b2d92)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 52f78e040749d24058ee1f575d949b57d15f5987
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Dec 18 20:42:50 2008 +0000

    Make sure to not close tdb database more than once. (cherry picked from samba commit 6fe6983e4c960abc69d5fa80cbef534ae515209a)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 3a671b11770057c91e0ae646499d4714f52bc5c0
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Dec 18 19:41:02 2008 +0000

    Implement missing functions in pytdb. (cherry picked from samba commit 2da551bbcc6cab296769c193b0b82aaa6256cece)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 2231ee0aa163d68383dd9636f25f033fe7c1f3e7
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 16:25:49 2009 +0100

    Add simple manually written replacement for the tdb module. (cherry picked from samba commit 2a61fd41e9d4d2e3d7b47a816544c88bb369bc03)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 363c34d4bb488609317794cd3153d85c12643110
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Jan 10 21:44:38 2008 +0100

    tdb: Add simple reimplementation of tdbdump in Python as an example of the tdb Python bindings. (This used to be commit 47d797f7885b1e7bcff724496ecb1990e8440eea) (cherry picked from samba commit 6bdd1425b75c8931965f0e5627f5a63dc6820a7c)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 236dc2fa29b3c0caec51859dbd469f0a13f5917e
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 5 15:32:22 2008 -0700

    Remove unecessary msync. Jeremy. (cherry picked from samba commit 0bae1ef3de8fda5e1e2d641b14a408e627396912) (This used to be commit db2acaf46fdc38078b6b28b68909e289f6c9e0ec) (cherry picked from samba commit a1cf3ad5d655cf5a847df6d6299b3af1a30ec1e3)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 5aa0ab328c36ecd4d7ec03f921e6027340c2ef13
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 15:35:38 2009 +0100

    The msync manpage reports that msync *must* be called before munmap. Failure to do so may result in lost data. Fix an ifdef check, I really think we meant to check HAVE_MMAP here. (cherry picked from samba commit 74c8575b3f3b90ea21ae6aa7ccd95947838af956) (This used to be commit 8fd54bb55f0c23bd025d1719abcbe75c6a2ea8ac) (cherry picked from samba commit b39e332bd7803dd4ce8267f750c497b5deb837ee)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit b02bf7659f04f1fa203834bd75a2392b48e56c16
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Aug 12 22:31:52 2008 +0200

    Attempt to fix bug 5684
    
    With the ctdb checkin dde9f3f006 tdb optimized out write lock checks for
    write-enabled transaction. Sadly, this also removed the possibility to ever
    remove dead records left over from tdb_delete calls within a transaction.
    
    Tridge, please check this! Did dde9f3f006 have any reason beyond performance
    optimizations?
    
    Thanks,
    
    Volker
    (cherry picked from samba commit 3f884c4ae36f3260e63626bdd4989d9258ae6497)
    (This used to be commit 1d85e0647e287d269b3f6b534da88f497d6f76c3)
    (cherry picked from samba commit 8c88209c6f4b57b0dbe1459bd5bc583c5d321758)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 5d4cc4b018a538dc3f1d79fe091f3e6e67003daf
Author: Slava Semushin <php-coder at altlinux.ru>
Date:   Sun Jun 7 00:06:04 2009 +0700

    lib/tdb/tools/tdbtorture.c: fixed memory leak.
    
    Found by cppcheck:
    [lib/tdb/tools/tdbtorture.c:326]: (error) Memory leak: pids
    (cherry picked from samba commit 497b9e460b5defd60de89b9c5bed890f83ca86a1)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 923b61fe722c0aec8a5b6ac8dd1df74957dc102b
Author: Andrew Tridgell <tridge at samba.org>
Date:   Tue Mar 31 13:59:03 2009 +1100

    added basic testing of tdb_transaction_prepare_commit() in tdbtorture (cherry picked from samba commit 84547b8dba3c0cf4e20b3c50d9386081d475df6b)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit cd23d36ada9631095ca68663516de0c8d8c3bbed
Author: Andrew Tridgell <tridge at samba.org>
Date:   Tue Dec 16 14:36:56 2008 +1100

    make tdbbackup use transactions
    
    tdbbackup was originally written before we had transactions, and it
    attempted to use its own fsync() calls to make it safe. Now that we
    have transactions we can do it in a much safer (and faster!) fashion
    (cherry picked from samba commit 2e4247782bd5812bc8e7ea24194c8436748bb2fa)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 3d44412593b8748a5158e15b83cd9eb548231194
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu May 28 17:35:12 2009 +1000

    fixed tdbbackup to give tdb error messages (cherry picked from samba commit 08be1420ba52ef9bba90d0f811c7810841ee8568)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit f7278a277ed91587cae5b5e3660dad7124bdb73f
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Oct 22 00:10:54 2009 +1030

    lib/tdb: add -t (always use transactions) option to tdbtorture
    
    This means you can kill it at any time and expect no corruption.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    
    (cherry picked from samba commit 0fc6800005ffb532a5e5699c97f13f1de138d51f)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit a6620f6e74aadc708395b21b42303d1082192fcc
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Oct 22 00:09:43 2009 +1030

    lib/tdb: wean off TDB_ERRCODE.
    
    It was a regrettable hack which I used to reduce line count in tdb; in fact it caused confusion as can be seen in this patch.
    In particular, ecode now needs to be set before TDB_LOG anyway, and having it exposed in
    the header is useless (the struct tdb_context isn't defined, so it's doubly useless).
    Also, we should never set errno, as io.c was doing.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    
    (cherry picked from samba commit b77f41d58b05101e02d8ac0e54cb0e30807d89c2)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit b01b756cb577f32a1ec4597efb00017241e01685
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Oct 20 12:19:41 2009 +1030

    lib/tdb: TDB_TRACE support (for developers)
    
    When TDB_TRACE is defined (in tdb_private.h), verbose tracing of tdb operations is enabled.
    This can be replayed using "replay_trace" from http://ccan.ozlabs.org/info/tdb.
    
    The majority of this patch comes from moving internal functions to _<funcname> to
    avoid double-tracing.  There should be no additional overhead for the normal (!TDB_TRACE)
    case.
    
    Note that the verbose traces compress really well with rzip.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit 703004340c3e0f43f741bd368d2525cfd187d590)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 43c97b259b19c42b4edc7f83dbfc5e486568b4e3
Author: Andrew Tridgell <tridge at samba.org>
Date:   Tue Oct 20 10:59:40 2009 +1100

    tdb: fixed the intermittent failure of tdbtorture in the build farm
    
    There was a race condition that caused the torture.tdb to be left in a
    state that needed recovery. The torture code thought that any message
    from the tdb code was an error, so the "recovered" message, which is a
    TDB_DEBUG_TRACE message, marked the run as being an error when it
    isn't.
    (cherry picked from samba commit 5dcf0069b68149575fe6166019dd90b73885926b)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit c1b8d32b4ef87b9d8f37b451f47fcee2ea753d21
Author: Michael Adam <obnox at samba.org>
Date:   Mon Sep 21 00:08:34 2009 +0200

    tdb:tdbtool: fix indentation.
    
    Michael
    (cherry picked from samba commit e440a2e11e78a562f97971c0dfe0cf3f694996ff)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit e4d49c182e12c2d429d0414209cc2c8ccc19dc91
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Nov 19 14:31:29 2009 +0100

    Fix all warnings in source3 with gcc4.3. Jeremy. (cherry picked from samba commit 07e0094365e8dc360a83eec2e7cf9b1d5d8d6d00)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 94f5728a77b8c772fb16c4744c24b45de8016e52
Author: Tim Prouty <tprouty at samba.org>
Date:   Tue Dec 16 08:33:58 2008 -0800

    s3/s4: Fix "shadows a global declaration" warning (cherry picked from samba commit e48a5cd5d4fc2626b09af16a0ac68c638d081437)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 5830a2427b84e1cce74390b58fe12c45b5a056a6
Author: Tim Prouty <tprouty at samba.org>
Date:   Wed May 27 12:52:37 2009 -0700

    tdb: Fix some recently introduced warnings in tdbtool (cherry picked from samba commit c299833bf8e6506c793d6e8283743949aaac9ef4)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 463279c972fa4538919bdd1dff48ca6b2fb8d49c
Author: Andrew Tridgell <tridge at samba.org>
Date:   Tue May 26 09:24:37 2009 +1000

    added some more speed tests to tdbtool
    
    This adds 3 simple speed tests to tdbtool, for transaction store,
    store and fetch.
    
    On my laptop this shows transactions costing about 10ms
    (cherry picked from samba commit e15027155d3d880abde83124e252b3dd10a9aae4)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 35a5b874b925380f7c227e47aebb590c9db4739e
Author: Michael Adam <obnox at samba.org>
Date:   Sun Sep 20 23:58:27 2009 +0200

    tdb:tdbtool: add transaction_start/_commit/_cancel commands.
    
    So one can perform tdbtool operations protected by transactions.
    
    Michael
    (cherry picked from samba commit 91e1bab2e9a3f33151061554f2dcf05bcb728312)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit dc287a7d7420cca0b104049e689a73202bc535f8
Author: Michael Adam <obnox at samba.org>
Date:   Sun Sep 20 23:58:05 2009 +0200

    tdb:tdbtool: add the "speed" command to the help text.
    
    Michael
    (cherry picked from samba commit 817383d88d820e7be5b5dd3d2da350d4a03a94de)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 02b35ba77672727c96ad004be37c7f6f1d3fe474
Author: Holger Hetterich <hhetter at novell.com>
Date:   Sun Nov 2 00:12:32 2008 +0100

    Added a simple tdb integrity check to tdbtool. The command "check" runs traverse on the currently open tdb, and returns the number of entries if the integrity check is successful. (cherry picked from samba commit 42366bcbbdd42bb9d5821dfcc9dbe71a1eafa330)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 5ef5ddb8369e5e76173285fe9a08498dc8dc73ab
Author: Andrew Tridgell <tridge at samba.org>
Date:   Tue Sep 15 14:04:22 2009 -0700

    tdb: allow reads after prepare commit
    
    We previously only allowed a commit to happen after a prepare
    commit. It is in fact safe to allow reads between a prepare and a
    commit, and the s4 replication code can make use of that, so allow it.
    (cherry picked from samba commit 46c99ec2a3781d53138245182345c6c2ddd9a258)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit ef1dc585d869a9e48164cd65bafc92c1da245007
Author: Michael Adam <obnox at samba.org>
Date:   Fri Sep 11 15:20:34 2009 +0200

    tdb:mksigs: allow PRINTF_ATTRIBUTE(..) macros function types as funcion args
    
    Michael
    (cherry picked from samba commit 55dcf928eb6ce603c5e95a9a80856a4deb33d0c6)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 0ae735b7a2096a40e5e47086ec41d9d45ef6d36b
Author: Michael Adam <obnox at samba.org>
Date:   Fri Sep 11 15:16:03 2009 +0200

    tdb:mksigs: normalize bool -> _Bool
    
    Michael
    (cherry picked from samba commit cfa4e7ec7540d1100649839a10968303189fe929)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 2e69647404c87c438ae7c180277ac3b532941efd
Author: Michael Adam <obnox at samba.org>
Date:   Fri Sep 11 15:11:16 2009 +0200

    tdb:mksigs: ignore symbols (like _DEPRECATED_) after closing function parentheses
    
    Michael
    (cherry picked from samba commit 25939a627f15b7a21110767d47be0f50f32d3943)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 37225f1ed3f70d7259c2af2c51c671105c34476a
Author: Michael Adam <obnox at samba.org>
Date:   Fri Sep 11 15:01:46 2009 +0200

    tdb:mksigs: correctly ignode multiline function typedefs
    
    by first concatenating multilint parentheses and removing typefes afterwards.
    
    Michael
    (cherry picked from samba commit 13bfcd5a93c47c9db8b644560a1bcc398facb136)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 66fffa577e051212ac7541be906b6c80f4a7c0c9
Author: Michael Adam <obnox at samba.org>
Date:   Fri Sep 11 14:55:52 2009 +0200

    tdb:mksigs: ignore struct forward declarations.
    
    Michael
    (cherry picked from samba commit ecd12bfb382da072595391d5bf11a893d39a0479)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 310d673b7cb9000d76437d78e43bc2bf133e4e14
Author: Michael Adam <obnox at samba.org>
Date:   Fri Sep 11 14:54:30 2009 +0200

    tdb:mksyms: allow characters after closing functions parenthesis.
    
    Michael
    (cherry picked from samba commit 400f08450b26f38a7dafd1d458542b4d9a8cb19e)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit f70e371d70e334a7254649b2bb09aa382e6f09bb
Author: Michael Adam <obnox at samba.org>
Date:   Fri Sep 11 14:54:02 2009 +0200

    tdb:mksyms: allow double pointer return value of functions.
    
    Michael
    (cherry picked from samba commit 907e05595fdcc4ef77ad627bc0f3732faa59de68)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 9d5015e6fc68d3eb9e7b7178dbaf8c129dc79471
Author: Günther Deschner <gd at samba.org>
Date:   Mon Sep 7 11:56:10 2009 +0200

    tdb: fix c++ build warning.
    
    Guenther
    (cherry picked from samba commit 1c2f4919abe99d07540b7380ad16d475d62aa50b)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit efa4a795db7fb2bddaab3969850d1554fc5f4da1
Author: Michael Adam <obnox at samba.org>
Date:   Sun Aug 30 00:55:28 2009 +0200

    One would expect I could spell my name... (cherry picked from samba commit 0d120be36bfc561e3f679d081993ccc6bea2a401)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 724d71dc838750fff91a45359feeb6e71bf0a4c7
Author: Michael Adam <obnox at samba.org>
Date:   Fri Aug 28 15:53:12 2009 +0200

    tdb: add script/abi_checks.sh. check for abi changes without gcc magic.
    
    USAGE: abi_checks.sh LIBRARY_NAME header1 [header2 ...]
    
    This creates symbol signature lists using the mksyms and mksigs scripts
    and compares them with the checked in lists.
    
    Michael
    (cherry picked from samba commit 9636e0d373e75cce7063b710227eaaf53f447c1b)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 141422d9dc24b15b7b8bc7831adab90367a729f7
Author: Michael Adam <obnox at samba.org>
Date:   Fri Aug 28 15:08:19 2009 +0200

    tdb: add script to extract signatures from header files.
    
    This produces output like the output gcc produces when
    invoked with the -aux-info switch.
    
    Run like this: cat include/tdb.h | ./script/mksigs.pl
    
    This simple parser is probably too coarse to handle all
    possible header files, but it treats tdb.h correctly...
    
    Michael
    (cherry picked from samba commit 0760a04ef9f7d2f3d966017295712769d02b8b9f)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit aed864dceaf6ec1e6e6066a587c708b485901200
Author: Michael Adam <obnox at samba.org>
Date:   Fri Aug 28 15:01:17 2009 +0200

    tdb: add scripts to extract library symbols (exports file) from headers
    
    Michael
    (cherry picked from samba commit 006fd0c43c7c403b8671dfc46e5ee31e92480e1f)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit eebd467961dad6cfb38c2a5d6e4b4dbf86e55e63
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Aug 28 11:56:34 2009 +0930

    lib/tdb: don't overwrite TDBs with different version numbers.
    
    In future, this may happen, and we don't want to clobber them.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit 398d0c2929026fccb3409316720a4dcad225ab05)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 6f8614de0f20d4c507aecd744d9c3f6545078127
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Aug 6 11:47:08 2009 -0700

    Add define guards around otherwise unused variable. Jeremy. (cherry picked from samba commit 4fc9f9c3f943cdeb27e37f0ee068cdd0da7cb00c)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 2d768f664e6db65b3b7e0c732f33ee2b806892f9
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Aug 6 13:13:42 2009 +1000

    There is one signedness issue in tdb which prevents traverses of TDB records over the 2G offset on systems which support 64 bit file offsets. This fixes that case.
    
    On systems with 32 bit offsets, expansion and fcntl locking on these records
    will fail anyway.  SAMBA already does '#define _FILE_OFFSET_BITS 64' in
    config.h (on my 32-bit x86 Linux system at least) to get 64 bit file offsets.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    (cherry picked from samba commit 252f7da702fd0409f7bfff05ef594911ededa32f)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit b883d19a495a41a22db37f9c2cf6250fee529de0
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 16 09:51:17 2009 +1100

    Revert "cleanup:   remove a tunable we no longer use in the eventscripts any more :"
    
    This reverts commit 401f421fa003d9515df15e759b50b56e0c67d69c.
    
    Conflicts:
    
    	include/ctdb_private.h
    	server/ctdb_tunables.c

commit b765e12a5fb87a6121e49b349017b6a961929346
Merge: 6ed34d5320c39d8a55f2a36ad4c1ab574e0b0796 3d2d877d877146ca09a28a3a44f4840eb36fd377
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 21:00:22 2009 +1100

    Merge branch 'trans3'

commit 6ed34d5320c39d8a55f2a36ad4c1ab574e0b0796
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 20:56:16 2009 +1100

    Author: Rusty Russell <rusty at rustcorp.com.au>
    Date:   Tue Dec 15 15:53:30 2009 +1030
    
        eventscript: hack to avoid overloading valgrind
    
        Now we fork one child per script, when running under valgrind the
    load
        gets quite high.  This is because valgrind does a lot of work after
    exit,
        and we don't wait for the children to finish; we start the next one
    when
        the child reports status via the pipe.
    
        This fix is ugly, but simple.
    
        Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit bcf494b81f4277dc75f05faccf0c446bd15f6e2b
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 19:04:52 2009 +1100

    This is a dodgy patch.
    
    I saw once where the master ctdbd logging structure was talloc freed
    which caused issues.
    So only free the structure if it is NOT the master structure.
    
    This needs to be looked into in more detail.

commit 3d2d877d877146ca09a28a3a44f4840eb36fd377
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 14:26:28 2009 +1100

    Revert "Make fetch_locked more scalable"
    
    This reverts commit 5736e17c139c9a8049e235429aeae0c6c9d0e93d.

commit ac06a0e042e7d024060d6e87a49bda9ccc072c52
Merge: ea9e39369379939abf6a4076fa2014c10c1a9ad0 c5a0aef668a63f927d6184612b13ce316eb4a0be
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 14:25:55 2009 +1100

    Merge commit 'obnox/ctdb-wip-trans3' into trans3

commit 24767be2eb9aed29704c2a4097bab5466cb6728f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 12:14:49 2009 +1100

    add a new test tool that just locks and releases the same record over and over

commit 340be0179f55acfff77f8c3c8be958679227bde1
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 11:29:16 2009 +1100

    ctdb_fetch requires the number of nodes being specified.
    Have it log an error and terminate if thie parameter was omitted

commit ea9e39369379939abf6a4076fa2014c10c1a9ad0
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 10:45:18 2009 +1100

    When setting up the logging, set the event to trigger a read of a log message from a child process as a child of the "log" structure and not the ctdb structure,
    or else we can crash if we receive log messages from a child but the log structure has been freed()

commit 211ea7907e8e96041aa6f7d086551d64d065a8a3
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 15 10:23:58 2009 +1100

    From rusty:
    
    Subject: eventscript: fix spinning at 100% cpu when child exits.
    
    ctdbd was spinning reading 0 from a pipe, as soon as the first
    eventscript finishes.
    
    This was caused by the intersection between a78b8ea7168e "Run only one
    event for each epoll_wait/select call" and 32cfdc3aec34 "eventscript:
    ctdb_fork_with_logging()".  Unavoidable mid-air collision, since both
    worked fine and both were developed simultaneously.
    
    When the script exits, we have two pipes open to it: one for any
    stdout/stderr for logging (ctdb_log_handler), and one for the result
    (ctdb_event_script_handler).  The latter frees everything, including
    the log fd and event structure.
    
    We used to get one callback to ctdb_log_handler, which got a harmless
    0-length read, then one to ctdb_event_script_handler which cleaned up.
    Now we only do one callback per poll, we need the logging function to
    clean itself up so we can make process.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 5c8e56fc7a518e115bceac257867739283cf6a1e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Dec 14 15:53:23 2009 +1100

    Rename the tunable EventScriptBanCount to EventScriptTimeoutCount
    since we no longer ban nodes when dodgy scripts continue to hang.
    
    We now only mark nodes as unhealthy if monitor events fail or timeout. Never ban.

commit 401f421fa003d9515df15e759b50b56e0c67d69c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Dec 14 15:48:47 2009 +1100

    cleanup:   remove a tunable we no longer use in the eventscripts any more :
    EventScriptUnhealthyOnTimeout

commit 1b4e7bb548976b99f122142b040494b6f9911962
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Dec 10 20:35:54 2009 +1030

    ctdb: don't print OUTPUT: for DISABLED scripts
    
    In other news, did you know ctime() returns a \n-terminated string?
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 0ea0e27d93398df997d3df9d8bf112358af3a4a5
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Dec 10 20:25:33 2009 +1030

    eventscript: fix monitoring when killed by another script command
    
    Commit c1ba1392fe "eventscript: get rid of ctdb_control_event_script_finished
    altogether" was wrong: there is one case where we want to free the script
    without transferring their status to last_status.  This happens because we
    always kill an running monitor command when we run any other command.
    
    This still isn't quite right (and never was): the callback will be called
    with status value 0, which might flip us to HEALTHY if we were unhealthy.
    This is conveniently fixed in my next set of patches :)
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 68a8ee99b128a5ec883600735626bdb3bbc9c503
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Dec 14 15:40:54 2009 +1100

    remove the variable "disable when unhealthy"
    there is no rational need for a setting where we permanently mark nodes as disabled everytime an eventscript fails

commit c5a0aef668a63f927d6184612b13ce316eb4a0be
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 17:05:30 2009 +0100

    Revert "recovery: add special pull-logic for persistent databases"
    
    This reverts commit 8aef46d2aab3efb322dda51eaa202653cefd5222.
    
    This special recovery logic is wrong now with the transaction rewrite.
    The treatment of persistent databases will later be rewritten to use the
    database sequence number.
    
    Michael

commit 5736e17c139c9a8049e235429aeae0c6c9d0e93d
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Dec 9 15:11:45 2009 +0100

    Make fetch_locked more scalable
    
    This patch improves the handling of the fetch_lock operation on non-persistent
    databases that ctdb clients have to do very frequently.
    
    The normal flow how this goes is the following:
    
    1. Client does a local fetch_lock on the database
    
    2. Client looks if the local node is dmaster.
       If yes, everything is fine
       If no, continue here
    
    3. Client unlocks the local record
    
    4. Client issues a "get me the record" call to ctdbd
    
    5. ctdbd goes out and fetches the dmaster role
    
    6. ctdbd tells the client to retry
    
    7. Client starts over again
    
    The problem is between step 6 and 7: Before the client has had the chance to
    retry (i.e. catch the record with a fetch_locked), another node might have come
    asking ctdbd to migrate away the record again. This is a real problem, I've
    seen >20 loops of this kind in real workloads.
    
    This patch does the following: Whenever ctdb receives a record as result of
    step 5, it puts the key on a "holdback list". As long as a key is on this list,
    a request to migrate away the dmaster is put on hold. It is the client's duty
    to issue the "CTDB_CONTROL_GOTIT" control when it has successfully done step 2
    after having asked ctdb to fetch the record. This will release the key from the
    "holdback list" and re-issue all dmaster migration requests.
    
    As a safeguard against malicious clients, once a second (default 1000msecs,
    tunable "HoldbackCleanupInterval" in milliseconds) ctdbd goes over the list of
    held back keys, deletes them and releases all held back migration requests.

commit 844aa6300ee4d87561e698001ebc15ac1e455528
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Dec 10 13:02:29 2009 +0100

    Import "talloc_array_length" from upstream talloc

commit 78ca29352aa39f4ef4e41096b92d55cb2e0d348a
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 16:39:58 2009 +0100

    tests: temporarily disable the transaction test tool.
    
    Make it return success for make test.
    This is temporarily disabled until the rewrite of the
    transaction code (in samba and the daemon) using the global
    lock feature has been ported to the ctdb client code.
    
    Michael

commit a7e3b5fac6b3f5d74473f26eb86c067b35647996
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 15:31:02 2009 +0100

    Add a new control CTDB_GET_DB_SEQNUM - fetch a persistent db's sequence number.
    
    Michael

commit 4b1dbcf0853bdc4832d39a477823ae34f216da52
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 11 14:19:55 2009 +0100

    define CTDB_DB_SEQNUM_KEY - used with the new implementation of transactions.
    
    Michael

commit 1640da1cab7e8b545367824204c82931f3346848
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Dec 9 17:20:23 2009 +0100

    Tiny simplification of ctdb_queue_packet()

commit 6af5e74a21546d723008d69d6752ebebf898c947
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Dec 8 17:00:55 2009 +0100

    Rename a struct member for clarity

commit f66428f9d2013080a414404c1ba6117888352fd6
Author: Michael Adam <obnox at samba.org>
Date:   Thu Dec 3 17:59:49 2009 +0100

    server: add a new control CTDB_CONTROL_TRANS3_COMMIT
    
    This is a simplified version of the trans2 commit control:
    It just rolls out the marshall buffer to all active nodes.
    
    It is the main ctdbd part of the re-implementation of the
    persistent transactions. The client code is changed to
    take a global lock to start a transactions and store into
    the marshal buffer instead of writing to the local tdb
    under a local transaction.
    
    The old transaction implementation is going to be
    removed in a later commit.
    
    Michael

commit af6656f2844d8fd72204a70358c9d589dbe1bd34
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Dec 10 08:53:55 2009 +1100

    From: Volker Lendecke <vl at samba.org>
    Date: Wed, 9 Dec 2009 22:45:12 +0100
    Subject: [PATCH] Revert an accidential commit

commit 59f46d7261dfdbdef900bf95dd9eb28ad22a46b2
Author: Michael Adam <obnox at samba.org>
Date:   Wed Dec 9 22:04:48 2009 +0100

    tests: remove the no_trans mode from ctdb_transaction.
    
    Writes without transaction are not possible any more on
    persistent databases.
    
    Michael

commit b022863d44026c19d5aae54aa485b670bea0540e
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jul 30 11:59:59 2009 +0200

    tests: remove the persistent_unsafe writes test.
    
    This is useless now that persistent write operations without
    transaction are forbidden.
    
    Michael

commit 9ac82311d796e1fab31f8de62b8ccc754445093c
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jul 30 11:59:02 2009 +0200

    tests: remove persistent_safe write test.
    
    This is useless now that persistent writes without transactions are forbidden.
    
    Michael

commit 2ff2679e8f3d50ebf735f2c420898a84268bdc95
Author: Michael Adam <obnox at samba.org>
Date:   Wed Dec 9 21:38:44 2009 +0100

    test: add test 54_ctdb_transaction_recovery.sh
    
    This is like the 53_ctdb_transaction test, but it additionally
    runs a loop with recoveries while the transactions are running.
    
    When called like this, the transaction loops run for 10 minutes:
    
    CTDB_TEST_TIMELIMIT=600 tests/scripts/run_tests tests/simple/54_ctdb_transaction_recovery.sh
    
    The default timelimit is 30 seconds.
    
    Michael

commit c13077ca64f6e6569c30ef7fcb044e5711dce1a3
Author: Michael Adam <obnox at samba.org>
Date:   Wed Dec 9 21:36:42 2009 +0100

    test: get value for --timelimit from environment var CTDB_TEST_TIMELIMIT in transaction test
    
    Michael

commit c46adb210e47530488503e20d682d4d182c0fb79
Author: Michael Adam <obnox at samba.org>
Date:   Wed Dec 9 15:05:20 2009 +0100

    client: lower level of commit retry message WARNING->DEBUG
    
    This can happen frequently when recoveries intercept transactions.
    
    Michael

commit 54d227811753f4a87f1a2c9dc0b1389f5ca2a12f
Author: Michael Adam <obnox at samba.org>
Date:   Wed Dec 9 13:48:49 2009 +0100

    client: lower debug level of transaction-active-retry message to DEBUG
    
    This reduces some noise.
    
    Michael

commit 7f64a00c76203fdf6673c3f862a4bfd17fb848d7
Author: Michael Adam <obnox at samba.org>
Date:   Wed Dec 9 13:43:38 2009 +0100

    call: lower the debug message "refusing migration while transction" to lvl INFO
    
    This gets just too noisy on a busy system.
    And it is purley informational anyways...
    
    Michael

commit a78b8ea7168e5fdb2d62379ad3112008b2748576
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Dec 9 17:14:16 2009 +0100

    Run only one event for each epoll_wait/select call
    
    This might be a bit less efficient, but experience in winbind has shown that
    event callbacks can trigger changes in the socket state in very hard to
    diagnose ways.

commit 142111983c103e90ccccbe26fd580c4eb28e949f
Author: Christian Ambach <christian.ambach at de.ibm.com>
Date:   Tue Dec 8 19:23:19 2009 +0100

    reduce vacuuming lognoise
    
    syslog.h says:
    
    LOG_NOTICE      5    normal but significant condition
    LOG_INFO        6    informational
    
    several vacuuming related logs logged at NOTICE level although I don't see
    any real significance, these are just informational messages for me
    
    Signed-off-by: Christian Ambach <christian.ambach at de.ibm.com>

commit dccb549fd6a6e338063699544e52f2a1a6a966b5
Author: Christian Ambach <christian.ambach at de.ibm.com>
Date:   Tue Dec 8 19:08:37 2009 +0100

    improve time jump logging
    
    add the __location__ macro to the logs to get a better idea
    in which loop the problem occured
    
    Signed-off-by: Christian Ambach <christian.ambach at de.ibm.com>

commit 6e8b279ed307eccac08386e98510361ba3ab3d36
Merge: 8cc6c5de3d7abb0b72eaa6e769e70963b02d84cb 9b90d671581e390e2892d3a68f3ca98d58bef4df
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 9 14:26:42 2009 +1100

    Merge commit 'rusty/script-report'

commit 8cc6c5de3d7abb0b72eaa6e769e70963b02d84cb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 9 11:33:04 2009 +1100

    Bond devices can have any name the user configures, so
    when checking link status for an interface, first
    check if this interface is in fact a bond device
    (by the precense of a /proc/net/bonding/IFACE file)
    and use that file for checking status.
    
    Othervise assume ib* is an infiniband interface which we donnt know how
    to check, or otherwise it is an ethernet interface and ethtool should
    hopefully work.

commit 03b5bbaae1b53830a4cd20d3079ab8f45ffce923
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 9 11:13:29 2009 +1100

    make sure to also check that interfaces used for NATGW are ok
    and have a link.
    if not the node should become unhealthy

commit 7b73834ba3ac197cc8a3020c111f9bb2c567e70b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Dec 7 14:37:21 2009 +0100

    events/50.samba: only use wbinfo --ping-dc if available
    
    metze

commit 9b90d671581e390e2892d3a68f3ca98d58bef4df
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 01:50:55 2009 +1030

    ctdb: scriptstatus can now query non-monitor events
    
    We also no longer return an error before scripts have been run; a special
    zero-length data means we have never run the scripts.
    
    "ctdb scriptstatus all" returns all event script results.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 53bc5ca23ca55a3ac63a440051f16716944a2a51
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 01:47:13 2009 +1030

    eventscript: expost call names and enum
    
    We're going to need this so ctdb can query non-monitor status.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 93153bca68926401dc9ae7fd77ed3f17be923344
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 01:32:36 2009 +1030

    eventscript: lock logging on timeout.
    
    Ronnie suggested this; seems like a very good idea.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 47ffe75848f216568ce3db0a60ca88cfe3d6903a
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 01:31:53 2009 +1030

    ctdb: support --machinereadable (-Y) for scriptstatus
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit c1ba1392fe52762960e896ace0aca0ee4faa94d5
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:29:10 2009 +1030

    eventscript: get rid of ctdb_control_event_script_finished altogether
    
    We always have to call it before freeing the state; we should just do
    this work in the destructor itself.
    
    Unfortunately, the script state would already be freed by the time
    the state destructor is called, so we make the script state a child of
    ctdb, and talloc_free() it manually on the one path which doesn't use
    the destructor.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit c73ea56275d4be76f7ed983d7565b20237dbdce3
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:27:48 2009 +1030

    eventscript: save state for all script invocations
    
    Rather than only tranferring to last_status for monitor events, do
    it for every event (ctdb->last_status is now an array).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 4cf1b7c32bcf7e4b65aec1fa7ee1a4b162cac889
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:24:56 2009 +1030

    eventscript: cleanup finished to take state arg
    
    We only need ctdb->current_monitor so we can kill it when we want to run
    something else; we don't need to use it here as we always know what script
    we are running.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit fd2f04554e604bc421806be96b987e601473a9b8
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:48:17 2009 +1030

    eventscript: use wire format internally for script status.
    
    The only difference between the exposed an internal structure now is
    that the name and output fields were pointers.  Switch to using
    ctdb_scripts_wire/ctdb_script_wire internally as well so marshalling
    is a noop.
    
    We now reject scripts which are too long and truncate logging to the
    511 characters we have space for (the entire output will be in the
    normal ctdbd log).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit f5cb41ecf3fa986b8af243e8546eb3b985cd902a
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:51:24 2009 +1030

    eventscript: rename ctdb_monitoring_wire to ctdb_scripts_wire
    
    We're going to allow fetching status of all script runs, so this
    name is no longer appropriate.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit e9661b383e0c50b9e3d114b7434dfe601aff5744
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:47:24 2009 +1030

    eventscript: get_current_script() helper
    
    This neatens the code slightly.  We also use the name 'current' in
    ctdb_event_script_handler() for uniformity.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 76e8bdc11b953398ce8850de57aa51f30cb46bff
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:47:05 2009 +1030

    eventscript: use an array rather than a linked list of scripts
    
    This brings us closer to the wire format, by using a simple array
    and a 'current' iterator.
    
    The downside is that a 'struct ctdb_script' is no longer a talloc
    object: the state must be passed to our log fn, and the current
    script extracted with &state->scripts->scripts[state->current].
    
    The wackiness of marshalling is simplified, and as a bonus, we can
    distinguish between an empty event directory
    (state->scripts->num_scripts == 0) and and error (state->scripts ==
    NULL).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit c476c81f3e3d8fc62f2e53d82fce5774044ee9ce
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:46:18 2009 +1030

    eventscript: record script status for all events
    
    This unifies almost everything: the state->current pointer points to
    the struct ctdb_script where we record start, finish, status and
    output.
    
    We still only marshall up the monitor events; the rest disappear when
    the state structure is freed.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit b2a300768536d10bd867a987ad4cf1c5268c44bc
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:45:17 2009 +1030

    eventscript: use scripts array directly, rather than separate list
    
    We rename ctdb_monitor_script_status to ctdb_script, and instead of
    allocating them as the scripts are executed, we allocate them up front
    and keep a "current" interator.
    
    This slightly simplifies the code, though it means we only marshall up
    to the last successfully run script.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 32cfdc3aec34272612f43a3588e4cabed9c85b68
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 12:44:30 2009 +1030

    eventscript: ctdb_fork_with_logging()
    
    A new helper functions which sets up an event attached to the child's
    stdout/stderr which gets routed to the logging callback after being
    placed in the normal logs.
    
    This is a generalization of the previous code which was hardcoded to
    call ctdb_log_event_script_output.
    
    The only subtlety is that we hang the child fds off the output buffer;
    the destructor for that will flush, which means it has to be destroyed
    before the output buffer is.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 497766cf186442de00fb324343150442457be858
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:31:29 2009 +1030

    eventscript: pass struct ctdb_log_state directly to ctdb_log_handler().
    
    The current logging logic assumes that any stdout/stderr belongs to
    the currently running monitor script output.  This isn't quite right
    anyway, and we'd like to capture stderr output of other script
    invocations.
    
    So we move towards multiple struct ctdb_log_state by handing it
    directly to ctdb_log_handler to use, rather than having it assume
    ctdb->log.  We need a ctdb pointer inside the log struct now though.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 391926a87a7af73840f10bb314c0a2f951a0854c
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:27:40 2009 +1030

    eventscript: remove unused ctbd_ctrl_event_script*
    
    The child no longer uses ctdb_ctrl_event_script_init or
    ctdb_ctrl_event_script_finished, and the others are redundant: it
    doesn't need to tell us it's starting a script when it only runs one.
    
    We move start and stop calls to the parent, and eliminate the RPC
    infrastructure altogether.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 814704a3286756d40c2a6c508c1c0b77fa711891
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:22:55 2009 +1030

    eventscript: refactor forking code into fork_child_for_script()
    
    We do the same thing in two places: fire off a child from the initial
    ctdb_event_script_callback_v() and also from the ctdb_event_script_handler()
    when it's done.
    
    Unify this logic into fork_child_for_script().
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 0fafdcb8d3532a05846abaa5805b2e2f3cee8f47
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:21:25 2009 +1030

    eventscript: fork() a child for each script.
    
    We rename child_run_scripts() to child_run_script(), because it now
    runs a single script rather than walking the list.  When it's
    finished, we fork the next child from the ctdb_event_script_handler()
    callback.
    
    ctdb_control_event_script_init() and ctdb_control_event_script_finished()
    are now called directly by the parent process; the child still calls
    ctdb_ctrl_event_script_start() and ctdb_ctrl_event_script_stop() before
    and after the script.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 020fd21e0905e7f11400f6537988645987f2bb32
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:15:18 2009 +1030

    eventscript: store from_user and script_list inside state structure
    
    This means all the state about running the scripts is in that structure,
    which helps in the next patch.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 9a2b4f6b17e54685f878d75bad27aa5090b4571f
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:14:01 2009 +1030

    eventscript: use direct script state pointer for current monitor
    
    We put a "scripts" member in ctdb_event_script_state, rather than using
    a special struct for monitor events.  This will fit better as we further
    unify the different events, and holds the reports from the child process
    running each monitor script.
    
    Rather than making the monitor state a child of current_monitor_status_ctx,
    we just point current_monitor directly at it.  This means we need to reset
    that pointer in the destructor for ctdb_event_script_state.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 0d925e6f2767691fa561f15bbb857a2aec531143
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Dec 8 00:09:20 2009 +1030

    eventscript: make current_monitor_status_ctx serve as monitor_event_script_ctx
    
    We have monitor_event_script_ctx and other_event_script_ctx, and
    current_monitor_status_ctx in struct ctdb_context.  This seems more
    complex than it needs to be.
    
    We use a single "event_script_ctx" as parent for all event script
    state structures.  Then we explicitly reparent monitor events under
    current_monitor_status_ctx: this is freed every script invocation to
    kill off any running scripts anyway.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit bfee777faff75e9bed4aedc1558957483616a6d3
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:55:03 2009 +1030

    eventscript: split ctdb_run_event_script into multiple parts
    
    Simple refactoring in preparation for switching to one-child-per-script.
    We also call the functions run by the child process "child_".
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 816b9177f51ae5b21b92ff4a404f548fe9723c96
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:53:35 2009 +1030

    eventscript: hoist work out of child process, into parent
    
    This is the start of a move towards finer-grained reporting, with one
    child per script.  Simple code motion to do sanity check and get the
    list of scripts before fork().
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit e6488c0e05bab5c4c2c0a6370930b0b27e5ed56e
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:52:01 2009 +1030

    eventscript: don't make ourselves healthy if we're under ban_count
    
    If we've timed out, but we've not timed out more than
    ctdb->tunable.script_ban_count, we pretend we haven't.
    
    There's a logic bug in the way this is done: if we were unhealthy before,
    this would set us to "healthy" again (status == 0).  I don't think this
    would happen in real life, but it's a little surprising.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 9ecee127e19a9e7cae114a66f3514ee7a75276c5
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:48:57 2009 +1030

    eventscript: handle banning within the callbacks
    
    Currently the timeout handler in eventscript.c does the banning if a
    timeout happens.  However, because monitor events are different, it has
    to special case them.
    
    As we call the callback anyway in this case, we should make that handle
    -ETIME as it sees fit: for everyone but the monitor event, we simply ban
    ourselves.  The more complicated monitor event banning logic is now in
    ctdb_monitor.c where it belongs.
    
    Note: I wrapped the other bans in "if (status == -ETIME)", though they
    should probably ban themselves on any error.  This change should be a
    noop.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit a305cb7743c24386e464f6b2efab7e2108bb1e7e
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:18:40 2009 +1030

    eventscript: expost ctdb_ban_self()
    
    eventscript.c uses this now, but our next patch makes others use it.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 024386931bda9757079f206238ae09bae4de6ea2
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:17:23 2009 +1030

    eventscript: handle v. unlikely timeout race
    
    If we time out just as the child exits, we currently will report an
    uninitialized cb_status field.  Set it to -ETIME as expected.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 1269458547795c90d544371332ba1de68df29548
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:15:56 2009 +1030

    eventscript: replace other -1 returns with -errno
    
    This completes our "problem with script" reporting; we never set cb_status
    to -1 on error.  Real errnos are used where the failure is a system call
    (eg. read, setpgid), otherwise -EIO is used if we couldn't communicate with
    the parent.
    
    The latter case is a bit useless, since the parent probably won't see
    the error anyway, but it's neater.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit ec36ced9446da7e3bf866466d265ee8e18f606c1
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:13:12 2009 +1030

    eventscript: simplify ctdb_run_event_script loop
    
    If we break, we avoid cut & paste code inside the loop.  Need to initialize
    ret to 0 for the "no scripts" case.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 5d894e1ae5228df6bbe4fc305ccba19803fa3798
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:12:19 2009 +1030

    eventscript: handle and report generic stat/execution errors
    
    Rather than ignoring deleted event scripts (or pretending that they were "OK"),
    and discarding other stat errors, we save the errno and turn it into a negative
    status.
    
    This gives us a bit more information if we can't execute a script (eg.
    too many symlinks or other weird errors).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit eadf5e44ef97d7703a7d3bce0e7ea0f21cb11f14
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:11:47 2009 +1030

    eventscript: use -ENOEXEC for disabled status value
    
    This unifies code paths and simplifies things: we just hand -ENOEXEC to
    ctdb_ctrl_event_script_stop().
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 0a53d6b5ac81daf0efa32f35e7758ede2a5bdb63
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:09:02 2009 +1030

    eventscript: enhance script delete race check
    
    We currently assume 127 == script removed.  The script can also return 127;
    best to re-check the execution status in this case (and for 126, which will
    happen if the script is non-executable).
    
    If the script is no longer executable/not present, we ignore it.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 8ddb97040842375daf378cbb5816d0c2b031fa65
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:09:39 2009 +1030

    eventscript: check_executable() to centralize stat/perm checks
    
    This is used later in the "script vanished" check.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 76a0ca77feba14e1e1162c195ffbdf516e62aa4d
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:05:58 2009 +1030

    talloc: save errno over talloc_free
    
    As we start to use errno more, it's a huge pain if talloc_free() can blatt
    it (esp. destructors).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 0eb1d0aa14e68b598d9e281c8a02b8f94a042fd9
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:09:42 2009 +1030

    eventscript: use -ETIME for timeout status value
    
    This starts the move toward more expressive encoding of return values:
    positive values mean the script ran, negative means we had a problem with
    the script (and the value is the errno).
    
    This does timeout, but changes the ctdb tool to recognize it.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 6be931266a4e41fd0253f760936ad9707dd97c47
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Dec 7 23:09:40 2009 +1030

    eventscript: marshall onto last_status immediately
    
    This simplifies the code a little: last_status is now read to go
    (it's only used by the scriptstatus command at the moment).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit fff280878e670e93a818c0071f3172056214e8c4
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Dec 7 19:04:41 2009 +1100

    version 1.0.108

commit 7c95e56ba871a4e0cb893a5cb5d821e7ff6e6dd6
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Dec 7 18:27:46 2009 +1100

    Use wbinfo --ping-dc isntead of wbingo -p sicne this is a more reliable way to determine if winbindd is in a useful state.

commit b796d736946856abfbe53de95dfcd73072ee8ccd
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 4 23:18:12 2009 +0100

    packaging: package tests/bin/ctdb_transaction under /usr/share/doc/tests/bin
    
    For testing/diagnostic purposes.
    
    Michael

commit d971b2ca84c0451dc7e5acbf4a5ade06270a2044
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 4 00:19:44 2009 +0100

    client: improve two error messages in ctdb_transaction_commit().
    
    Michael

commit 59faf3f923a5989b5ee94ef02a12827412775bae
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 4 00:06:34 2009 +0100

    server:trans2_commit: move the check for active recovery down.
    
    This needs to be done after the control-dispatcher:
    In the TRANS2_COMMIT control, the client->db_id needs
    to be set before bailing out, since otherwise the
    next TRANS2_COMMIT_RETRY will fail...
    
    Michael

commit c23d804165e84bdf95ba960c953c736d361011d7
Author: Michael Adam <obnox at samba.org>
Date:   Thu Dec 3 00:28:32 2009 +0100

    client: increase the number of commit retries 10-->100
    
    To cope with timeouts when recoveries and transactions collide.
    Maybe 100 is too high.
    
    Michael

commit 428914377851a98b3fc893798783fbfebffc1c0d
Author: Michael Adam <obnox at samba.org>
Date:   Thu Dec 3 00:27:34 2009 +0100

    client: untangle checks and produce more detailed error messages
    
    in ctdb_transaction_fetch_start
    
    Michael

commit 03a5bb727b9db1ba952632f08ceb5355f0df842d
Author: Michael Adam <obnox at samba.org>
Date:   Thu Dec 3 00:26:52 2009 +0100

    client: increase the rsn of the __transaction_lock__ when storing
    
    So that it is correctly handled by recoveries.
    Also explicitly set the dmaster field to the current node's pnn.
    
    Michael

commit 8aef46d2aab3efb322dda51eaa202653cefd5222
Author: Michael Adam <obnox at samba.org>
Date:   Fri Dec 4 11:21:29 2009 +0100

    recovery: add special pull-logic for persistent databases
    
    The decision mechanism which records of a persistent db
    are to be pulled into the recdb during recovery is now
    as follows:
    
    * Usually a record with the higher rsn than that already
      stored is taken. (Just as for normal tdbs.)
    
    * If a transaction is running on some node, then those
      nodes copies of all records are taken and are not
      overwritten later by other nodes' copies.
    
    In order to keep track of whether a record's copy was obtained
    from a node with a transaction running, the recovery mechanism
    misuses the ctdb tdb header field 'lacount' in the recdb.
    It is cleared later when pushing out the recdb database to the
    other nodes.
    
    This way, an incomplete transaction is not spoiled when
    a recovery interrupts and the replay should usually succeed
    (possibly after a few retries).
    
    Michael

commit e5496a83ef4a01604195b27c4b97f50d4979510e
Author: Michael Adam <obnox at samba.org>
Date:   Thu Dec 3 00:25:16 2009 +0100

    make ctdb_ctrl_transaction_active public.
    
    Michael

commit fe68972eb9cf3aa1f16ba1aacf57ade5d66e647c
Author: Michael Adam <obnox at samba.org>
Date:   Sun Nov 29 11:17:18 2009 +0100

    recovery: for persistent db's don't set the dmaster to the recmaster node number
    
    It is important to keep track of the dmaster (i.e. the node that last committed
    a transaction containing changes to this node).
    
    Michael

commit 90abc4ac7c16e854cf6e8f96b60a77bc92e35e07
Author: Michael Adam <obnox at samba.org>
Date:   Sun Nov 29 11:14:31 2009 +0100

    recovery: pass the persistent flag to recover_database()
    
    and further down to pull_remote_database(), pull_one_remote_database(),
    and push_recdb_database().
    
    This is in preparation of special handling of persistent databases
    during recoveries.
    
    Michael

commit 4113385865f53a57b18ea752a7dad8a08bed588e
Author: Michael Adam <obnox at samba.org>
Date:   Sun Nov 29 11:07:36 2009 +0100

    tests:ctdb_transaction: print an extra counters when a commit fails
    
    Michael

commit b9882710e12f28c96a0af298e419160f00578241
Author: Michael Adam <obnox at samba.org>
Date:   Sun Nov 29 10:38:33 2009 +0100

    client: in catdb, print the keyname first, and separate records by a blank line
    
    Michael

commit 574702f8d701fe3e493b31948420b2981eb36f93
Author: Michael Adam <obnox at samba.org>
Date:   Tue Dec 1 23:54:12 2009 +0100

    packaging: remove the lib/popt from the tarball in debian mode
    
    Debian CTDB packaging fails when this is included.
    
    Michael

commit 41aa9bdfa2934f564bdc14374362437dfad0045f
Author: Michael Adam <obnox at samba.org>
Date:   Tue Dec 1 23:51:51 2009 +0100

    packaging: rework maketarball.sh to accept an arbitrary githas to pack
    
    The githash can be specified through the environment variable "GITHASH"
    that can contain a commit hash or a tag name, e.g.
    
    The call syntax is now
    
    [GITHASH=xyz] [USE_GITHASH=yes/no] [DEBIAN_MODE=yes/no] maketarball.sh
    
    Michael

commit 5a7c1e7f15693522bbf1c39a53be2304ece9a134
Author: Michael Adam <obnox at samba.org>
Date:   Sun Nov 29 04:05:03 2009 +0100

    ctdb: add command "ctdb wipedb" to wipe the contents of an attached tdb
    
    Michael

commit 0e130d79ab71cf3aa65c40af91866823246a0283
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 22:40:50 2009 +0100

    tests: turn printfs into DEBUG statements in the ctdb_transaction test
    
    Michael

commit 5fc297a6bd49d9366703eef3edb9bdf0fe8505cc
Merge: cc99c05c0c6484ad574039a454e6133852cb41fa 9ea261f791ab919eb1ce5b37073b4f1d30694bb8
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Dec 4 14:44:46 2009 +1100

    Merge branch 'status-test-2'

commit cc99c05c0c6484ad574039a454e6133852cb41fa
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Dec 4 11:45:37 2009 +1100

    Dont store debug level DEBUG_DEBUG in the in-memory ringbuffer.
    
    It is unlikely we will need something this verbose for normal troubleshooting.
    This allows us to keep a significantly longer time interval of log messages
    in the 500k slots available in the ringbuffer.

commit c5cbb95512f034abeec515579983bf7ac55eadd9
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Dec 4 11:36:27 2009 +1100

    Use statically allocated ringbuffer to store the last 500k log entries
    in memory instead of dynamically allocated ones so that we reduce the pressure
    on malloc/free.

commit 0a0526e03ef995b6b6634f5b75c7a17cb7b5df8f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Dec 4 08:33:56 2009 +1100

    Document the procedure to remove/change the NATGW configuration at
    runtime without restarting the ctdb service

commit 17fa252d0d6981fbae8083a818f26d5ce9c5102e
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Dec 2 16:15:57 2009 +1030

    eventscript: reduce code duplication for ending a script, and fix bug
    
    Commit 50c2caed57c0 removed a gratuitous talloc_steal from the code in
    ctdb_control_event_script_finished(), but not ctdb_event_script_timeout().
    
    Easiest to call ctdb_control_event_script_finished() at the bottom of the
    timeout routine.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 2027cf3881ba890648c543bacbfd5b06464efc10
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 2 14:53:21 2009 +1100

    lower the loglevel for the message that a client has attached to a persistent database

commit de9e5236b20d70eac5ed29991703d6d25a103963
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 2 14:51:57 2009 +1100

    lower the loglevel for the message that a client has attached through a domian socket

commit 157807af72ed4f7314afbc9c19756f9787b92c15
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 2 13:58:27 2009 +1100

    Add a proper function to process a process-exist control in the daemon.
    
    This controls is only used by samba when samba wants to check if a subrecord held by a <node-id>:<smbd-pid> is still valid or if it can be reclaimed.
    
    If the node is banned or stopped, we kill the smbd process and return that the process does not exist to the caller. This allows us to recover subrecords from stopped/banned nodes where smbd is hung waiting for the databases to thaw.
    
    bz58185

commit f75d379377f5d4abbff2576ddc5d58d91dc53bf4
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 2 13:41:04 2009 +1100

    Add a double linked list to the ctdb_context to store a mapping between client pids and client structures.
    
    Add the mapping to the list everytime we accept() a new client connection
    and set it up to remove in the destructor when the client structure is freed.

commit b4a7efa7e53e060a91dea0e8e57b116e2aeacebf
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 2 13:17:12 2009 +1100

    Use the PID we pick up from the domain socket when a client connects
    and store this in the client structure.
    
    There is no need to rely on the hack that samba sends some special message
    handle registrations that encodes the pid in the srvid any more.
    
    This might not work on AIX since I recall some issues to get the pid in
    this way on that platform.

commit 22f00368b4cb3a6bfb92033a7dbe693d31b41a54
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 2 11:28:42 2009 +1100

    version 1.0.107

commit 4d0523dd94fb07e860b3e8118691f93d1ef8d0fa
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Dec 2 08:57:42 2009 +1030

    ctdb_io: fix use-after-free on invalid packets
    
    Wolfgang saw a talloc complaint about using freed memory in ctdb_tcp_read_cb.
    His fix was to remove the talloc_free() in that function, which causes
    loops when a socket is closed (as it does not get removed from the event
    system), eg:
    	netcat 192.168.1.2 4379 < /dev/null
    
    The real bug is that when we have more than one pending packet in the
    queue, we loop calling the callback without any safeguards should that
    callback free the queue (as it tends to do on invalid packets).  This
    can be reproduced by sending more than one bogus packet at once:
    	# Length word at start: 4 == empty packet (assumed little endian)
    	/usr/bin/printf \\4\\0\\0\\0\\4\\0\\0\\0 > /tmp/pkt
    	netcat 192.168.1.2 4379 < /tmp/pkt
    
    Using a destructor we can check if the callback frees us, and exit
    immediately.  Elsewhere, we return after the callback anyway.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit b5a21fd39269a6e2a9d1c8182dd42a1773ccbb3f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Dec 2 11:26:51 2009 +1100

    version 1.0.106

commit 9ea261f791ab919eb1ce5b37073b4f1d30694bb8
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Dec 1 18:08:57 2009 +1100

    Eventscripts: Fix syntax error in 00.ctdb.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 83e7c161efa93cd7acdfc803142b4fb3bfde7538
Author: Michael Adam <obnox at samba.org>
Date:   Thu Nov 26 08:35:20 2009 +0100

    packaging:maketarball.sh: add a DEBIAN_MODE to the tarball creation
    
    It is triggered by setting DEBIAN_MODE=yes in the environment.
    This creates a tarball suitable for use in debian packages.
    The differences from the standard tarball are these:
    
    * The tar ball file is called ctdb_VERSION.orig.tar.gz
    * The base directory in the tar ball is ctdb-VERSION.orig/
    
    Michael

commit bc8aee079e09164e06533a1474f5e9d899795933
Author: Michael Adam <obnox at samba.org>
Date:   Thu Nov 26 08:34:44 2009 +0100

    configure:maketarball.sh: call autogen.sh and include configure in the tarball
    
    Michael

commit bb8d02abd88899d259085b9b23fa52accb222be9
Author: Michael Adam <obnox at samba.org>
Date:   Thu Nov 26 08:32:24 2009 +0100

    packaging:maketarball.sh: create the specfile from the ctdb.spec.in
    
    Michael

commit 4c6e68ae942c05224c5f8b683fbc2dc1adced8ee
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Dec 1 17:54:45 2009 +1100

    Eventscripts: Remove executable bit accidently set on some scripts.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 3d55408cbbb3bb71670b80f3dad5639ea0be5b5b
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Dec 1 17:43:47 2009 +1100

    Eventscript argument cleanups and introduction of ctdb_standard_event_handler.
    
    The functions file no longer causes a side-effect by doing a shift.
    It also doesn't set a convenience variable for $1.
    
    All eventscripts now explicitly use "$1" in their case statement, as
    does the initscript.  The absence of a shift means that the
    takeip/releaseip events now explicitly reference $2-$4 rather than
    $1-$3.
    
    New function ctdb_standard_event_handler handles the status and
    setstatus events, and exits for either of those events.  It is called
    via a default case in each eventscript, replacing an explicit status
    case where applicable.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 4f50aa8bb8be544058523f2f544109a26c2b3b51
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 1 16:06:59 2009 +1100

    when we detect a ip-allocation mismatch, just force a new ip reassignment
    instead of a full blown recovery

commit 821333afb458358f90446062b0242790695e5060
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 1 13:19:58 2009 +1100

    When starting up ctdbd, wait until all initial recoveries have finished
    and until we have gone through a full re-recovery timeout without triggering
    any pending recoveries before we start up the services and start monitoring
    the node.

commit e9b3477a5b9a2eff18f727e7d59338bfb5214793
Merge: 12b187f971d857353403393a9850503e0e558672 a1f37fdc5217e57d2d643d77a811afca747685e0
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Dec 1 10:53:18 2009 +1100

    Merge commit 'martins/status-test-2'
    
    Conflicts:
    
    	server/eventscript.c

commit a1f37fdc5217e57d2d643d77a811afca747685e0
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 27 15:57:33 2009 +1100

    Event scripts: functions file now intercepts status and setstatus.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 16db4882635d84b8410a77e2ea8b08d0a257b0ab
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 27 13:35:39 2009 +1100

    remove a stray )   so we compile

commit 50c2caed57c0520f506eaaeeb0bba2c272da6ef6
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 27 13:28:31 2009 +1100

    dont use talloc_steal() on a object that is already a child of ctdb.

commit 937823cc73eb098230acff4b1583f6d01f26c21a
Merge: 28d0648725e7de4e4d0e8569e3fbfb0fa1d7f934 0e6c06ac38fd82adf124d111717502055501974a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 27 12:50:45 2009 +1100

    Merge commit 'martins/status-test' into status-test-2

commit 0e6c06ac38fd82adf124d111717502055501974a
Merge: 143f1fa3cc4588505e3992c601153ea08be8432d c278c798d41a35f58ca81f8f0e08e4dab51eba9b
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 27 12:49:31 2009 +1100

    Merge commit 'martins-svart/status-test-2' into status-test

commit c278c798d41a35f58ca81f8f0e08e4dab51eba9b
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 27 12:04:02 2009 +1100

    Event script infrastructure: add reload event to check_options().
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 28d0648725e7de4e4d0e8569e3fbfb0fa1d7f934
Merge: d3e7407dc9854ec358d081777c5450ec68b17862 143f1fa3cc4588505e3992c601153ea08be8432d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 26 16:26:25 2009 +1100

    Merge commit 'martins/status-test' into status-test-2

commit 143f1fa3cc4588505e3992c601153ea08be8432d
Merge: a2830594ebeb54eb51ff90999cb12370aeec6e8b a1d654a982ca56fade82552f4e6b5586236d3233
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 26 16:25:15 2009 +1100

    Merge commit 'martins-svart/status-test-2' into status-test

commit a1d654a982ca56fade82552f4e6b5586236d3233
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 26 15:49:49 2009 +1100

    Add flag to ctdb_event_script_callback indicating when called by client.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit d3e7407dc9854ec358d081777c5450ec68b17862
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 26 13:42:12 2009 +1100

    resolve some conflicts from merging from martins branch

commit 12b187f971d857353403393a9850503e0e558672
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 26 12:08:35 2009 +1100

    change the lock wait child handling to use a pipe isntead of a socketpair
    
    remove a stray alarm(30) that caused databases to be unlocked after 30 seconds.

commit a2830594ebeb54eb51ff90999cb12370aeec6e8b
Merge: 2e60749de3714239224cc04170a9aeeee158153f 517e9d9b188b18dffc712a8fecddb41540d27b8d
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 26 10:49:47 2009 +1100

    Merge commit 'martins-svart/status-test-2' into status-test
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 517e9d9b188b18dffc712a8fecddb41540d27b8d
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Nov 25 16:42:14 2009 +1100

    Event scripts: use $script_name rather than $service name for status.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 5d97c07be13a8209a81dfc8f73e49371949e4dc3
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Nov 25 16:34:49 2009 +1100

    Event scripts: Respect CTDB_MANAGES_NFS and add function log_status_cat.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 3c93336ab92c2e4829ff4dc360045bfa6df21d50
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 20 16:45:36 2009 +1100

    More eventscript cleanups.  Initial smoke testing seems OK.
    
    Apart from lots of cleanup work, this also fixes a bug where the share
    checks didn't used to cope with directory names containing spaces.
    The previous commit also loaded the config incorrectly.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 862526e558099fad4c8259cb88da9b776aa7f80d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Nov 25 11:54:40 2009 +1100

    use a binary tree and sort all ipv4/v6 addresses before we assign them out on nodes.

commit 1d24a3869fe89fc9a109fd9e9b69df5fc665a5f6
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Nov 25 11:02:29 2009 +1030

    eventscript: check that ctdb forced script events correct
    
    Now we're doing checking, we might as well make sure the commands from
    "ctdb eventscripts" are valid.
    
    This gets rid of the "UNKNOWN" event type.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 10a3680fb3917ecafc824e73872eace321026172
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Nov 25 08:03:42 2009 +1100

    iIt is better to plainly disallow clietnts from connecting here
    if the node is BANNED.
    Dont even let them attach at all
    to the database
    
    Revert "temporarily try allowing clients to attach to databases even if
    the node is banned/stopped or inactive in any other way."
    
    This reverts commit 227fe99f105bdc3a4f1000f238cbe3adeb3f22f0.

commit 2e60749de3714239224cc04170a9aeeee158153f
Merge: 35a60a63a9b5c7d98dde514ae552239506b691c9 66b22980b14601f29fe8cc64bd8f29883c7ca1c0
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Nov 24 16:14:54 2009 +1100

    Merge commit 'origin/status-test' into status-test

commit 66b22980b14601f29fe8cc64bd8f29883c7ca1c0
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:24:22 2009 +1030

    eventscript: check that ctdb forced script events correct
    
    Now we're doing checking, we might as well make sure the commands from
    "ctdb eventscripts" are valid.
    
    This gets rid of the "UNKNOWN" event type.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 83b7b233cb4707e826f6ba260bd630c8bc8f1e76
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:23:13 2009 +1030

    eventscript: check that internal script events are being invoked correctly
    
    This is not as good as a compile-time check, but at least we count the
    number of arguments are correct.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit a6d353519932eee48f9241ad8887b692882906c9
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:23:13 2009 +1030

    eventscript: check that internal script events are being invoked correctly
    
    This is not as good as a compile-time check, but at least we count the
    number of arguments are correct.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 33fb0e7ba047ca73969b59bccf70a04a17c25a0a
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:22:46 2009 +1030

    eventscript: remove call name from state->options
    
    Finally, we remove the call name (eg. "monitor" or "start") from the
    options field of the struct: it now contains only extra options.
    
    This is clearer, and mainly involves adding some %s to debug statements.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit b0648c7f08eba87ec3c9714e2525c9b621bfb4ef
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:22:46 2009 +1030

    eventscript: remove call name from state->options
    
    Finally, we remove the call name (eg. "monitor" or "start") from the
    options field of the struct: it now contains only extra options.
    
    This is clearer, and mainly involves adding some %s to debug statements.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 6c79fa33e26cc4f0873577f8e122b1495b4c427e
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:19:58 2009 +1030

    eventscript: put call type into state struct.
    
    This means we can get rid of more strcmp; they can simply use the
    state->call value instead.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 834c93b3e1b8f4151b8a2cd82c2dd8bacc17f66c
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:19:58 2009 +1030

    eventscript: put call type into state struct.
    
    This means we can get rid of more strcmp; they can simply use the
    state->call value instead.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 8001488be4f2beb25e943fe01b2afc2e8779930d
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:16:49 2009 +1030

    eventscript: introduce enum for different event script calls.
    
    Rather than doing strcmp everywhere, pass an explicit enum around.  This
    also subtly documents what options are available.  The "options" arg
    is now used for extra arguments only.
    
    Unfortunately, gcc complains on empty format strings, so we make
    ctdb_event_script() take no varargs, and add ctdb_event_script_args().  We
    leave ctdb_event_script_callback() taking varargs, which means callers
    have to do "%s", "".
    
    For the moment, we have CTDB_EVENT_UNKNOWN for handling forced scripts
    from the ctdb tool.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 470822b329f9d3ca9bef518b56e9ce28d5fedda2
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:16:49 2009 +1030

    eventscript: introduce enum for different event script calls.
    
    Rather than doing strcmp everywhere, pass an explicit enum around.  This
    also subtly documents what options are available.  The "options" arg
    is now used for extra arguments only.
    
    Unfortunately, gcc complains on empty format strings, so we make
    ctdb_event_script() take no varargs, and add ctdb_event_script_args().  We
    leave ctdb_event_script_callback() taking varargs, which means callers
    have to do "%s", "".
    
    For the moment, we have CTDB_EVENT_UNKNOWN for handling forced scripts
    from the ctdb tool.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 533c3e053293941d2a9484b495e78d45f478bb08
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:09:46 2009 +1030

    eventscript: put timeout inside ctdb_event_script_callback_v
    
    Everyone uses the same timeout value, so just remove it from the API.
    If we ever need variable timeouts, that might as well be central too.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit fe8027309c1f7b987cd368fa98f9b28741baa786
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:09:46 2009 +1030

    eventscript: put timeout inside ctdb_event_script_callback_v
    
    Everyone uses the same timeout value, so just remove it from the API.
    If we ever need variable timeouts, that might as well be central too.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 466beafadb37011fe273de8810ab0012e92a1fd8
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:09:01 2009 +1030

    eventscript: cleanup ctdb_event_script_v
    
    ctdb_event_script_v doesn't take varargs.  ctdb_run_event_script is
    a better name, and fix comment.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit e7d57d7ae678b24dab3364a348838c6a3398942c
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:08:39 2009 +1030

    eventscript: typo cleanups
    
    1) ctdb_event_script_v doesn't take varargs.  ctdb_run_event_script is
       a better name, and fix comment.
    2) Fix indentation on allowed_scripts.
    3) Comment on run_eventscripts_callback is wrong; it's the callback
       for any ctdb forced event.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit b90bdb07c1f6913ddbf11bde9684bdc8af61c549
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:06:53 2009 +1030

    eventscript: fix bug in timeouts on forced eventscripts.  Again.
    
    In 15bc66ae801b0c69, Ronnie fixed a double-free race.  The problem was that
    ctdb_run_eventscripts() hands a context to ctdb_event_script_callback() to
    hang its data off, which gets freed in the callback.  This particularly
    hurt in ctdb_event_script_timeout.
    
    There's nothing wrong with this, but obviously we should make the callback
    call last of all.  At the time, ctdb_event_script_timeout() carefully
    extracted everything from the struct ctdb_event_script_state before
    calling ->callback.
    
    This was cleaned up in 64da4402c6ad485f (Ronnie again), and now state
    was referred to after the callback again.  But the same change introduced
    a direct use-after-free bug which caused an occasional oops.
    
    So in our last episode (eda052101728cf92) Volker fixed this, and Michael
    committed it.
    
    But we still have the double free bug which 15bc66ae801b0c69 was supposed
    to fix!  Let's try to fix this in a more permanent way, but always doing
    the callback from the destructor.  This means we need to hold the status,
    and don't send the KILL signal if ->child is set to 0.
    
    Finally, add a comment about freeing ourselves in run_eventscripts_callback
    and the structure definition.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 20b15de068d042b292725945927ceda1b01d07c0
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:06:53 2009 +1030

    eventscript: fix bug in timeouts on forced eventscripts.  Again.
    
    In 15bc66ae801b0c69, Ronnie fixed a double-free race.  The problem was that
    ctdb_run_eventscripts() hands a context to ctdb_event_script_callback() to
    hang its data off, which gets freed in the callback.  This particularly
    hurt in ctdb_event_script_timeout.
    
    There's nothing wrong with this, but obviously we should make the callback
    call last of all.  At the time, ctdb_event_script_timeout() carefully
    extracted everything from the struct ctdb_event_script_state before
    calling ->callback.
    
    This was cleaned up in 64da4402c6ad485f (Ronnie again), and now state
    was referred to after the callback again.  But the same change introduced
    a direct use-after-free bug which caused an occasional oops.
    
    So in our last episode (eda052101728cf92) Volker fixed this, and Michael
    committed it.
    
    But we still have the double free bug which 15bc66ae801b0c69 was supposed
    to fix!  Let's try to fix this in a more permanent way, but always doing
    the callback from the destructor.  This means we need to hold the status,
    and don't send the KILL signal if ->child is set to 0.
    
    Finally, add a comment about freeing ourselves in run_eventscripts_callback
    and the structure definition.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 6804f880436645b52c09a78fa300377fa8058d0e
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:00:13 2009 +1030

    eventscript: clean up forked handler event code
    
    Write the whole int through the pipe, rather than quietly cutting it
    off.  Also, use -2 as the result if the read fails; -1 comes from many
    paths if the child fails before running the script.
    
    Add a comment about why we don't need to check the write.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit defbe318152fc479e8076ad70433cdb4971951af
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Nov 25 11:00:11 2009 +1030

    rework and simplify the eventscript handling
    
    This version has no trailing whitespace, and fixed

commit c715746c2f40eb9b21dbf011d16f1f1b0b53fdf9
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Tue Nov 24 11:00:13 2009 +1030

    eventscript: clean up forked handler event code
    
    Write the whole int through the pipe, rather than quietly cutting it
    off.  Also, use -2 as the result if the read fails; -1 comes from many
    paths if the child fails before running the script.
    
    Add a comment about why we don't need to check the write.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit fbc453733d53359b9eba34a7ca9123237a7ecca5
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Nov 24 09:27:22 2009 +1100

    reduce the log level for three vacuuming related log messages

commit c5f798116bf3b7954e23c7267b056ee1f5560f45
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Nov 24 07:40:51 2009 +1100

    rework and simplify the eventscript handling

commit 35a60a63a9b5c7d98dde514ae552239506b691c9
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 20 16:45:36 2009 +1100

    More eventscript cleanups.  Initial smoke testing seems OK.
    
    Apart from lots of cleanup work, this also fixes a bug where the share
    checks didn't used to cope with directory names containing spaces.
    The previous commit also loaded the config incorrectly.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit f1e350f9edb74cc44b6c5be4c062fd93e98ba8c4
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 19 16:48:19 2009 +1100

    Now vaguely tested initscript updates.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit ac655b0a65b32d809d47fec9821f7f31bb2fe2a7
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 19 15:00:17 2009 +1100

    More untested eventscript factorisation.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit c4b05a731e1bee8f5b46529773a4f5389b2b6064
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 19 14:54:05 2009 +1100

    Test suite: Make the CIFS tickle test wait until it sees the required tickle.
    
    The test depended on the exit code of "ctdb gettickles", which always
    succeeds.  This change wraps the command in a function that checks
    whether the tickle we're interested in is registered.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 5fdf842db09cd806248cdbdce2270f39ed213872
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 19 11:08:14 2009 +1100

    new version 1.0.105

commit 80a8d728e9680040e00d24361dfc9367dd372a56
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 19 11:03:51 2009 +1100

    dont reset the event script context everytime we start a new "ctdb eventscript ..."
    command.
    Use the existing context used for non-monitor events
    
    Multiple concurrent uses of "ctdb eventscript ..." could otherwise lead to a SEGV

commit 6427f0b68d60b556a023f64e15e156000ba6f943
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Nov 18 19:10:50 2009 +1100

    make the ringbuffer logging more efficient and marshall the data by writing to a tmpfile instead of continously talloc resizing a blob

commit 29d2ee8d9c6c6f36b2334480f646d6db209f370e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Nov 18 12:44:18 2009 +1100

    add an in memory ringbuffer where we store the last 500000 log entries regardless of log level.
    
    add commandt to extract this in memory buffer and to clear it

commit 354c0edacf2d6cec5b295e139d4fec618bad1b06
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Nov 17 12:07:10 2009 +1100

    create a new event context for the syslog daemon

commit cb8df973ccd446d87fbdd9a27843e54841ba5d89
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Nov 16 15:17:32 2009 +1100

    set up a pipe betweent he main daemon and the child we use for syslogling so that we can clean up the childprocess when we stop ctdbd

commit 364e70b763f0ccd7714d15723ad3ea4d7e2968a1
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 13 18:28:25 2009 +1100

    Eventscripts: Untested factorisations and introduction of status event.
    
    This is the first stage of an experimental change to eventscripts.
    Ronnie and I did a few hours of factorisation of 40.vsftpd and applied
    many of the changes to 41.httpd.  Other eventscripts were also
    modified.
    
    At this stage this is completely untested.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 1908bac812650ca25151051f5d86815e0b8ed319
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 13 12:37:55 2009 +1100

    test of a change to make ctdbd use "status" event instead of the "monitor" event.
    
    This allows running the actual monitoring asynchronously from ctdbd
    and only using "status" to pick up the actual results.

commit b6bde176af69354ccfb00e6a3169f6b355a59d15
Merge: 6ccb495d1110157c06596763c7e252f3182c251e 20a9d35933d89dc7eb710075f360686a49d78609
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 13 12:25:31 2009 +1100

    Merge commit 'martins/master'

commit 20a9d35933d89dc7eb710075f360686a49d78609
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 13 09:44:34 2009 +1100

    Test suite: Fix the NFS and CIFS tickle tests.
    
    The NFS test sleeps for MonitorInterval to give CTDB time to record an
    NFS tickle.  However, this isn't always long enough.  This changes the
    test to wait until a monitor event has actually occurred.
    
    The CIFS test assumes that Samba is able to register a tickle with
    CTDB before it notices that netstat has registered the tickle and can
    use onnode to ask CTDB about it.  That is an incorrect assumption -
    sometimes we can get to the point of asking CTDB about the tickle
    before Samba and CTDB have processed it.  This adds a timeout loop
    that makes the CIFS test wait until the tickle has been registered or
    fail after 10 seconds.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit ffb911896704ddf6bd5a66e43ba2ae8c382e68de
Merge: 39642e745254d93d74dde907787503854fe6ca4a 5e13a25df5ccf184bd48595c99765a592bbc5969
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Nov 11 12:16:30 2009 +1100

    Merge commit 'origin/master'

commit 6ccb495d1110157c06596763c7e252f3182c251e
Author: Mathieu Parent <math.parent at gmail.com>
Date:   Tue Nov 10 12:04:13 2009 +0100

    Fix bashism in events.d/11.natgw
    
    Signed-off-by: Michael Adam <obnox at samba.org>

commit 5e13a25df5ccf184bd48595c99765a592bbc5969
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 6 11:16:05 2009 +1100

    version 1.0.104

commit 8001ae580bcc28d45f6026b529d7ffc247cbba34
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 6 09:54:03 2009 +1100

    sugegstion from metze,
    use killtcp and kill both directions of the nfs connections.
    we used to kill only one direction since the other direction was unkillble
    but recent kernels allow us to kill both

commit e8e7129ff1371065fbd75e1aea844d6d04a96fa9
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Nov 6 08:19:32 2009 +1100

    suggestion from Christian,
    
    dont allow UNHEALTHY nodes to become natgw master, unless all nodes
    are unhealthy

commit eda052101728cf922ce892e3c53b4f37e7ceac42
Author: Volker Lendecke <vlendec at samba.org>
Date:   Tue Nov 3 20:01:00 2009 +0100

    Fix a segfault in the eventscript timeout handler.
    
    The state was freed too early.
    
    Signed-off-by: Michael Adam <obnox at samba.org>

commit b7dc1e0720991cc65353e07cf87608acea21ba27
Author: Michael Adam <obnox at samba.org>
Date:   Tue Nov 3 20:00:27 2009 +0100

    ctdb.sysconfig: add a comment section about CTDB_RUN_TIMEOUT_MONITOR
    
    Michael

commit 1a3ecdee85b82bb3234a92ae6bcdeb92238eb7ee
Author: Michael Adam <obnox at samba.org>
Date:   Tue Nov 3 20:00:07 2009 +0100

    Add a 99.timeout event script to trigger monitor timeouts.
    
    This just sleeps for twice the value of EventScriptTimeout
    in the monitor action. It is not run by default, but
    can be activated by setting CTDB_RUN_TIMEOUT_MONITOR
    in /etc/sysconfig/ctdb .
    
    Michael

commit 1cbf06a126621b3e932925cdad2ef9c009f93d4e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 5 16:07:23 2009 +1100

    dont use the pointer after it has been talloc_free()d.

commit 058e21d96c3c02759833fd5ddfe7b43e6a5f5740
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 5 15:57:46 2009 +1100

    From Rusty
    
    It's much nicer for post-mortem debugging to have a body to examine.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit bf50709630df000583f2b0ef0edc177c01d60eaf
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Nov 5 12:12:06 2009 +1100

    add an extra test for the bond devices and check that there is an active slave.
    this to handle the case where all links do have a physical layer, but where all slaves have been disabled using ifdown

commit 9e1b99221c8f257129641f6eda2795537b7ce9de
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Nov 4 07:50:26 2009 +1100

    dont verify winbindd is running properly at startup

commit 020e2e30e56b9675f345ee62d6bf585396208059
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Nov 3 11:46:37 2009 +1100

    new version 1.0.103

commit fb83dba255fc91413a475b273e374e0c4d538137
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Nov 3 10:48:27 2009 +1100

    move the check to skip vacuuming on persistent database to the ctdb_vacuuming_init() function

commit 209ff041596e39688186c99995863ed3e816b8e4
Author: Michael Adam <obnox at samba.org>
Date:   Mon Nov 2 01:37:07 2009 +0100

    packaging: use githash in rpm release by default.
    
    setting USE_GITHASH=no in the environment makes
    makerpms.sh omit the git hash
    
    Michael

commit f98fefbc566eefbfcc660646af6e25256ab82b13
Author: Michael Adam <obnox at samba.org>
Date:   Tue Nov 3 00:04:27 2009 +0100

    server: disable vacuuming for persistent tdbs.
    
    The vacuum process treats persistent databases the same as
    non-persistent and thus ignores the extra state for transactions.
    This way, it breaks the api-level transactions.
    
    Michael

commit a5d90d8ed8b44355c4ffb9c32ded772025fcc174
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 22:53:44 2009 +0100

    client: randomize the transaction_start retry loop:
    
    instead of sleeping 1 second, sleep between 1 and 100 milliseconds
    
    Michael

commit 825c506da76d7afd0714b75b8c8727874183a618
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 22:40:00 2009 +0100

    Revert "dont exit on a commit failure"
    
    This reverts commit 4e9a3a5dc232bac12ab387ea0cf4f1b279bed5c1.
    
    Transaction commit should not be allowed to fail.
    This is a real error.
    
    Michael

commit b95524c08bf12914120cb6c818ecc1c99738fe37
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 22:20:38 2009 +0100

    client: fix a race in the local race condition fix in transaction_start
    
    The gap that remained is between checking whether a transaction commit
    is in progress and taking the lock. Now we first take the lock and then
    check whether a transaction commit is in progress. If so, we release the
    lock, wait for one second and retry.
    
    Michael

commit 9e4902c7d3ad1329c296f4196fcb1396f2a7a6a0
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 22:19:19 2009 +0100

    client: add a debug message when a transaction_commit needs to be retried
    
    Michael

commit c1d8496f9fd5e8046f3d990264258dfb054f3b32
Author: Michael Adam <obnox at samba.org>
Date:   Tue Oct 20 17:02:16 2009 +0200

    packaging(RPM): don't touch the run levels in ctdb install/udpate.
    
    We should really leave it up to the administrator to decide
    whether ctdb should be started automatically at boot-time.
    
    Michael

commit 9ffd54b73c0d64b67e8e736d7cb54490e77ffa78
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 30 19:39:11 2009 +1100

    start the syslog child a little later, after we have forked and detached from the local shell

commit 1446f4c247310e2ff2d522055bd8927d1a78d017
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 30 18:53:17 2009 +1100

    create a child process to write to syslog.
    
    use a udp socket on the ctdbd port to send messages to teh syslog child process for loggign.
    
    we need this when syslog becomes "slow",   like very slow, and on boxes where syslog is limited to 100 lines per second and starts to block after that

commit 48ac5c77698ab7a28d24629cc8a6985011c5d14d
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:48:36 2009 +0100

    server: fix debug message in trans2_commit (refusing persistent store during transaction)
    
    log the right db_id
    also log the client_id
    
    Michael

commit d7b9babda2f7c7f7b95ee19ec75c37200816c6ef
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:45:38 2009 +0100

    client: log db_id as 8-digit hex in ctdb_transaction_fetch_start()
    
    Michael

commit 2febdd23f754a2d4699bed36b941442ab362a376
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:44:39 2009 +0100

    server: uniformly log db and client ids as 8-digit hex numbers in trans2_commit
    
    Michael

commit 3be446434adb0f3095ac0ef4b7c4a6258780b863
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:30:03 2009 +0100

    server: line-wrap a debug statement in trans2_commit
    
    Michael

commit 11fefd02e6c9531ffb28b9e6acaf42ba39757d87
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:27:47 2009 +0100

    server: output client_id in some debug messages in trans2_commit
    
    Michael

commit ab9657b5a66d5665e6c5fd1bf8eb4074a3bffeec
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:24:19 2009 +0100

    server: fix a debug message in trans2_commit - log the correct db_id
    
    Michael

commit 0fb9573d1c838b436ab9be83e197b68f35f94acb
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:54:55 2009 +0100

    server: extend a debug message in ctdb_control_trans2_error()
    
    Michael

commit 0df012d58eb83195ea0365be19e0566dbc394a66
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 13:53:44 2009 +0100

    server: add positive debug statements to trans2_commit and trans2_finished
    
    When the operation completed / started successfully.
    
    Michael

commit 6b47ea111867c845974aa2687a658ebca2854816
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 19:49:10 2009 +0100

    client: improve "control timed out" debug message
    
    * add __location__
    * wrap overly long line
    * print unsigned ints as unsigned (reqid, opcode, destnode)
    
    Michael

commit cb432e30351d5e5a41e98da3c7b1c2a4d400a3a2
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 29 17:08:37 2009 +0100

    server: trans2_active: don't report a transaction active on the node that performs the transaction
    
    Otherwise a node can lock itself out, e.g. when a commit control times out...
    
    Michael

commit 4892222ffb255dccd8ced1cb047f199386bb3e98
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 29 13:49:27 2009 +1100

    new version 1.0.102

commit 8ab1349feb64a91cb500c130ea299e2182491f06
Author: Wolfgang Mueller-Friedt <wolfmuel at de.ibm.com>
Date:   Wed Oct 28 14:54:29 2009 +0300

    ensure tdb names end with .tdb. and any number of digits

commit a6fbc65aca35c41c428a82d7402e43c6eaac1d6e
Author: Wolfgang Mueller-Friedt <wolfmuel at de.ibm.com>
Date:   Wed Oct 28 13:01:27 2009 +0300

    vacuuming needed additional check before getting rid of the record; there is a gap between selecting the records and deleting them, therefore we have to check if the records still can be deleted when we actually are about to delete them

commit 363e7e939ad46b3f75c83c30d4163d63876c2456
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 29 13:44:12 2009 +1100

    Revert "From Wolfgang M."
    
    This reverts commit 5b70fa8cfd5916d3c212823ad5cc1b251ae175ed.

commit 0c9b0466fd87b3f1e5d53f867c863217802ac43b
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 29 11:54:24 2009 +1100

    make the error logged when winbindd fails to access the dc during startup more scary and easier to spot in the logs

commit 467da12a785ba3367ed9cbdf79440394e9703289
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 29 10:58:14 2009 +1100

    update the uptime command to indicate that time since last is either from alst recovery or from last failover

commit cb36bbb5418290e8e5b770d2d836285b15da2a6f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 29 10:49:00 2009 +1100

    Revert "update the "uptime" command to indicate the "time since last" is the time since the last recovery OR failover."
    
    This reverts commit 3b0d44497800a16400d05a30bdaf6e6c285d4b36.

commit 22712c577f64ec84851b4addcf4a46c7e99e0662
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 29 10:32:28 2009 +1100

    update the manpage for "update" to indicate the "time since last" indicates
    the time since the last recovery OR failover

commit 3b0d44497800a16400d05a30bdaf6e6c285d4b36
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 29 10:37:10 2009 +1100

    update the "uptime" command to indicate the "time since last" is the time since the last recovery OR failover.

commit 9560f8b7fe0f7ee0386a87c2653333071050fe4b
Author: Michael Adam <obnox at samba.org>
Date:   Thu Oct 22 14:42:05 2009 +0200

    ctdb_client: reformat a comment slightly to enhance clearness.
    
    Michael

commit 02ee9dfd3c6b09f5c5172a7e38738c20b7f0aecd
Author: Michael Adam <obnox at samba.org>
Date:   Wed Oct 28 22:55:44 2009 +0100

    client: fix race condition with concurrent transactions on the same node.
    
    In ctdb_transaction_commit(), when the trans2_commit control fails, there
    is a race condition in the 1 second sleep between the local transaction_cancel
    and the call to ctdb_replay_transaction(): The database is not locked, and
    neither is the transaction_lock record. So another client can start and possibly
    complete a new transaction in this gap, but only on the same node: The locking
    of the transaction_lock record on a different node which involves migration of
    the record to the other node has been disabled by introduction of the
    transaction_active flag on the db which closes precisely this gap from the start
    of the commit until the call to TRANS2_FINISH or TRANS2_ERROR.
    But this mechanism does not cover the case where a process on the same node
    tries to start a transaction: There is no obstacle to locking the transaction_lock
    record because the record does not need to be migrated.
    
    This commit closes this race condition in ctdb_transaction_fetch_start()
    by using the new ctdb_ctrl_transaction_active() call to ask the local
    ctdb daemon whether it has a transaction running on the database.
    If so, the check is repeated until the running transaction is done.
    
    This does introduce an additional call to the local ctdbd when starting
    transactions, but it does close the (hopefully) last race condition.
    
    Michael

commit 813cfd7c625ac8af4ef169cc92fb6d69f66004c9
Author: Michael Adam <obnox at samba.org>
Date:   Wed Oct 28 22:54:49 2009 +0100

    client: add ctdb_ctrl_transaction_active() which calls out to CTDB_TRANS2_ACTIVE
    
    Michael

commit 8d430ae6968dfe566614379436fc3c56003fcd88
Author: Michael Adam <obnox at samba.org>
Date:   Wed Oct 28 22:50:05 2009 +0100

    server: add a new ctdb control CTDB_TRANS2_ACTIVE
    
    This aske the daemon wheter a transaction is currently active on a
    given DB on that node. More precisely this asks for the transaction_active
    flag in the ctdb_db_context that is set in the CTDB_TRANS2_COMMIT
    control and cleared in the CTDB_TRANS2_ERROR or CTDB_TRANS2_FINISHED controls.
    
    This will be useful for fixing race conditions in the transaction code.
    
    Michael

commit 47b67077bdfa64938bb0fa6d1ca8f56fbd5c960e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 28 17:42:01 2009 +1100

    version 1.0.101

commit 325de818f88f339a16dc4544e899a2d735933c44
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 28 17:35:15 2009 +1100

    create a separate context for non-monitor eventscripts so they dont collide

commit 8d5cb2586a1d5a0255cc18295430927b914d4527
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 28 16:40:31 2009 +1100

    return 0 in the event script callback if it was aborted by a different script

commit fa34e8a5d588026029dca949151697817fe7f127
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 28 16:18:28 2009 +1100

    new version   1.0.100

commit 64da4402c6ad485f1d0a604878a7b0c01a0ea5f0
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 28 16:11:54 2009 +1100

    change the eventscript handling to allow EventScriptTimeout for each individual script isntead of for the entire set of scripts
    
    restructure the talloc hierarchy to allow this

commit 39642e745254d93d74dde907787503854fe6ca4a
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Oct 28 13:02:18 2009 +1100

    Test suite: Regression fix - wait_until should not run command in sub-shell.
    
    Commit 25e82a8a667a54c6921ef076c63fdd738dd75d19 changed wait_until()
    to protect the command it runs from "set -e" by running it in a
    subshell.  This breaks uses where the command is expected to set
    global variables.  For example, wait_until_get_src_socket lost the
    value of $out from its call to get_src_socket().
    
    The fix is to not be lazy and use a sub-shell!
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 6a1f7a7b1b3a0b8f89998db8fdad83bbb4e9b5a5
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 28 09:07:43 2009 +1100

    Enhance the logging fromeventscripts.
    When a single script is finished, also log the name of the script, the duration it took and the return status.
    
    In the loop where we signal back to the main daemon that the script finished, do this once every 100ms instead of once every 1 second

commit 4037b6e73a819a8e2463dfe0959b42875e05e106
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 27 15:45:03 2009 +1100

    add a check that winbind can actually talk to teh dc during the startup event
    and refuse to start up if it can not

commit 227fe99f105bdc3a4f1000f238cbe3adeb3f22f0
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 27 15:17:45 2009 +1100

    temporarily try allowing clients to attach to databases even if the node is banned/stopped or inactive in any other way.

commit cc30ee2f4f33cb75b2be980c2d4dff6c7c23852f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 27 13:51:45 2009 +1100

    dont run the monitor event so frequently after a event has failed.
    
    use _exit() instead of exit() when terminating an eventscript.

commit a10fc51f4c30e85ada6d4b7347b0f9a8ebc76637
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 27 13:18:52 2009 +1100

    for debugging
    
    add a global variable holding the pid of the main daemon.
    change the tracking of time() in the event loop to only check/warn when called from the main daemon

commit 20678e1506db1f96b58c326ee91339e797c07c22
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Oct 6 16:16:13 2009 +0200

    ctdb_diagnostics: don't use hardcoded path to iptables
    
    All event scripts use only the relative path, so we should
    here.
    
    Also PATH includes /sbin and /usr/sbin...
    
    metze

commit a244b75ee49556b0ff51e254cc812594ee3b23a7
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 9 15:47:06 2009 +0200

    ctdb_client: fix DEBUG statement in ctdb_ctrl_modflags()
    
    metze

commit 8ec633b64a05a2d903c2b9639909f15f6375548f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 9 15:47:49 2009 +0200

    server: if takeover runs when the recovery master becomes unhealthy
    
    The problem was this:
    
    When the monitor event fails, the node->flags get updated,
    and an update (containing the old and new flags) is sent to
    the recovery master.
    
    If the recovery master sends the update to itself (the same process),
    it was compairing the node->flags variable with the received new flags.
    This check always found both flag values to be equal
    and never sets the rec->need_takeover_run variable to true.
    
    There were two problem, first the push_flags_handler() function
    didn't pass the received old flags.
    
    And the ctdb_control_modflags() function ignored the received old flags.
    
    metze

commit 440e870d61267054b24404bcb69e599226353949
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 9 15:50:59 2009 +0200

    server: print out the full 64-bit srvid on 32-bit hosts
    
    metze

commit 752a9c81de97be509de7e7feddde749cc5ee22a8
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Oct 21 17:06:48 2009 +0200

    tcp: don't log an error when we succefully bind to the desired address
    
    metze

commit 11193e1e192bee6f579bdf1303153571a82711d7
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 26 13:20:35 2009 +1100

    patch the event loop so we read the current time every iteration.
    
    log an error if the clock jumps backwards
    also log an error if the clock jumps >5 seconds forward (we assume here we will get at least one event every 5 seconds)

commit 331c6e3afd96d8b5e191153a631efdbdabb6ea33
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 26 12:20:52 2009 +1100

    Suggestion from Volker,
    
    make ctdb_queue_length() cheaper by using a counter variable instead of counting the number of packets each time.

commit e79c3bcead7bd4bfb74d0aec81908da71551c107
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 26 10:22:00 2009 +1100

    disabel the multipath eventscript by default

commit ab4a6a58fb002ec29c19d167800e47987b023fe4
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 26 10:11:00 2009 +1100

    update the manpage for ctdb setreclock

commit db250cad7c92c1cc0a690725a4e39531a2e1b7fd
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 26 10:13:20 2009 +1100

    automatically re-activate the reclock file check if we set the reclock file to something

commit 496dc2e80b714811c6e69dc928deaad61cf603b1
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 26 09:35:18 2009 +1100

    lower the log level of a debug message

commit f1b6ee4a55cdca60f93d992f0431d91bf301af2c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 23 15:24:51 2009 +1100

    Add a mechanism where we can register notifications to be sent out to a SRVID when the client disconnects.
    
    The way to use this is from a client to :
    1, first create a message handle and bind it to a SRVID
       A special prefix for the srvid space has been set aside for samba :
       Only samba is allowed to use srvid's with the top 32 bits set like this.
       The lower 32 bits are for samba to use internally.
    
    2, register a "notification" using the new control :
                        CTDB_CONTROL_REGISTER_NOTIFY         = 114,
       This control takes as indata a structure like this :
    struct ctdb_client_notify_register {
            uint64_t srvid;
            uint32_t len;
            uint8_t notify_data[1];
    };
    
    srvid is the srvid used in the space set aside above.
    len and notify_data is an arbitrary blob.
    When notifications are later sent out to all clients, this is the payload of that notification message.
    
    If a client has registered with control 114 and then disconnects from ctdbd, ctdbd will broadcast a message to that srvid to all nodes/listeners in the cluster.
    
    A client can resister itself with as many different srvid's it want, but this is handled through a linked list from the client structure so it mainly designed for "few notifications per client".
    
    3, a client that no longer wants to have a notification set up can deregister using control
                        CTDB_CONTROL_DEREGISTER_NOTIFY       = 115,
    which takes this as arguments :
    struct ctdb_client_notify_deregister {
            uint64_t srvid;
    };
    
    When a client deregisters, there will no longer be sent a message to all other clients when this client disconnects from ctdbd.

commit 0785afba8e5cd501b9e0ecb4a6a44edf43b57ab0
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 23 13:55:21 2009 +1100

    when scripts timeout, log pstree to a file in /tmp and just log the filename in the messages file

commit 38d7487bc68c8cf85980004aceeef24ae32d6f36
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 23 13:54:45 2009 +1100

    set the eventscripts to timeout after 20 seconds
    change the ban count to 10 failures before we ban by default

commit 514a60c57557042e463efeff53dd11b9fec40561
Merge: 14fca8383b6b1da49278a9181a975543b956161b f3e09f2cfd33e79e69fc8c84ce4781a31a7a0437
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 23 10:43:13 2009 +1100

    Merge commit 'martins/master'

commit 14fca8383b6b1da49278a9181a975543b956161b
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 22 18:16:33 2009 +1100

    new version 1.0.99

commit f3e09f2cfd33e79e69fc8c84ce4781a31a7a0437
Merge: 431f79f7c9038ebd95d27c2465207ca40b8f4f23 e01ab46bafad09a5e320d420734db129d35863bc
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Oct 22 17:48:09 2009 +1100

    Merge commit 'origin/master'

commit 431f79f7c9038ebd95d27c2465207ca40b8f4f23
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Oct 22 17:47:10 2009 +1100

    Document onnode -n and -f options.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit e01ab46bafad09a5e320d420734db129d35863bc
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 22 13:41:28 2009 +1100

    if a lock wait child died/finished, we could have released the lockwait handle and set it to NULL before we call the destructors for releaseing the waiters.
    
    The waiters reference the locakwait handle in order to remove itself from the li
    nked list which caused a SEGV.
    
    We dont actually need to remove ourselves from this list here since
    if the parent freeze_handle holding the list is freed, then all waiters are rele
    ased as well, and the only place we actually need to relink the waiter is in ctd
    b_freeze_lock_handler, where we want to respond back to the clients and release
    the waiters  but we still want to keep the freeze_handle hanging around.

commit 27296a47b3d057a6729287acf128b2b67775ecde
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 22 12:19:40 2009 +1100

    From Volker L
    Fix some warnings  and an incorrect check for a talloc failure

commit 5b70fa8cfd5916d3c212823ad5cc1b251ae175ed
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 22 07:58:44 2009 +1100

    From Wolfgang M.
    
    With the new vacuuming code, dont treat an invalid dmaster as fatal. Let it update to the new value insetad.

commit 61282d4a9be9e544aaa86f3cffc5b58e417f5ab1
Merge: 8264c42969d4be7fc6c5b4d56f8b5ef7c62b3bfb befabc917edb036ca81f5216f65a6d62b26ee83e
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Oct 21 21:48:15 2009 +1100

    Merge commit 'origin/master'

commit 8264c42969d4be7fc6c5b4d56f8b5ef7c62b3bfb
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Oct 21 21:47:06 2009 +1100

    Test suite: Remove the disable/enable monitor tests - they are useless.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 25e82a8a667a54c6921ef076c63fdd738dd75d19
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Oct 21 21:36:39 2009 +1100

    Test suite: Fix the timeouts on the skip share check tests.
    
    The timeout for waiting for state changes isn't very predictable.  It
    is "about" MonitorInterval seconds...  but can be longer given the
    duration of eventscript runs and other things.  So, we change the
    timeout to MonitorInterval + EventScriptTimeout, hoping it never takes
    that long.
    
    Move the eventscript installation/removal from the old fake-tests into
    a function in the functions file.  Implement supporting functions to
    create/remove/check-for various files that it handles.  Also add a
    function that uses all of this that waits for the next monitor event
    (but only if all other monitor events pass).
    
    The final check in the skip share check tests uses the above and waits
    for a monitor event, and then checks that the node is still healthy.
    
    Also enhance the wait_until function to handle a command starting with
    '!' (as a separate word) to make it easy to wait for a file not to
    exist.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit befabc917edb036ca81f5216f65a6d62b26ee83e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 21 16:50:39 2009 +1100

    During tests it is common to add/delete test eventscripts at runtime.
    This can race with teh eventascript handling that does a :
    
    list all scripts,   sort them,  then execute them
    
    so trap status code 127 which means the script could not be executed (or /bin/sh does not exist) and treat it as not to cause the node to become unhealthy

commit 87146db2769c2ec494813685bf9cec0d2a6336c3
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 21 15:26:24 2009 +1100

    lower the debug levels for the "create FD messages" so we dont fill up the logs.

commit f76d6fed8f9630450263b9fa4b5fdf3493fb1e11
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 21 15:20:55 2009 +1100

        When clients have blocked, perhaps because the node is banned or stopped and the client is blocked trying to tdb_fetch() a record, make sure we dont queue up too many REQ_MESSAGES.
    
        Add a new tunable to control the maximum queue size we allow to a blocked client before we start discarding REQ_MESSAGES instead of queueing them for delivery.
    
        This avoids having queued up very very large number of MESSAGES that samba semds
         between eachother to nodes that are blocked/banned/stopped for extended periods
        .

commit ead97cabeb1e0b73bff9d45f8aec8b226769ee9f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 21 13:54:02 2009 +1100

    dont restart ctdb when installing the rpm

commit 0a4d409baabf242a87c06293789d589c896b104c
Author: Michael Adam <obnox at samba.org>
Date:   Tue Oct 20 16:57:23 2009 +0200

    In ctdb_ltdb_store(), add a missing transaction_cancel when local store failed.
    
    Spotted by Volker.
    
    Michael

commit 1a09b02767f3928d3c5db0e0afc59bb938e4a445
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 21 11:51:30 2009 +1100

    mprove the log message when we skip the ip allocation check from the recovery daemon.
    
    we also skip this check if we are already in the process of performing an ip reallocation and not only when we are performing a full recovery.

commit 3997d7e5471810e9a2f145ce2e795073dfc5eded
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 21 11:34:17 2009 +1100

    treat interfaces with the name ethX* as bond devices

commit 6ef4364b3349145b2fec23e0431cd6df6dcadd41
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 20 17:11:01 2009 +1100

    Test suite: A timeout of MonitorInterval seconds sometimes isn't enough.
    
    Monitor events sometimes happen a little bit more than MonitorInterval
    seconds apart.  This changes some timeouts to MonitorInterval + 1
    seconds.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit a4aac7312947aa3b26bc26993f04b586c64f18cb
Merge: f50d64a8ac91415ca297216d2103ff940076f02b 02862c086d045497f49f3c060700419815d607e7
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 20 16:53:04 2009 +1100

    Merge commit 'origin/master'

commit f50d64a8ac91415ca297216d2103ff940076f02b
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 20 16:52:22 2009 +1100

    Test suite: New tests for validating SKIP_SHARE_CHECK options.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 2b478b0f5f09dd06626592573f053706ac637edd
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 20 16:51:06 2009 +1100

    Test suite: Update 99_ctdb_uninstall_eventscript.sh to use ctdb_init().
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 11137bc2d492a62a26ec9f9f62ff362e81643f66
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 20 16:45:29 2009 +1100

    Test suite: Fix bug in node_has_status().
    
    This function has been broken since it was updated to work with the
    "stopped" state (probably commit
    67c5bfb5f02c9d45a32d976021ede4fb2174dfe9).  Although ${var#:*:0}
    removes the shortest matching prefix of $var, '*' can match substrings
    that include ':' if '0' isn't where you expect.  So we were making
    unexpected matches and incorrectly returning true for some cases.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 1f906bd3476e7cebf217e35b5477d6a7bb615a0c
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 20 16:44:44 2009 +1100

    Test suite: add -x option to ctdb_init() function.
    
    This facilitates tracing of tests.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 02862c086d045497f49f3c060700419815d607e7
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 20 15:36:35 2009 +1100

    version 1.0.98

commit 54f9c314a0354f1039208fe6ac7dc159b6db8750
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 20 13:01:15 2009 +1100

    From Wolfgang Mueller
    
    make sure to always create the vactun database and get rid of some annoying log messages

commit 2e9fc6f0609833c6d8146196011ef780669d615d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 20 12:59:48 2009 +1100

    From wolfgang Mueller
    
    Add a tuneable so that when scripts starts to hang/timeout, we can make the node unhealthy instead of banned

commit b3ae2b753261443dca317803752a9d61285a3270
Merge: 454125ccfda04aa6b4e14f5c05164d29f41a0ead 27d152a918680a59c7412aec7e1772f25b72d469
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Oct 19 16:46:45 2009 +1100

    Merge commit 'origin/master'

commit 27d152a918680a59c7412aec7e1772f25b72d469
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 19 16:22:15 2009 +1100

    add a direcotry where multiple local scripts can be added to run when executing eventscripts

commit 97ded8a629ec762f71bad28515e4fbc810790b1d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 19 15:33:20 2009 +1100

    wait a bit longer before shutting down when the reclock file is missing
    
    pring the filename of the missing file when we turn unhealthy and also
    a 'df'

commit 02f68dc60e0b7bf26d631850b12834d5c71a88f2
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 19 15:30:44 2009 +1100

    Revert "dont shutdown a node when the reclock file is temporarily unavailable."
    
    This reverts commit f5e9f3007c10a937158bc8cdfabf33c984cf9c50.

commit 454125ccfda04aa6b4e14f5c05164d29f41a0ead
Merge: 5ad283458e59ea8232e01f34be007901c10c8a2e e62928f56ce8927b1d8686db2c31538c86462d1a
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Oct 16 16:39:46 2009 +1100

    Merge branch 'onnode_options'

commit 5ad283458e59ea8232e01f34be007901c10c8a2e
Merge: bf5402b41282da94fee1ab3e4546ec089ff12f37 536229fd120bc3fdc2419e22d3bd6ab243dd6667
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Oct 16 16:36:48 2009 +1100

    Merge commit 'origin/master'

commit bf5402b41282da94fee1ab3e4546ec089ff12f37
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Oct 16 16:35:56 2009 +1100

    initscript: when stopping on Red Hat use the success/failure functions.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit ff824676fab94168707aada7423ae766bc0f711c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 15 16:03:43 2009 +1100

    Dont run eventscript monitor when the databases are frozen.
    The databases can become frozen a while before we do the actual recovery
    since we have the re-recovery timeout.
    
    There is no point in doing much monitoring if we are waiting for a recovery,
    or if we are banned.
    This will eliminate some annoying log entries where certain tests will fail if the databases are locked.

commit f5e9f3007c10a937158bc8cdfabf33c984cf9c50
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 15 13:19:10 2009 +1100

    dont shutdown a node when the reclock file is temporarily unavailable.
    Leave the node as UNHEALTHY this stops clients from accessing the node until
    the reclock file can be accessed again

commit ddd089810a14efe4be6e1ff3eccaa604e4913c9e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 15 11:24:54 2009 +1100

    add logging everytime we create a filedescriptor in the main ctdb daemon
    so we can spot if there are leaks.
    
    plug two leaks for filedescriptors related to when sending ARP fail
    and one leak when we can not parse the local address during tcp connection establish

commit ef992a64d2376b621d4d2973ae22e567158aee12
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 15 07:41:56 2009 +1100

    new version 1.0.97

commit 82fad66123c1b8c5d4ed3b19c39acf6f367b3f37
Merge: 536229fd120bc3fdc2419e22d3bd6ab243dd6667 e62928f56ce8927b1d8686db2c31538c86462d1a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 15:51:57 2009 +1100

    Merge commit 'martins/onnode_options'

commit 536229fd120bc3fdc2419e22d3bd6ab243dd6667
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 14:52:24 2009 +1100

    version 1.0.96

commit a3406c10d70f89d332eab25d481083142dff987d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 14:14:28 2009 +1100

    add more debugging output to eventscripts and when a script has timed out,
    print a full "pstree -p" to the log.
    
    Example :
            |-ctdbd(29826)-+-ctdbd(29862)
            |              `-ctdbd(31897)-+-00.ctdb(31898)---sleep(31908)
    
    change the default timeout to 60 seconds for eventscripts

commit e62928f56ce8927b1d8686db2c31538c86462d1a
Merge: 46474e5f21fd97dd765c616647ff46055a9970e7 343c005367789e108c0320e95d7a264535d68dd8
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Oct 14 13:49:30 2009 +1100

    Merge commit 'origin/master' into onnode_options

commit 46474e5f21fd97dd765c616647ff46055a9970e7
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Oct 14 13:44:57 2009 +1100

    New onnode options: -f to specify nodes file, -n to allow use of hostnames.
    
    The -f option allows an alternate nodes file to be specified,
    overriding the CTDB_NODES_FILE environment variable.
    
    The -n option allows hostnames to be used instead of node numbers.
    Using a range of hostnames is invalid, so hostnames can't contain
    hyphens ('-') - sorry!  You can use this option without a nodes file
    by specifying "-f /dev/null".
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit eb854f65f978f24583e221138eb4f9b917b89285
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 12:12:04 2009 +1100

    move the logging of the warning "No reclock file used" to the startup case so we only print this warning on "service ctdb start" and not for "service ctdb *"

commit 3807681e74f4bfe92befdae6ed616ff5f1a99880
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 11:59:16 2009 +1100

    when we change state between healthy/unhealthy, make sure we ask the recovery
    master to perform an explicit ip reallocation.
    
    This is more reliable and faster than having the recovery dameon track these
    changes, and since we now have an explicit method to ask the recovery daemon
    to perform an explicit ip reallocation, we should use this.

commit 343c005367789e108c0320e95d7a264535d68dd8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 10:14:03 2009 +1100

    allow a pre .95 version of a recovery master to freeze databases on a post .95 node by remapping priority numbers and log this to log.ctdb

commit f6e39d35713475defaa08a623e194f3f2f8f7d53
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 09:15:24 2009 +1100

    always create the nfs state directories during the monitor event.
    this allows us to configure and enable nfs at runtime without having to restart ctdbd

commit 70e7781df1f118a0e2632a9c634f3fd388fa6c8c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 08:17:49 2009 +1100

    Port Volkers deadlock avoidance patch to HEAD.
    This patch ensures that we lock all non-notify related databases first and
    then the notify databases to avoiud a deadlock where samba needs to lock records on two databases at once (and notify being the second database).
    
    Newer versions of samba would instead use the set-db-prio control to set this explicitely on a database per database basis instead of relying on  hardcoded database names. This patch will be reverted in the future when all updated versions of samba has been pushed out.

commit 346fa055f4106497b87df97da5ebd6e51fa1ef8c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 13 09:49:05 2009 +1100

    we must break the loop as soon as we find a suitable recmaster does exist
    otherwise "tdb ipreallocate" will silently fail to update the addresses.

commit 3501d6b70bd905d6fdc4e74fe2cedc3ba77e4b86
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 18:53:20 2009 +1100

    new version 1.0.95

commit 5974b5f7998ef96aeadb7377f32ef1ab85bb5943
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 18:41:57 2009 +1100

    use the correct expected size for thew _cancel control

commit c1d7c11978d27d2ee41a2129b31d9ab61a43f8da
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 18:31:59 2009 +1100

    add a dispatch to the recovery transaction cancel call

commit 5f14874c5c705dd637f88a77f30c930fea1201d2
Merge: b2ce8b900a7d00944c84e0574fea5b371064a06d eb1fecaef9aa5cb85dff7d4f7af8a9878deabed8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 16:51:36 2009 +1100

    Merge commit 'martins/master'

commit b2ce8b900a7d00944c84e0574fea5b371064a06d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 16:48:05 2009 +1100

    add a new control for explicitely cancelling recovery transactions, i.e. the
    transactions we start across all tdb databased during the recovery.
    
    this allows us to properly clean up and delete these tdb transactions on a
    recovery failure.

commit eb1fecaef9aa5cb85dff7d4f7af8a9878deabed8
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Oct 12 16:32:49 2009 +1100

    Clean up ctdb_check_directories* eventscript functions.
    
    There are 2 problems with this code:
    
    * The loop in ctdb_check_directories_probe() breaks on filenames
      containing whitespace.
    
      The fix to protect them is to pass "$@" to this function and have it
      operate on "$@".
    
      Note that there's still a problem with whitespace in filenames in
      the 50.samba eventscript.  To fix this ctdb_check_directories_probe
      should read the filenames from stdin.  Another time...
    
    * The check for '%' in filenames in ctdb_check_directories_probe()
      ends up involving several forks.  On a modern machine this can cost
      a couple of minutes when checking a large number of directories.
    
      The fix is to use a case statement.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 318abeb4b913a8d846e7eaf4cf5c2a67b61ce974
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Oct 12 16:17:37 2009 +1100

    40.vsftpd: reset the fail counter in the "recovered" event.
    
    Each recovery that involves IP reassignments results in a restart of
    vsftpd in the "recovered" event.  Currently, we can have several
    recoveries in quick succession and the "monitor" event following each
    can fail because vsftpd isn't ready yet.  This results in cumulative
    failures, so the node is marked unhealthy, even though vsftpd has
    never had a proper opportunity to become ready.
    
    This resets the fail count after each recovery.
    
    While we're here, also move the delete of the restart flag file into
    the body of the conditional.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 46194e87e189521375b39b4ef33da2b493429fd8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 13:06:16 2009 +1100

    allow setting the recmode even when not completely frozen.
    we sometimes have to do this when we want to trigger a recovery

commit e8d692590da1070c87a4144031e3306d190ebed2
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 12:08:39 2009 +1100

    initial attempt at freezing databases in priority order

commit 0cb3d33caa42ed783e03bc825b181dde4cf63616
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Oct 12 09:22:17 2009 +1100

    uptade the freeze/thaw commands to be able to send the requested database priority to freeze/thaw to the daemon.
    
    this is encoded in the srvid field of the request header

commit 465dc95fef0ff6651ff49fa94e4cf2ebd1036ac4
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Sat Oct 10 16:28:20 2009 +1100

    during recovery, update all remote nodes so they use the same priorities
    for the databases as this node.

commit ca6d045e419f308f57e74d4c978907afb05ddb85
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Sat Oct 10 15:04:18 2009 +1100

    add a control to read the db priority from a database

commit 67741c0ee01916d94cace8e9462ef02507e06078
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Sat Oct 10 14:26:09 2009 +1100

    add a control to set a database priority. Let newly created databases default to priority 1.
    
    database priorities will be used to control in which order databases are locked during recovery in.

commit dd122351efaeef5475cdec111eb900110d83ec35
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Sat Oct 10 13:55:11 2009 +1100

    verify the DISABLED flag and compare with the previous flag we have registered for that node and not what the node says is the difference.
    
    this prevents a situation where the remove node may cause spurious ip reallocations.

commit 687535b51622d1fac7ccb38fa640bf1febd69fd8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 9 22:22:11 2009 +1100

    Fix bug spotted by Metze,
    
    the argument to ctdb_control_event_Script_disabled() is a string not a uint32

commit 5cb4d63bf6887d15aba37fafc3f6b6ba38027f13
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 8 19:17:57 2009 +1100

    version 1.0.94

commit f72d33ac73ebb1af802bacdfb30279df3cd8b8f9
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 8 16:45:25 2009 +1100

    if a node fails to become frozen during recovery, mark it up with as a culprit so it will soon get banned

commit e77bf5708df6782b4516f698b9981a1d27e2f10b
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 17:05:14 2009 +1100

    version 1.0.93

commit deed52b7e4aac94b4d11a8d89d08739e1dfd4ed7
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 16:09:24 2009 +1100

    update natgw eventscript to allow you to fore it to update and / or to remove the configuration at runtime

commit 7d91de8a837a12082c343980428153720dcad741
Merge: 22f0065cd6b66fa0f623f465aaca98883955ac79 789703ea684717781c176fd3a2a24d96abde220b
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 6 13:39:31 2009 +1100

    Merge commit 'origin/master'

commit 22f0065cd6b66fa0f623f465aaca98883955ac79
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Oct 6 13:38:00 2009 +1100

    Document CTDB_NODES_FILE environment variable used by onnode.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 789703ea684717781c176fd3a2a24d96abde220b
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 12:25:44 2009 +1100

    always send the release/take ip controls to make sure all nodes are updated

commit 9c63858c0b22c81eaccb9865a414af0bbb2833d4
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 12:11:32 2009 +1100

    add a new message to ask the recovery daemon to temporarily disable checking ip address consistency.
    
    This is useful when we are moving addresses using moveip in the cluster since otherwise if we collide with the recovery daemons own check we could cause a recovery

commit 3befe5526e147d49451fddc930aaafc3dbe2e9c1
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 11:41:18 2009 +1100

    update addip/moveip/delip to make it less likely to trigger an accidental recovery

commit 9d95dfbd12898975ba0d8560d95a974210d3de7c
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 11:40:38 2009 +1100

    change some loglevels and also pront the pnn of the ip for takeip/releaseip logging

commit be52954d921e7d443304cf49fbd488c619a9c4ec
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 10:52:31 2009 +1100

    add a new function to collect a list of all active nodes EXCEPT a certain node

commit 804e5905be51f43c8a338bfbe216fd8d5718850f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 09:35:15 2009 +1100

    allocate takeoverip state as a child of vnn and also make the takeocerip context a child of vnn

commit e8df6fc301fb7faf72c72eb39ea68d44d1526b00
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Oct 6 08:19:25 2009 +1100

    When adding a public ip to a node, make sure to push the assignment of ip addresses out to all nodes so all nodes become aware who currently holds the ip.

commit 9ffb0d08d34cbafed0e49350a3a72b15d92c8ea7
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 2 14:38:16 2009 +1000

    version 1.0.92

commit c1c0ebb8da9a6c29ee83868a311f07f30cb4ed16
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Oct 2 13:41:54 2009 +1000

    we should close this file on exec

commit 9b206d96da3341836cc25aee5693f551f6f3a80e
Merge: 4e9a3a5dc232bac12ab387ea0cf4f1b279bed5c1 23ae9e9863ea90c6fb3f105403fd098041fa73f4
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 1 15:46:01 2009 +1000

    Merge commit 'martins/master'

commit 23ae9e9863ea90c6fb3f105403fd098041fa73f4
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Oct 1 15:39:09 2009 +1000

    Test suite: The ctdb ping test should allow time to go backwards.
    
    Time can actually go backwards during this test if ntpd happens to
    adjust it little bit.  So we should cope...
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 4e9a3a5dc232bac12ab387ea0cf4f1b279bed5c1
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 1 14:53:35 2009 +1000

    dont exit on a commit failure

commit d1d370033d5007ad1c2c34cd9eeac53001f4b13e
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 1 14:51:32 2009 +1000

    Revert "Revert "allow the transaction commit to fail""
    
    This reverts commit 74e416108df6934f45ca646d709785dd76ab3c35.

commit b77e4698e7f83443243965f93b84237f2903cd46
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 1 14:31:55 2009 +1000

    document how to use the notification script

commit b1fe04f2e9447f762a0b805763deb29296585ff8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Oct 1 14:05:30 2009 +1000

    add a new notification to trigger on when ctdb has started

commit fe26da7780545b1ecc0a7da5bc1cf8beaeea94cc
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Sep 30 21:21:56 2009 +1000

    Minor fixes to 01.reclock eventscript.
    
    test -z really needs its argument to be quoted.  Simplified a status
    test.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit cfe63636a163730ae9ad3554b78519b3c07d8896
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Sep 30 21:05:16 2009 +1000

    40.vsftpd monitor event only fails after 2 failures to connect to port 21.
    
    Change the monitor event in 40.vsftpd so it only fails if there are 2
    successive failures connecting to port 21.  This reduces the
    likelihood of unhealthy nodes due to vsftpd being restarted for
    reconfiguration due to node failover or system reconfiguration.
    
    New eventscript functions ctdb_counter_init, ctdb_counter_incr,
    ctdb_counter_limit.  These are used to count arbitrary things in
    eventscripts, depending on the eventscript name and a tag that is
    passed, and determine if a specified limit has been hit.  They're good
    for counting failures!
    
    These functions are used in 40.vsftpd and also in 01.reclock - the
    latter used to do the counting without these functions.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 803cfb4cd2f6d139f466053a6d7e104fcb772ef5
Merge: 096cdc0c12d22d99f8405bee5cb9f05c616c8492 d1332f4d5d3d3e4b4e0cd362a6903d09e0d5fcbb
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Sep 30 19:22:59 2009 +1000

    Merge commit 'origin/master'

commit d1332f4d5d3d3e4b4e0cd362a6903d09e0d5fcbb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 29 13:31:41 2009 +1000

    New version 1.0.91

commit 95a3ee551241aa164967991fe5efe078e1714bde
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 29 13:20:18 2009 +1000

    From Wolfgang Mueller-Friedt
    
    Remove the explicit vacuum/repack commands from the 00.ctdb eventscript
    and implement this in the ctdb daemon.
    
    Combine vacuuming and repacking into one
    cheap read traverse to enumerate all candidate records
    and one write traverse that both repacks the database and also deletes the record locally where we are lmaster and where the records have already been deleted remotely.
    
    this code also adds initial autotuning heuristics for the vacuum intervals and how many records to delete in each iteration.
    
    minor stylish changes made by ronnie s

commit 096cdc0c12d22d99f8405bee5cb9f05c616c8492
Merge: a083a1976d621c76121f1fa2c2f484cfa47267bd 6e35feb06ec036b9036c5d1cdd94f7cef140d8a6
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Sep 29 12:59:10 2009 +1000

    Merge commit 'origin/master'

commit 6e35feb06ec036b9036c5d1cdd94f7cef140d8a6
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Sep 28 14:12:59 2009 +1000

    change the reclock fail count to 19 monitor intervals before we shut down ctdbd

commit 2cb04747887674def299e574fccb827c1c3194e7
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Sep 28 14:06:40 2009 +1000

        add a new eventscript 01.reclock
    
        if the reclock file has been set, then this script will test that the
        reclock file can actually be accessed.
        if the file does not exist, or if the attempts to stat the file hangs,
        the node will be marked unhealthy after the third failed monitoring event
        and after the tenth failure, ctdb itself will shutdown.

commit 5e7dc36f1649824db2f9dab34bede8b388502a57
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Sep 28 13:39:54 2009 +1000

    add machinereadable output for the ctdb getreclock command

commit a083a1976d621c76121f1fa2c2f484cfa47267bd
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Sep 25 18:00:17 2009 +1000

    Test suite: Print debug info on node status timeouts.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit edb58a417bfeb094cbbbf96caec8e2918256dad9
Merge: db7195d762f69577c4e28f0b0e0ded0ac7f91f0b 4364419a486c1995bea56dab603cc4960e7c8e7a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 25 17:34:59 2009 +1000

    Merge commit 'obnox/master-rebase'

commit db7195d762f69577c4e28f0b0e0ded0ac7f91f0b
Merge: 0e6a52ee66830e7742eaa392cd3dd9caeb808fb3 f66d17fb2e81a35d5adb3754e1cc902f76b4590a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 25 13:18:18 2009 +1000

    Merge root at 10.1.1.27:/shared/ctdb/ctdb-git

commit f66d17fb2e81a35d5adb3754e1cc902f76b4590a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 25 13:14:53 2009 +1000

    with the new banning logic with one struct for each node we no longer "forget" the other culprits as often as we used to do, which means that things like "ctdb recover" can now actually lead to a node becomming banned if we perform too many recoveries too frequently.
    
    change this to provide absolution to all nodes once they have participated in a recovery session.

commit 4364419a486c1995bea56dab603cc4960e7c8e7a
Author: Michael Adam <obnox at samba.org>
Date:   Thu Sep 10 16:21:01 2009 +0200

    Revert "dont check if commit failed, we do allow the commit to fail sometimes"
    
    This reverts commit affa6f47432507e84b7e76b88a2c27fff8e6e2e4.
    
    Transaction commit should not be allowed to fail.
    This is a fatal error.
    
    Michael

commit 74e416108df6934f45ca646d709785dd76ab3c35
Author: Michael Adam <obnox at samba.org>
Date:   Thu Sep 10 16:20:26 2009 +0200

    Revert "allow the transaction commit to fail"
    
    This reverts commit 7a6134e684c9ac4763bf198ef1410867b6082c94.
    
    Transaction commit should not be allowed to fail.
    This is a fatal error.
    
    Michael

commit 84e5a55a900b01903b80e23045edfc726d8d77a1
Author: Michael Adam <obnox at samba.org>
Date:   Tue Aug 4 09:45:50 2009 +0200

    ctdb_client: fix race in starting concurrent transactions on a single node
    
    There are two races in concurrent transactions on a single node.
    One in starting a transaction, and one with committing (replaying).
    
    This commit closes the first race by storing the pid in the
    transaction-lock record and comparing the own pid against it
    as a measure to prevent starting a second transaction when
    a second node has come inbetween and changed the pid in the lock
    record.
    
    Michael

commit 0e6a52ee66830e7742eaa392cd3dd9caeb808fb3
Merge: 3085170be8460e59996a3eee4e29fec9ddbcf0f8 31216fd48117526c943e42d137ce24ef89fa0009
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 18 14:23:37 2009 +1000

    Merge commit 'martins/master'

commit 3085170be8460e59996a3eee4e29fec9ddbcf0f8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 18 12:58:30 2009 +1000

    dont mark the recovery daemon as a ban culprit just because a node in the cluster was set to recvoery mode == ACTIVE.
    
    This happens normally when someone explicitely triggers a recovery using "ctdb recover"

commit 03b0d913ae009284e2fadda1b9246ec77d19db29
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 15 19:33:53 2009 +1000

    try restarting ststd indefinitely   not just once

commit db7b96304e4725f29b12398b7582e385daed63ed
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 15 19:33:35 2009 +1000

    Revert "try to restart statd everytime it fails, not just the first time"
    
    This reverts commit 4f7b39a4871af28df1c4545ec37db179fa47a7da.

commit 4f7b39a4871af28df1c4545ec37db179fa47a7da
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 15 13:35:58 2009 +1000

    try to restart statd everytime it fails, not just the first time

commit 1ae3a40705e14efcc24f558cd4d677932765c4fd
Merge: b5410e7be0525e6e5cd49ccebc7bbc57086f3cb2 7bf9fff9139a4270496bddb97f9433bab87824bf
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 15 08:05:33 2009 +1000

    Merge commit 'obnox/master-rebase'

commit b5410e7be0525e6e5cd49ccebc7bbc57086f3cb2
Merge: 7a6134e684c9ac4763bf198ef1410867b6082c94 5624da65d3fad1905c9f93a9e41a90b98ad692d2
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Sat Sep 12 07:05:21 2009 +1000

    Merge root at 10.1.1.27:/shared/ctdb/ctdb-git

commit 5624da65d3fad1905c9f93a9e41a90b98ad692d2
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Sat Sep 12 07:30:18 2009 +1000

     new version  1.0.90

commit 31216fd48117526c943e42d137ce24ef89fa0009
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Sep 11 16:15:31 2009 +1000

    Test suite: Update "complex" tests for wait_until_node_has_status() change.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit a2aaef03d4d6bbd4b42f50f732254935d4d3469c
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Sep 11 15:55:53 2009 +1000

    Test suite: wait_until_node_has_status() now uses "onnode any".
    
    Many tests currently do this sort of thing:
    
      onnode 0 $CTDB_TEST_WRAPPER wait_until_node_has_status 1 disconnected
    
    In fact, they all use exactly the same "onnode 0 $CTDB_TEST_WRAPPER"
    idiom.  This is both repetitious and dangerous, since node 0 might be
    shutdown during a test.  Instead, we push "onnode any
    $CTDB_TEST_WRAPPER" (which selects a connected node) into
    wait_until_node_has_status() and just call that function directly in
    tests, like this:
    
      wait_until_node_has_status 1 disconnected
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 407b3117dfc1072117abf681ec98b9e252d8744c
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Sep 11 14:06:12 2009 +1000

    Test suite: Rework the cluster (re)start code.
    
    Make it possible to start on only 1 node - for tests that need to
    restart a particular node.
    
    _ctdb_hack_options() attempts to see what options are being passed to
    a daemon that is being run via the initscript.  It then sets a
    corresponding environment variable that the initscript knows about.
    Currently only the --start-as-stopped option is supported.  This is
    extremely ugly but it seems like the only way...  :-(
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 7bf9fff9139a4270496bddb97f9433bab87824bf
Author: Michael Adam <obnox at samba.org>
Date:   Fri Aug 28 13:01:27 2009 +0200

    Introduce sysconfig variable CTDB_SYSLOG=yes/no (default "no").
    
    This allows for controlling start of ctdbd with or without the option "--syslog"
    from the sysconfig/ctdb file.
    
    Michael

commit e5ba8e1a832c223496ad72209ce1d3203cdaa2d7
Author: Michael Adam <obnox at samba.org>
Date:   Fri Aug 28 12:45:43 2009 +0200

    ctdb_logging: fix a comment typo.
    
    Michael

commit b060911683d8ac201806d35a505867fe3ba9519f
Author: Michael Adam <obnox at samba.org>
Date:   Fri Aug 28 01:04:47 2009 +0200

    Rename the CTDB_INIT_STYLE "ubuntu" to "debian" - this is where it comes from.
    
    Micheal

commit 4899a888d4e2c31b4bd7220f3cd8936168942e61
Author: Mathieu Parent <math.parent at gmail.com>
Date:   Fri Aug 28 00:58:52 2009 +0200

    Update outdated autotools helper files.
    
    This fixes https://bugzilla.samba.org/show_bug.cgi?id=6370
    and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=536256
    
    Signed-off-by: Michael Adam <obnox at samba.org>

commit f7a326b560b12f8b46c01d98cdd460e5510c67fb
Author: Mathieu Parent <math.parent at gmail.com>
Date:   Thu Aug 27 23:44:39 2009 +0200

    Fix bashism in nfstickle event script.
    
    Signed-off-by: Michael Adam <obnox at samba.org>

commit 0310a6b17d6167c46482a07c6cd96bcabda6ffbc
Author: Mathieu Parent <math.parent at gmail.com>
Date:   Thu Aug 27 23:36:07 2009 +0200

    Fix bashisms in samba event script.
    
    Signed-off-by: Michael Adam <obnox at samba.org>

commit 13b81b6c8e01aa52a31756ecffa797a4761115db
Author: Mathieu Parent <math.parent at gmail.com>
Date:   Thu Aug 27 23:35:41 2009 +0200

    Fix bashisms in multipathd event script.
    
    Signed-off-by: Michael Adam <obnox at samba.org>

commit 4fad47c1af8503385b090be281ffbd284021279c
Author: Mathieu Parent <math.parent at gmail.com>
Date:   Thu Aug 27 23:35:03 2009 +0200

    Fix bashism in natgw eventscript.
    
    Signed-off-by: Michael Adam <obnox at samba.org>

commit 7a6134e684c9ac4763bf198ef1410867b6082c94
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Sep 9 12:50:55 2009 +1000

    allow the transaction commit to fail

commit 12e14a09dd28ed005c8eb8fca7cd38a96aab938e
Merge: affa6f47432507e84b7e76b88a2c27fff8e6e2e4 e978b274a6af94ea7734675243ec65c5b17a583d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Sep 9 12:50:21 2009 +1000

    Merge commit 'martins/master'

commit e978b274a6af94ea7734675243ec65c5b17a583d
Merge: f6cf586d8f6384e48215b7d2c20fb83e98504878 8903b858ddd3a016d9cf765187839814443a67ca
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Sep 9 12:48:40 2009 +1000

    Merge commit 'origin/master'

commit affa6f47432507e84b7e76b88a2c27fff8e6e2e4
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Sep 9 12:48:21 2009 +1000

    dont check if commit failed, we do allow the commit to fail sometimes

commit 8903b858ddd3a016d9cf765187839814443a67ca
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Sep 9 10:57:39 2009 +1000

    dont force an election just because the ban flag differs across the cluster.
    a simple push to resync this flag is sufficient

commit f6cf586d8f6384e48215b7d2c20fb83e98504878
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Sep 8 15:19:24 2009 +1000

    Document onnode "onnode any".
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit fb47cce86c0edae5caaf485f13ae7a151b6cb00d
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Sep 8 15:10:20 2009 +1000

    onnode: add "any" nodespec to select any node with running CTDB.
    
    In testing and other situations (e.g. eventscripts) it is necessary to
    select a node where a ctdb command can be run.  The whole idea here is
    to avoid nodes where ctdbd is not running and where most ctdb commands
    would fail.  This implements a standard way of doing this involving a
    recursive onnode command.
    
    There is still a small window for a race, where the selected node is
    suddenly shutdown, but this is unavoidable.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 10ebeb215e7260186dab8f4f2403c48db9df9a00
Merge: cd65d8acb97aa9f83ff0d0585bf09caef2d2f3eb f76132b0d555e52ee0a379ec2c156350b37b0280
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Sep 7 15:29:34 2009 +1000

    Merge commit 'origin/master'

commit f76132b0d555e52ee0a379ec2c156350b37b0280
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 4 04:09:30 2009 +1000

    lower the loglevel for the info messages that a public ip is not hosted locally for takeip/releaseip

commit 46823aa7c673bc18a1424500b3f01da9c2dd6333
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 4 03:05:37 2009 +1000

     new version 1.0.89

commit 77574b7d7fe11c8e73957a80845481f3b2a64219
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 4 02:59:24 2009 +1000

    make it possible to have ctdb manage (start/stop/monitor) winbind without having samba

commit b869bb0e32d32422a5ba6b235864acba07f2b412
Merge: 7a95257a5ec19f232f661bc7f797051bf08ab776 0c4c2240267af183d54ffd4c0aacda208f6eff6a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 4 02:00:14 2009 +1000

    Merge root at 10.1.1.27:/shared/ctdb/ctdb-git

commit 0c4c2240267af183d54ffd4c0aacda208f6eff6a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 4 02:20:39 2009 +1000

    new prototype banning code

commit 7a95257a5ec19f232f661bc7f797051bf08ab776
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Sep 2 04:39:17 2009 +1000

    overwrite the state file, dont append to it.
    dont log errors is trying to delete a nonexisting state file
    
    this eliminates some annoying log entries in the ctdb log

commit e1d709f32196e19d4041ee2958e143791762e08f
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Sep 2 03:12:27 2009 +1000

    redirect stderr to dev null since the rule might not exist when we try to unconditionally delete it

commit e26d9d32e68e7db1cf4f96c47c0126e9e0b213be
Author: Michael Adam <obnox at samba.org>
Date:   Thu Aug 27 22:09:42 2009 +0200

    set broadcast addresses in the takeip event.
    
    Michael

commit 54c047c48902a15e5d2925bfa86e012a11188796
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Aug 28 05:19:44 2009 +1000

    remove a check for the reclock file we dont need

commit cd65d8acb97aa9f83ff0d0585bf09caef2d2f3eb
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Aug 27 12:35:52 2009 +1000

    Test suite: fix minor typo in complex/32_cifs_tickle.sh
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 9bceef2b13fe9560ca02a266ce5a1fbbcef3af22
Merge: 448cd8db1305c1e6dfab323f92eac4a576596e4e 85590e9dfaab0db16ce8103e509fd4d51aef4ad5
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Aug 27 12:33:43 2009 +1000

    Merge commit 'origin/master'

commit 448cd8db1305c1e6dfab323f92eac4a576596e4e
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jul 16 14:04:06 2009 +1000

    Test suite: Fix debug code for unexpectedly unhealthy cluster.
    
    The debug code should run "ctdb status" on a cluster node, not on the
    test client.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 85590e9dfaab0db16ce8103e509fd4d51aef4ad5
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Aug 19 08:25:50 2009 +1000

    skip any persistent databases ending in .bak

commit 8ed4fa0eb09238952044645b72234185e498a40c
Merge: 49de8429d2a996dc055370541a12ea36762abe94 fbfa1c72875dda4d1636d8e72c67ba09b10455df
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Aug 17 13:08:42 2009 +1000

    Merge commit 'origin/master'

commit fbfa1c72875dda4d1636d8e72c67ba09b10455df
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Aug 17 11:04:40 2009 +1000

    new version 1.0.88

commit e5b25e1386294b1f800c32fb01c69c3c3ce85c26
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Aug 17 10:56:12 2009 +1000

    reduce the loglevel for the message that we switch to a different recmaster while waiting for ipreallocate to finish

commit d8d21884736a9610d48cf532e1c6778e511fb7a8
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Aug 17 10:54:45 2009 +1000

    if no timeout at all is specified to the ctdb tool, neither using -T nor by setting CGTDB_TIMEOUT, then use 120 seconds as a default timepout before the ctdb command will exit with an error.

commit 49de8429d2a996dc055370541a12ea36762abe94
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Aug 14 20:47:38 2009 +1000

    Test suite: ctdb_persistent.c needs to use transactions.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 5852a526ce7d0333cd1f9a05353d8920ea99db37
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Aug 13 13:02:00 2009 +1000

    document enable/disablescript

commit 7e799b7523c9699bd65a8a8207f7e03d668b0b81
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu Aug 13 13:04:08 2009 +1000

    add new controls to make it possible to enable/disable individual eventscripts
    
    update scriptstatus output so it lists disabled scripts

commit 0e9c3e0cf76dd33a24241f02709e56bc330f009a
Merge: abf4540bfb06de56b0a7b5976b5f1b2a24a8743d a42dbdb7b9ccf3ce2aed48aa33f1cd3af2e94fe3
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Aug 12 08:48:03 2009 +1000

    Merge commit 'origin/master'

commit a42dbdb7b9ccf3ce2aed48aa33f1cd3af2e94fe3
Merge: 836b95f32724cf37e4f643f20653f78842613692 9a251078f22aea15b9ca37393e0b5e2740aa21fb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Aug 10 07:33:52 2009 +1000

    Merge root at 10.1.1.27:/shared/ctdb/ctdb-git

commit 836b95f32724cf37e4f643f20653f78842613692
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jul 30 12:02:27 2009 +0200

    tests: fix the 52_ctdb_fetch.sh test.
    
    The parser for the output of the ctdb_fetch program
    did not match the output that ctdb_fetch generates.
    It seemed to rather come from the ctdb_bench test...
    
    This patch adapts the parser to correctly interpret
    the output of ctdb_fetch.
    
    Michael

commit c513a31d755003d7af91529790b06ce0d226c90f
Author: Michael Adam <obnox at samba.org>
Date:   Sun Jul 12 00:39:29 2009 +0200

    client: fix a debug message (misplaced newline).
    
    Michael

commit 875778fbbfd6b0f09fd2db76f7348ad6271350a3
Author: Michael Adam <obnox at samba.org>
Date:   Wed Jul 15 10:03:03 2009 +0200

    client:ctdb_control_send: remove duplicate setting of the reqid header.
    
    Michael

commit a0ad69197b4771f3d5be23d78d0933d732405f08
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jul 21 09:50:56 2009 +0200

    ctdbd: use ctdb_syslog_log() as debug_add function for syslog
    
    Michael

commit afafab0ac6cac90c3f8614204b5b6df92e446728
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jul 21 09:48:10 2009 +0200

    ctdbd: set debug_add hook to be able to use dump_data in the daemon.
    
    Michael

commit 64405bdbebb2ddf0ae980e958ede77df79139000
Author: Michael Adam <obnox at samba.org>
Date:   Tue Jul 21 09:47:07 2009 +0200

    debug: add debug_add and dump_data functions
    
    Michael

commit 8f48e37c254e0852d4e2dea54b905ce5ef2b925d
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Jul 30 11:52:39 2009 +0930

    tdb: don't alter tdb->flags in tdb_reopen_all()
    
    The flags are user-visible, via tdb_get_flags/add_flags/remove_flags.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 8d0d432ab7766d9c0f9868fd77e48b9b5cc5d9f9
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Jul 30 11:52:08 2009 +0930

    tdb: Reimplementation of Metze's "lib/tdb: if we know pwrite and pread are thread/fork safe tdb_reopen_all() should be a noop".
    
    This version just wraps the reopen code, so we still re-grab the lock and do
    the normal sanity checks.
    
    The reason we do this at all is to avoid global fd limits, see:
    http://forums.fedoraforum.org/showthread.php?t=210393
    
    Note also that this whole reopen concept is fundamentally racy: if the parent
    goes away before the child calls tdb_reopen_all, the database can be left
    without an active lock and another TDB_CLEAR_IF_FIRST opener will clear it.
    A fork_with_tdbs() wrapper could use a pipe to solve this, but it's hardly
    elegant (what if there are other independent things which have similar needs?).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 8b6a5bba93843cd83b7b386b82949ad88f29884a
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Jul 30 13:10:33 2009 -0700

    realloc() has that horrible overloaded free semantic when size is 0: current code does a free of the old record in this case, then fail.

commit 6de2823f5f7976d4efa20761e518d6b67753f054
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Thu Jul 30 13:09:33 2009 -0700

    If the record is at the end of the database, pretending it has length 1 might take us out-of-bounds. Only pretend to be length 1 for the malloc.

commit ce19658ba13272238058e9b9bc03e62f48b737c0
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 14:53:03 2009 +0930

    Port from SAMBA tdb: commit 54a51839ea65aa788b18fce8de0ae4f9ba63e4e7 Author: Rusty Russell <rusty at rustcorp.com.au> Date: Sat Jul 18 15:28:58 2009 +0930
    
    Make tdb transaction lock recursive (samba version)
    
        This patch replaces 6ed27edbcd3ba1893636a8072c8d7a621437daf7 and
        1a416ff13ca7786f2e8d24c66addf00883e9cb12, which fixed the bug where traversals
        inside transactions would release the transaction lock early.
    
        This solution is more general, and solves the more minor symptom that nested
        traversals would also release the transaction lock early.  (It was also suggestd in
        Volker's comment in 6ed27ed).
    
        This patch also applies to ctdb, if the traverse.c part is removed (ctdb's tdb
        code never received the previous two fixes).
    
        Tested using the testsuite from ccan (adapted to the samba code).  Thanks to
        Michael Adam for feedback.
    
        Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
        Signed-off-by: Michael Adam <obnox at samba.org>
    commit 760104188d0d2ed96ec4a70138e6d0bf86d797ed
    Author: Rusty Russell <rusty at rustcorp.com.au>
    Date:   Tue Jul 21 16:23:35 2009 +0930
    
        tdb: fix locking error
    
        54a51839ea65aa788b18fce8de0ae4f9ba63e4e7 "Make tdb transaction lock
        recursive (samba version)" was broken: I "cleaned it up" and prevented
        it from ever unlocking.
    
        To see the problem:
            $ bin/tdbtorture -s 1248142523
            tdb_brlock failed (fd=3) at offset 8 rw_type=1 lck_type=14 len=1
            tdb_transaction_lock: failed to get transaction lock
            tdb_transaction_start failed: Resource deadlock avoided
    
        My testcase relied on the *count* being correct, which it was.  Fixing that
        now.
    
        Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
        Signed-off-by: Michael Adam <obnox at samba.org>

commit e72974e5cefabc7035399d16633f727f868caa61
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 14:51:34 2009 +0930

    Port from SAMBA tdb: commit a6cc04a20089e8fbcce138c271961c37ddcd6c34 Author: Andrew Tridgell <tridge at samba.org> Date: Mon Jun 1 13:13:07 2009 +1000
    
    overallocate all records by 25%
    
        This greatly reduces the fragmentation of databases where records
        tend to grow slowly by a small amount each time. The case where this
        is most seen is the ldb index records. Adding this overallocation
        reduced the size of the resulting database by more than 20x when
        running a test that adds 10k users.

commit 233c52bfb087f636ad61e95c12616c02901f4f83
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 14:51:12 2009 +0930

    Port from SAMBA tdb: commit a386173fa1c7c5bcc11ea9260d84b6c52c154b3d Author: Andrew Tridgell <tridge at samba.org> Date: Mon Jun 1 13:11:39 2009 +1000
    
    auto-repack in transactions that expand the tdb
    
        The idea behind this is to recover from badly fragmented free
        lists. Choosing the point where the file expands is fairly arbitrary,
        but seems to work well.

commit fe3ceb101a5a9c336973c2c6c31406bd8181c2fe
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 16:02:51 2009 +0930

    Port from SAMBA ctdb: commit 936d76802f98d04d9743b2ca8eeeaadd4362db51 Author: Andrew Tridgell <tridge at samba.org> Date: Tue Dec 16 14:38:17 2008 +1100
    
    imported the tdb_repack() code from CTDB
    
        The tdb_repack() function repacks a TDB so that it has a single
        freelist entry. The file doesn't shrink, but it does remove all
        freelist fragmentation. This code originated in the CTDB vacuuming
        code, but will now be used in ldb to cope with fragmentation from
        re-indexing

commit e03980add02a28609a7a0a0c87ebc85419b98144
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 14:50:39 2009 +0930

    Port from SAMBA tdb: commit 4b4fec65db4e202afa13b2d15867f4d8a54d154e Author: Andrew Tridgell <tridge at samba.org> Date: Thu May 28 16:08:28 2009 +1000
    
    make TDB_NOSYNC affect all the fsync/msync calls in transactions
    
        During a transaction commit tdb normally uses fsync/msync calls to
        make it crash safe. This can be disabled using the TDB_NOSYNC flag,
        but it wasn't disabling all the code paths that caused a fsync/msync.

commit 5253a0ba3a34fbf5810f363ecc094203d49e835f
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 14:49:57 2009 +0930

    Port from SAMBA tdb: commit a91bcbccf8a2243dac57cacec6fdfc9907580f69 Author: Jim McDonough <jmcd at samba.org> Date: Thu May 21 16:26:26 2009 -0400
    
    Detect tight loop in tdb_find()

commit aa22d1875b1997664af983c0baeabe34e40dd253
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 14:48:42 2009 +0930

    Port from SAMBA tdb: commit 42c0931441ef53a3f977e1334355fa83f05ac184 Author: Tim Prouty <tprouty at samba.org> Date: Tue Mar 31 16:24:07 2009 -0700
    
    tdb: Remove unused variable

commit 4c3dac215a088947f645f727343997f5d47e3260
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Jul 29 14:47:29 2009 +0930

    Port from SAMBA tdb:
    
    commit b90863c0b7b860b006ac49c9396711ff351f777f
    Author: Howard Chu <hyc at highlandsun.com>
    Date:   Tue Mar 31 13:15:54 2009 +1100
    
        Add tdb_transaction_prepare_commit()
    
        Using tdb_transaction_prepare_commit() gives us 2-phase commits. This
        allows us to safely commit across multiple tdb databases at once, with
        reasonable transaction semantics
    
        Signed-off-by: tridge at samba.org

commit 9a251078f22aea15b9ca37393e0b5e2740aa21fb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Mon Aug 3 12:51:55 2009 +1000

    update STOP/CONTINUE to better handle when we stop the last node

commit abf4540bfb06de56b0a7b5976b5f1b2a24a8743d
Merge: f9b71757f034732647228d4b8a8f00528028b6b0 32a69b0efa078b069802470be6488a4efe32961d
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Jul 31 11:04:37 2009 +1000

    Merge commit 'origin/master'

commit f9b71757f034732647228d4b8a8f00528028b6b0
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jul 30 14:10:34 2009 +1000

    Test suite: Retrieval NFS_TICKLE_SHARED_DIRECTORY more defensively.
    
    In complex/31_nfs_tickle.sh we run sed against a file that might not
    exist, causing potential garbage from stderr in the output.  Check
    that the file exists before running sed.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit c53353c6402f378f29200313d82f1f9262d628b1
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jul 30 14:03:44 2009 +1000

    Test suite: Better diagnostics for recent change to complex/31_nfs_tickle.sh.
    
    Add a -v so we see the output of the command that tries to get the
    value of NFS_TICKLE_SHARED_DIRECTORY.  That way we can tell if a value
    was retrived OK or if we're using the default.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 878437a909ea44dfc3635f082e34741ee256e505
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jul 30 13:57:40 2009 +1000

    Test suite: complex/31_nfs_tickle.sh should use NFS_TICKLE_SHARED_DIRECTORY.
    
    Rather than hardcoding the location of the shared tickle directory,
    attempt to use the value of NFS_TICKLE_SHARED_DIRECTORY from
    /etc/sysconfig/nfs on node 0.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 8fcc4610de926f44e18ec85fb57ca5f7d3c28bd6
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jul 30 13:45:06 2009 +1000

    Test suite: Ask CTDB about CIFS tickles registered for the actual test node.
    
    This failed when node 0 had no public IPs because we would always run
    "ctdb gettickles" on node.  We now ask node 0 for the tickles on the
    test node.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit b7787255391eddef8458f81ff9b75d9116e2afd3
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jul 30 13:20:23 2009 +1000

    Test suite: Turn off strict host key checking in the SSH failover test.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

-----------------------------------------------------------------------

Summary of changes:
 Makefile.in                                        |   20 +-
 client/ctdb_client.c                               |  677 ++++++++--
 common/ctdb_io.c                                   |   39 +-
 common/ctdb_logging.c                              |  186 +++
 common/ctdb_util.c                                 |  106 +-
 common/system_linux.c                              |    7 +
 config.guess                                       |  197 ++-
 config.sub                                         |  216 +++-
 config/ctdb.init                                   |   73 +-
 config/ctdb.sysconfig                              |   90 ++-
 config/events.d/00.ctdb                            |   40 +-
 config/events.d/01.reclock                         |   46 +
 config/events.d/10.interface                       |  280 +++--
 config/events.d/11.natgw                           |   20 +-
 config/events.d/11.routing                         |   16 +-
 config/events.d/13.per_ip_routing                  |  444 ++++++
 config/events.d/20.multipathd                      |   24 +-
 config/events.d/31.clamd                           |   49 +-
 config/events.d/40.vsftpd                          |   65 +-
 config/events.d/41.httpd                           |   73 +-
 config/events.d/50.samba                           |  193 ++--
 config/events.d/60.nfs                             |  127 +-
 config/events.d/61.nfstickle                       |   57 +-
 config/events.d/70.iscsi                           |   39 +-
 config/events.d/91.lvs                             |   19 +-
 config/events.d/99.timeout                         |   26 +
 config/events.d/README                             |   23 +-
 config/functions                                   |  535 ++++++--
 config/gdb_backtrace                               |   87 ++
 config/interface_modify.sh                         |   73 +
 config/notify.sh                                   |    9 +
 config/statd-callout                               |    5 +-
 configure.ac                                       |   11 +-
 doc/ctdb.1                                         |  145 ++-
 doc/ctdb.1.html                                    |  254 +++--
 doc/ctdb.1.xml                                     |  169 +++-
 doc/ctdbd.1                                        |   72 +-
 doc/ctdbd.1.html                                   |  131 ++-
 doc/ctdbd.1.xml                                    |  111 ++-
 doc/onnode.1                                       |  124 ++-
 doc/onnode.1.html                                  |   34 +-
 doc/onnode.1.xml                                   |   53 +-
 include/ctdb.h                                     |  107 ++-
 include/ctdb_private.h                             |  254 +++-
 include/includes.h                                 |    9 +-
 lib/events/events_epoll.c                          |   32 +-
 lib/events/events_select.c                         |   28 +-
 lib/events/events_standard.c                       |   37 +-
 lib/replace/config.guess                           |  197 ++-
 lib/replace/config.sub                             |  216 +++-
 lib/talloc/config.guess                            |  197 ++-
 lib/talloc/config.sub                              |  216 +++-
 lib/talloc/talloc.c                                |    7 +-
 lib/talloc/talloc.h                                |    1 +
 lib/tdb/Makefile.in                                |  129 +--
 lib/tdb/autogen.sh                                 |    2 -
 lib/tdb/build_macros.m4                            |   14 +
 lib/tdb/common/check.c                             |  423 ++++++
 lib/tdb/common/dump.c                              |    4 +-
 lib/tdb/common/freelist.c                          |   26 +-
 lib/tdb/common/freelistcheck.c                     |    8 +-
 lib/tdb/common/io.c                                |   52 +-
 lib/tdb/common/lock.c                              |   81 +-
 lib/tdb/common/open.c                              |  104 ++-
 lib/tdb/common/tdb.c                               |  424 +++++-
 lib/tdb/common/tdb_private.h                       |   56 +-
 lib/tdb/common/transaction.c                       |  270 +++--
 lib/tdb/common/traverse.c                          |   60 +-
 lib/tdb/config.guess                               |  153 ++-
 lib/tdb/config.mk                                  |   32 +-
 lib/tdb/config.sub                                 |  205 +++-
 lib/tdb/configure.ac                               |   31 +-
 lib/tdb/docs/README                                |   32 +-
 lib/tdb/docs/tracing.txt                           |   46 +
 lib/tdb/include/config.h.in                        |  708 ----------
 lib/tdb/include/tdb.h                              |   13 +-
 lib/tdb/libtdb.m4                                  |   11 +-
 lib/tdb/pytdb.c                                    |  516 +++++++
 lib/tdb/python.mk                                  |    6 +
 lib/tdb/python/tdbdump.py                          |   12 +
 lib/tdb/python/tests/simple.py                     |  133 ++
 lib/tdb/release-script.sh                          |   48 +
 lib/tdb/rules.mk                                   |   16 +
 lib/tdb/script/abi_checks.sh                       |   91 ++
 lib/tdb/script/abi_checks_gcc.sh                   |   35 +
 lib/tdb/script/mksigs.pl                           |  183 +++
 lib/tdb/script/mksyms.awk                          |   76 +
 lib/tdb/script/mksyms.sh                           |   45 +
 lib/tdb/swig/Tdb.py                                |  116 --
 lib/tdb/swig/tdb.i                                 |  167 ---
 lib/tdb/swig/tdb.py                                |   95 --
 lib/tdb/tdb.exports                                |   65 +
 lib/tdb/tdb.mk                                     |   89 ++
 lib/tdb/tdb.pc                                     |   12 -
 lib/tdb/tdb.pc.in                                  |    1 +
 lib/tdb/tdb.signatures                             |   60 +
 lib/tdb/tools/tdbbackup.c                          |   63 +-
 lib/tdb/tools/tdbdump.c                            |    4 +-
 lib/tdb/tools/tdbtool.c                            |  462 ++++---
 lib/tdb/tools/tdbtorture.c                         |   56 +-
 lib/tdb/web/index.html                             |   48 +
 lib/util/debug.c                                   |   75 +-
 lib/util/debug.h                                   |    5 +
 lib/util/dlinklist.h                               |   42 +
 lib/util/fault.c                                   |  239 ++++
 lib/util/fault.m4                                  |   15 +
 lib/util/signal.c                                  |  144 ++
 lib/util/signal.m4                                 |    1 +
 lib/util/substitute.c                              |  167 +++
 lib/util/util.h                                    |  658 +++++++++
 packaging/RPM/ctdb.spec                            |  687 ---------
 packaging/RPM/ctdb.spec.in                         |  886 ++++++++++++
 packaging/RPM/makerpms.sh                          |   11 +
 packaging/maketarball.sh                           |   78 +-
 server/ctdb_banning.c                              |  136 ++
 server/ctdb_call.c                                 |    2 +-
 server/ctdb_control.c                              |  113 ++-
 server/ctdb_daemon.c                               |  255 ++++-
 server/ctdb_freeze.c                               |  349 ++++--
 server/ctdb_lockwait.c                             |    4 +
 server/ctdb_logging.c                              |  384 +++++-
 server/ctdb_ltdb_server.c                          |  682 +++++++++-
 server/ctdb_monitor.c                              |  226 +++-
 server/ctdb_persistent.c                           |  249 ++++-
 server/ctdb_recover.c                              |  160 ++-
 server/ctdb_recoverd.c                             |  941 ++++++++------
 server/ctdb_server.c                               |   34 +-
 server/ctdb_takeover.c                             |  961 +++++++++++--
 server/ctdb_traverse.c                             |   24 +
 server/ctdb_tunables.c                             |   14 +-
 server/ctdb_vacuum.c                               |  661 +++++++++-
 server/ctdbd.c                                     |   46 +-
 server/eventscript.c                               | 1140 +++++++++-------
 tcp/tcp_connect.c                                  |   16 +-
 tests/complex/01_ctdb_nfs_skip_share_check.sh      |  135 ++
 tests/complex/02_ctdb_samba_skip_share_check.sh    |  140 ++
 tests/complex/31_nfs_tickle.sh                     |   17 +-
 tests/complex/32_cifs_tickle.sh                    |   17 +-
 tests/complex/33_gratuitous_arp.sh                 |    2 +-
 tests/complex/41_failover_ping_discrete.sh         |    2 +-
 tests/complex/42_failover_ssh_hostname.sh          |    6 +-
 tests/complex/43_failover_nfs_basic.sh             |    2 +-
 tests/complex/44_failover_nfs_oneway.sh            |    2 +-
 tests/events.d/00.test                             |   11 +-
 tests/scripts/ctdb_test_functions.bash             |  306 ++++-
 tests/simple/00_ctdb_install_eventscript.sh        |   58 -
 tests/simple/03_ctdb_getvar.sh                     |    2 +-
 tests/simple/09_ctdb_ping.sh                       |    4 +-
 tests/simple/11_ctdb_ip.sh                         |   22 +-
 tests/simple/16_ctdb_config_add_ip.sh              |    2 +-
 tests/simple/17_ctdb_config_delete_ip.sh           |    4 +-
 tests/simple/18_ctdb_freeze.sh                     |    2 +-
 tests/simple/19_ctdb_thaw.sh                       |    4 +-
 tests/simple/20_ctdb_getmonmode.sh                 |    2 +-
 tests/simple/21_ctdb_disablemonitor.sh             |  100 --
 tests/simple/22_ctdb_enablemonitor.sh              |  100 --
 tests/simple/23_ctdb_moveip.sh                     |    2 +-
 ..._ctdb_config_check_error_on_unreachable_ctdb.sh |    2 +-
 tests/simple/31_ctdb_disable.sh                    |    2 +-
 tests/simple/32_ctdb_enable.sh                     |    4 +-
 tests/simple/41_ctdb_stop.sh                       |    2 +-
 tests/simple/42_ctdb_continue.sh                   |    4 +-
 tests/simple/43_stop_recmaster_yield.sh            |    2 +-
 tests/simple/52_ctdb_fetch.sh                      |   45 +-
 tests/simple/53_ctdb_transaction.sh                |    6 +-
 tests/simple/54_ctdb_transaction_recovery.sh       |   66 +
 tests/simple/61_ctdb_persistent_safe.sh            |   39 -
 tests/simple/62_ctdb_persistent_unsafe.sh          |   39 -
 tests/simple/99_ctdb_uninstall_eventscript.sh      |   24 -
 tests/src/ctdb_fetch.c                             |    5 +
 tests/src/ctdb_fetch_one.c                         |  140 ++
 tests/src/ctdb_persistent.c                        |   25 +-
 tests/src/ctdb_transaction.c                       |  102 +-
 tools/ctdb.c                                       | 1450 +++++++++++++++++---
 tools/ctdb_diagnostics                             |    4 +-
 tools/ctdb_vacuum.c                                |    4 +-
 tools/onnode                                       |   69 +-
 177 files changed, 17895 insertions(+), 6035 deletions(-)
 create mode 100644 common/ctdb_logging.c
 create mode 100755 config/events.d/01.reclock
 create mode 100755 config/events.d/13.per_ip_routing
 create mode 100755 config/events.d/99.timeout
 create mode 100755 config/gdb_backtrace
 create mode 100755 config/interface_modify.sh
 create mode 100644 lib/tdb/build_macros.m4
 create mode 100644 lib/tdb/common/check.c
 create mode 100644 lib/tdb/docs/tracing.txt
 delete mode 100644 lib/tdb/include/config.h.in
 create mode 100644 lib/tdb/pytdb.c
 create mode 100644 lib/tdb/python.mk
 create mode 100644 lib/tdb/python/tdbdump.py
 create mode 100644 lib/tdb/python/tests/simple.py
 create mode 100755 lib/tdb/release-script.sh
 create mode 100644 lib/tdb/rules.mk
 create mode 100755 lib/tdb/script/abi_checks.sh
 create mode 100755 lib/tdb/script/abi_checks_gcc.sh
 create mode 100755 lib/tdb/script/mksigs.pl
 create mode 100644 lib/tdb/script/mksyms.awk
 create mode 100755 lib/tdb/script/mksyms.sh
 delete mode 100644 lib/tdb/swig/Tdb.py
 delete mode 100644 lib/tdb/swig/tdb.i
 delete mode 100644 lib/tdb/swig/tdb.py
 create mode 100644 lib/tdb/tdb.exports
 create mode 100644 lib/tdb/tdb.mk
 delete mode 100644 lib/tdb/tdb.pc
 create mode 100644 lib/tdb/tdb.signatures
 create mode 100644 lib/tdb/web/index.html
 create mode 100644 lib/util/fault.c
 create mode 100644 lib/util/fault.m4
 create mode 100644 lib/util/signal.c
 create mode 100644 lib/util/signal.m4
 create mode 100644 lib/util/substitute.c
 create mode 100644 lib/util/util.h
 delete mode 100644 packaging/RPM/ctdb.spec
 create mode 100644 packaging/RPM/ctdb.spec.in
 create mode 100644 server/ctdb_banning.c
 create mode 100755 tests/complex/01_ctdb_nfs_skip_share_check.sh
 create mode 100755 tests/complex/02_ctdb_samba_skip_share_check.sh
 delete mode 100755 tests/simple/00_ctdb_install_eventscript.sh
 delete mode 100755 tests/simple/21_ctdb_disablemonitor.sh
 delete mode 100755 tests/simple/22_ctdb_enablemonitor.sh
 create mode 100755 tests/simple/54_ctdb_transaction_recovery.sh
 delete mode 100755 tests/simple/61_ctdb_persistent_safe.sh
 delete mode 100755 tests/simple/62_ctdb_persistent_unsafe.sh
 delete mode 100755 tests/simple/99_ctdb_uninstall_eventscript.sh
 create mode 100644 tests/src/ctdb_fetch_one.c


Changeset truncated at 500 lines:

diff --git a/Makefile.in b/Makefile.in
index a32efa8..ad34f68 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -35,11 +35,13 @@ CFLAGS=-g -I$(srcdir)/include -Iinclude -Ilib -Ilib/util -I$(srcdir) \
 LIB_FLAGS=@LDFLAGS@ -Llib @LIBS@ $(POPT_LIBS) @INFINIBAND_LIBS@ @CTDB_PCAP_LDFLAGS@
 
 UTIL_OBJ = lib/util/idtree.o lib/util/db_wrap.o lib/util/strlist.o lib/util/util.o \
-	lib/util/util_time.o lib/util/util_file.o
+	lib/util/util_time.o lib/util/util_file.o lib/util/fault.o lib/util/substitute.o \
+	lib/util/signal.o
 
 CTDB_COMMON_OBJ =  common/ctdb_io.o common/ctdb_util.o \
 	common/ctdb_ltdb.o common/ctdb_message.o common/cmdline.o  \
-	lib/util/debug.o common/rb_tree.o @CTDB_SYSTEM_OBJ@ common/system_common.o
+	lib/util/debug.o common/rb_tree.o @CTDB_SYSTEM_OBJ@ common/system_common.o \
+	common/ctdb_logging.c
 
 CTDB_TCP_OBJ = tcp/tcp_connect.o tcp/tcp_io.o tcp/tcp_init.o
 
@@ -54,10 +56,11 @@ CTDB_SERVER_OBJ = server/ctdbd.o server/ctdb_daemon.o server/ctdb_lockwait.o \
 	server/ctdb_traverse.o server/eventscript.o server/ctdb_takeover.o \
 	server/ctdb_serverids.o server/ctdb_persistent.o \
 	server/ctdb_keepalive.o server/ctdb_logging.o server/ctdb_uptime.o \
-	server/ctdb_vacuum.o \
+	server/ctdb_vacuum.o server/ctdb_banning.o \
 	$(CTDB_CLIENT_OBJ) $(CTDB_TCP_OBJ) @INFINIBAND_WRAPPER_OBJ@
 
-TEST_BINS=tests/bin/ctdb_bench tests/bin/ctdb_fetch tests/bin/ctdb_store \
+TEST_BINS=tests/bin/ctdb_bench tests/bin/ctdb_fetch tests/bin/ctdb_fetch_one \
+	tests/bin/ctdb_store \
 	tests/bin/ctdb_randrec tests/bin/ctdb_persistent \
 	tests/bin/ctdb_traverse tests/bin/rb_test tests/bin/ctdb_transaction \
 	@INFINIBAND_BINS@
@@ -142,6 +145,10 @@ tests/bin/ctdb_fetch: $(CTDB_CLIENT_OBJ) tests/src/ctdb_fetch.o
 	@echo Linking $@
 	@$(CC) $(CFLAGS) -o $@ tests/src/ctdb_fetch.o $(CTDB_CLIENT_OBJ) $(LIB_FLAGS)
 
+tests/bin/ctdb_fetch_one: $(CTDB_CLIENT_OBJ) tests/src/ctdb_fetch_one.o 
+	@echo Linking $@
+	@$(CC) $(CFLAGS) -o $@ tests/src/ctdb_fetch_one.o $(CTDB_CLIENT_OBJ) $(LIB_FLAGS)
+
 tests/bin/ctdb_store: $(CTDB_CLIENT_OBJ) tests/src/ctdb_store.o 
 	@echo Linking $@
 	@$(CC) $(CFLAGS) -o $@ tests/src/ctdb_store.o $(CTDB_CLIENT_OBJ) $(LIB_FLAGS)
@@ -204,13 +211,16 @@ install: all
 	${INSTALLCMD} -m 644 include/ctdb_private.h $(DESTDIR)$(includedir) # for samba3
 	${INSTALLCMD} -m 644 config/functions $(DESTDIR)$(etcdir)/ctdb
 	${INSTALLCMD} -m 755 config/statd-callout $(DESTDIR)$(etcdir)/ctdb
+	${INSTALLCMD} -m 755 config/interface_modify.sh $(DESTDIR)$(etcdir)/ctdb
 	${INSTALLCMD} -m 644 config/events.d/README $(DESTDIR)$(docdir)/ctdb/README.eventscripts
 	${INSTALLCMD} -m 644 doc/recovery-process.txt $(DESTDIR)$(docdir)/ctdb/recovery-process.txt
 	${INSTALLCMD} -m 755 config/events.d/00.ctdb $(DESTDIR)$(etcdir)/ctdb/events.d
+	${INSTALLCMD} -m 755 config/events.d/01.reclock $(DESTDIR)$(etcdir)/ctdb/events.d
 	${INSTALLCMD} -m 755 config/events.d/10.interface $(DESTDIR)$(etcdir)/ctdb/events.d
 	${INSTALLCMD} -m 755 config/events.d/11.natgw $(DESTDIR)$(etcdir)/ctdb/events.d
 	${INSTALLCMD} -m 755 config/events.d/11.routing $(DESTDIR)$(etcdir)/ctdb/events.d
-	${INSTALLCMD} -m 755 config/events.d/20.multipathd $(DESTDIR)$(etcdir)/ctdb/events.d
+	${INSTALLCMD} -m 755 config/events.d/13.per_ip_routing $(DESTDIR)$(etcdir)/ctdb/events.d
+	${INSTALLCMD} -m 644 config/events.d/20.multipathd $(DESTDIR)$(etcdir)/ctdb/events.d
 	${INSTALLCMD} -m 644 config/events.d/31.clamd $(DESTDIR)$(etcdir)/ctdb/events.d
 	${INSTALLCMD} -m 755 config/events.d/40.vsftpd $(DESTDIR)$(etcdir)/ctdb/events.d
 	${INSTALLCMD} -m 755 config/events.d/41.httpd $(DESTDIR)$(etcdir)/ctdb/events.d
diff --git a/client/ctdb_client.c b/client/ctdb_client.c
index f6dbc73..9a89176 100644
--- a/client/ctdb_client.c
+++ b/client/ctdb_client.c
@@ -30,6 +30,8 @@
 #include "../include/ctdb_private.h"
 #include "lib/util/dlinklist.h"
 
+pid_t ctdbd_pid;
+
 /*
   allocate a packet for use in client<->daemon communication
  */
@@ -764,7 +766,9 @@ static void control_timeout_func(struct event_context *ev, struct timed_event *t
 {
 	struct ctdb_client_control_state *state = talloc_get_type(private_data, struct ctdb_client_control_state);
 
-	DEBUG(DEBUG_ERR,("control timed out. reqid:%d opcode:%d dstnode:%d\n", state->reqid, state->c->opcode, state->c->hdr.destnode));
+	DEBUG(DEBUG_ERR,(__location__ " control timed out. reqid:%u opcode:%u "
+			 "dstnode:%u\n", state->reqid, state->c->opcode,
+			 state->c->hdr.destnode));
 
 	state->state = CTDB_CONTROL_TIMEOUT;
 
@@ -815,7 +819,6 @@ struct ctdb_client_control_state *ctdb_control_send(struct ctdb_context *ctdb,
 	CTDB_NO_MEMORY_NULL(ctdb, c);
 	c->hdr.reqid        = state->reqid;
 	c->hdr.destnode     = destnode;
-	c->hdr.reqid        = state->reqid;
 	c->opcode           = opcode;
 	c->client_id        = 0;
 	c->flags            = flags;
@@ -1495,6 +1498,44 @@ int ctdb_ctrl_getdbname(struct ctdb_context *ctdb, struct timeval timeout, uint3
 }
 
 /*
+  get the health status of a db
+ */
+int ctdb_ctrl_getdbhealth(struct ctdb_context *ctdb,
+			  struct timeval timeout,
+			  uint32_t destnode,
+			  uint32_t dbid, TALLOC_CTX *mem_ctx,
+			  const char **reason)
+{
+	int ret;
+	int32_t res;
+	TDB_DATA data;
+
+	data.dptr = (uint8_t *)&dbid;
+	data.dsize = sizeof(dbid);
+
+	ret = ctdb_control(ctdb, destnode, 0,
+			   CTDB_CONTROL_DB_GET_HEALTH, 0, data,
+			   mem_ctx, &data, &res, &timeout, NULL);
+	if (ret != 0 || res != 0) {
+		return -1;
+	}
+
+	if (data.dsize == 0) {
+		(*reason) = NULL;
+		return 0;
+	}
+
+	(*reason) = talloc_strndup(mem_ctx, (const char *)data.dptr, data.dsize);
+	if ((*reason) == NULL) {
+		return -1;
+	}
+
+	talloc_free(data.dptr);
+
+	return 0;
+}
+
+/*
   create a database
  */
 int ctdb_ctrl_createdb(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, 
@@ -1680,9 +1721,10 @@ struct ctdb_db_context *ctdb_attach(struct ctdb_context *ctdb, const char *name,
 	}
 
 	tdb_flags = persistent?TDB_DEFAULT:TDB_NOSYNC;
-	if (!ctdb->do_setsched) {
+	if (ctdb->valgrinding) {
 		tdb_flags |= TDB_NOMMAP;
 	}
+	tdb_flags |= TDB_DISALLOW_NESTING;
 
 	ctdb_db->ltdb = tdb_wrap_open(ctdb, ctdb_db->db_path, 0, tdb_flags, O_RDWR, 0);
 	if (ctdb_db->ltdb == NULL) {
@@ -1845,15 +1887,12 @@ int ctdb_traverse(struct ctdb_db_context *ctdb_db, ctdb_traverse_func fn, void *
 /*
   called on each key during a catdb
  */
-static int dumpdb_fn(struct ctdb_context *ctdb, TDB_DATA key, TDB_DATA data, void *p)
+int ctdb_dumpdb_record(struct ctdb_context *ctdb, TDB_DATA key, TDB_DATA data, void *p)
 {
 	int i;
 	FILE *f = (FILE *)p;
 	struct ctdb_ltdb_header *h = (struct ctdb_ltdb_header *)data.dptr;
 
-	fprintf(f, "dmaster: %u\n", h->dmaster);
-	fprintf(f, "rsn: %llu\n", (unsigned long long)h->rsn);
-
 	fprintf(f, "key(%u) = \"", (unsigned)key.dsize);
 	for (i=0;i<key.dsize;i++) {
 		if (ISASCII(key.dptr[i])) {
@@ -1864,6 +1903,9 @@ static int dumpdb_fn(struct ctdb_context *ctdb, TDB_DATA key, TDB_DATA data, voi
 	}
 	fprintf(f, "\"\n");
 
+	fprintf(f, "dmaster: %u\n", h->dmaster);
+	fprintf(f, "rsn: %llu\n", (unsigned long long)h->rsn);
+
 	fprintf(f, "data(%u) = \"", (unsigned)data.dsize);
 	for (i=sizeof(*h);i<data.dsize;i++) {
 		if (ISASCII(data.dptr[i])) {
@@ -1874,6 +1916,8 @@ static int dumpdb_fn(struct ctdb_context *ctdb, TDB_DATA key, TDB_DATA data, voi
 	}
 	fprintf(f, "\"\n");
 
+	fprintf(f, "\n");
+
 	return 0;
 }
 
@@ -1882,7 +1926,7 @@ static int dumpdb_fn(struct ctdb_context *ctdb, TDB_DATA key, TDB_DATA data, voi
  */
 int ctdb_dump_db(struct ctdb_db_context *ctdb_db, FILE *f)
 {
-	return ctdb_traverse(ctdb_db, dumpdb_fn, f);
+	return ctdb_traverse(ctdb_db, ctdb_dumpdb_record, f);
 }
 
 /*
@@ -1911,9 +1955,9 @@ int ctdb_ctrl_getpid(struct ctdb_context *ctdb, struct timeval timeout, uint32_t
   async freeze send control
  */
 struct ctdb_client_control_state *
-ctdb_ctrl_freeze_send(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, struct timeval timeout, uint32_t destnode)
+ctdb_ctrl_freeze_send(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, struct timeval timeout, uint32_t destnode, uint32_t priority)
 {
-	return ctdb_control_send(ctdb, destnode, 0, 
+	return ctdb_control_send(ctdb, destnode, priority, 
 			   CTDB_CONTROL_FREEZE, 0, tdb_null, 
 			   mem_ctx, &timeout, NULL);
 }
@@ -1936,30 +1980,43 @@ int ctdb_ctrl_freeze_recv(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, struct
 }
 
 /*
-  freeze a node
+  freeze databases of a certain priority
  */
-int ctdb_ctrl_freeze(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode)
+int ctdb_ctrl_freeze_priority(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, uint32_t priority)
 {
 	TALLOC_CTX *tmp_ctx = talloc_new(ctdb);
 	struct ctdb_client_control_state *state;
 	int ret;
 
-	state = ctdb_ctrl_freeze_send(ctdb, tmp_ctx, timeout, destnode);
+	state = ctdb_ctrl_freeze_send(ctdb, tmp_ctx, timeout, destnode, priority);
 	ret = ctdb_ctrl_freeze_recv(ctdb, tmp_ctx, state);
 	talloc_free(tmp_ctx);
 
 	return ret;
 }
 
+/* Freeze all databases */
+int ctdb_ctrl_freeze(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode)
+{
+	int i;
+
+	for (i=1; i<=NUM_DB_PRIORITIES; i++) {
+		if (ctdb_ctrl_freeze_priority(ctdb, timeout, destnode, i) != 0) {
+			return -1;
+		}
+	}
+	return 0;
+}
+
 /*
-  thaw a node
+  thaw databases of a certain priority
  */
-int ctdb_ctrl_thaw(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode)
+int ctdb_ctrl_thaw_priority(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, uint32_t priority)
 {
 	int ret;
 	int32_t res;
 
-	ret = ctdb_control(ctdb, destnode, 0, 
+	ret = ctdb_control(ctdb, destnode, priority, 
 			   CTDB_CONTROL_THAW, 0, tdb_null, 
 			   NULL, NULL, &res, &timeout, NULL);
 	if (ret != 0 || res != 0) {
@@ -1970,6 +2027,12 @@ int ctdb_ctrl_thaw(struct ctdb_context *ctdb, struct timeval timeout, uint32_t d
 	return 0;
 }
 
+/* thaw all databases */
+int ctdb_ctrl_thaw(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode)
+{
+	return ctdb_ctrl_thaw_priority(ctdb, timeout, destnode, 0);
+}
+
 /*
   get pnn of a node, or -1
  */
@@ -2255,16 +2318,18 @@ int ctdb_ctrl_list_tunables(struct ctdb_context *ctdb,
 }
 
 
-int ctdb_ctrl_get_public_ips(struct ctdb_context *ctdb, 
-			struct timeval timeout, uint32_t destnode, 
-			TALLOC_CTX *mem_ctx, struct ctdb_all_public_ips **ips)
+int ctdb_ctrl_get_public_ips_flags(struct ctdb_context *ctdb,
+				   struct timeval timeout, uint32_t destnode,
+				   TALLOC_CTX *mem_ctx,
+				   uint32_t flags,
+				   struct ctdb_all_public_ips **ips)
 {
 	int ret;
 	TDB_DATA outdata;
 	int32_t res;
 
 	ret = ctdb_control(ctdb, destnode, 0, 
-			   CTDB_CONTROL_GET_PUBLIC_IPS, 0, tdb_null, 
+			   CTDB_CONTROL_GET_PUBLIC_IPS, flags, tdb_null,
 			   mem_ctx, &outdata, &res, &timeout, NULL);
 	if (ret == 0 && res == -1) {
 		DEBUG(DEBUG_ERR,(__location__ " ctdb_control to get public ips failed, falling back to ipv4-only version\n"));
@@ -2281,6 +2346,16 @@ int ctdb_ctrl_get_public_ips(struct ctdb_context *ctdb,
 	return 0;
 }
 
+int ctdb_ctrl_get_public_ips(struct ctdb_context *ctdb,
+			     struct timeval timeout, uint32_t destnode,
+			     TALLOC_CTX *mem_ctx,
+			     struct ctdb_all_public_ips **ips)
+{
+	return ctdb_ctrl_get_public_ips_flags(ctdb, timeout,
+					      destnode, mem_ctx,
+					      0, ips);
+}
+
 int ctdb_ctrl_get_public_ipsv4(struct ctdb_context *ctdb, 
 			struct timeval timeout, uint32_t destnode, 
 			TALLOC_CTX *mem_ctx, struct ctdb_all_public_ips **ips)
@@ -2314,6 +2389,162 @@ int ctdb_ctrl_get_public_ipsv4(struct ctdb_context *ctdb,
 	return 0;
 }
 
+int ctdb_ctrl_get_public_ip_info(struct ctdb_context *ctdb,
+				 struct timeval timeout, uint32_t destnode,
+				 TALLOC_CTX *mem_ctx,
+				 const ctdb_sock_addr *addr,
+				 struct ctdb_control_public_ip_info **_info)
+{
+	int ret;
+	TDB_DATA indata;
+	TDB_DATA outdata;
+	int32_t res;
+	struct ctdb_control_public_ip_info *info;
+	uint32_t len;
+	uint32_t i;
+
+	indata.dptr = discard_const_p(uint8_t, addr);
+	indata.dsize = sizeof(*addr);
+
+	ret = ctdb_control(ctdb, destnode, 0,
+			   CTDB_CONTROL_GET_PUBLIC_IP_INFO, 0, indata,
+			   mem_ctx, &outdata, &res, &timeout, NULL);
+	if (ret != 0 || res != 0) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get public ip info "
+				"failed ret:%d res:%d\n",
+				ret, res));
+		return -1;
+	}
+
+	len = offsetof(struct ctdb_control_public_ip_info, ifaces);
+	if (len > outdata.dsize) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get public ip info "
+				"returned invalid data with size %u > %u\n",
+				(unsigned int)outdata.dsize,
+				(unsigned int)len));
+		dump_data(DEBUG_DEBUG, outdata.dptr, outdata.dsize);
+		return -1;
+	}
+
+	info = (struct ctdb_control_public_ip_info *)outdata.dptr;
+	len += info->num*sizeof(struct ctdb_control_iface_info);
+
+	if (len > outdata.dsize) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get public ip info "
+				"returned invalid data with size %u > %u\n",
+				(unsigned int)outdata.dsize,
+				(unsigned int)len));
+		dump_data(DEBUG_DEBUG, outdata.dptr, outdata.dsize);
+		return -1;
+	}
+
+	/* make sure we null terminate the returned strings */
+	for (i=0; i < info->num; i++) {
+		info->ifaces[i].name[CTDB_IFACE_SIZE] = '\0';
+	}
+
+	*_info = (struct ctdb_control_public_ip_info *)talloc_memdup(mem_ctx,
+								outdata.dptr,
+								outdata.dsize);
+	talloc_free(outdata.dptr);
+	if (*_info == NULL) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get public ip info "
+				"talloc_memdup size %u failed\n",
+				(unsigned int)outdata.dsize));
+		return -1;
+	}
+
+	return 0;
+}
+
+int ctdb_ctrl_get_ifaces(struct ctdb_context *ctdb,
+			 struct timeval timeout, uint32_t destnode,
+			 TALLOC_CTX *mem_ctx,
+			 struct ctdb_control_get_ifaces **_ifaces)
+{
+	int ret;
+	TDB_DATA outdata;
+	int32_t res;
+	struct ctdb_control_get_ifaces *ifaces;
+	uint32_t len;
+	uint32_t i;
+
+	ret = ctdb_control(ctdb, destnode, 0,
+			   CTDB_CONTROL_GET_IFACES, 0, tdb_null,
+			   mem_ctx, &outdata, &res, &timeout, NULL);
+	if (ret != 0 || res != 0) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get ifaces "
+				"failed ret:%d res:%d\n",
+				ret, res));
+		return -1;
+	}
+
+	len = offsetof(struct ctdb_control_get_ifaces, ifaces);
+	if (len > outdata.dsize) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get ifaces "
+				"returned invalid data with size %u > %u\n",
+				(unsigned int)outdata.dsize,
+				(unsigned int)len));
+		dump_data(DEBUG_DEBUG, outdata.dptr, outdata.dsize);
+		return -1;
+	}
+
+	ifaces = (struct ctdb_control_get_ifaces *)outdata.dptr;
+	len += ifaces->num*sizeof(struct ctdb_control_iface_info);
+
+	if (len > outdata.dsize) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get ifaces "
+				"returned invalid data with size %u > %u\n",
+				(unsigned int)outdata.dsize,
+				(unsigned int)len));
+		dump_data(DEBUG_DEBUG, outdata.dptr, outdata.dsize);
+		return -1;
+	}
+
+	/* make sure we null terminate the returned strings */
+	for (i=0; i < ifaces->num; i++) {
+		ifaces->ifaces[i].name[CTDB_IFACE_SIZE] = '\0';
+	}
+
+	*_ifaces = (struct ctdb_control_get_ifaces *)talloc_memdup(mem_ctx,
+								  outdata.dptr,
+								  outdata.dsize);
+	talloc_free(outdata.dptr);
+	if (*_ifaces == NULL) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for get ifaces "
+				"talloc_memdup size %u failed\n",
+				(unsigned int)outdata.dsize));
+		return -1;
+	}
+
+	return 0;
+}
+
+int ctdb_ctrl_set_iface_link(struct ctdb_context *ctdb,
+			     struct timeval timeout, uint32_t destnode,
+			     TALLOC_CTX *mem_ctx,
+			     const struct ctdb_control_iface_info *info)
+{
+	int ret;
+	TDB_DATA indata;
+	int32_t res;
+
+	indata.dptr = discard_const_p(uint8_t, info);
+	indata.dsize = sizeof(*info);
+
+	ret = ctdb_control(ctdb, destnode, 0,
+			   CTDB_CONTROL_SET_IFACE_LINK_STATE, 0, indata,
+			   mem_ctx, NULL, &res, &timeout, NULL);
+	if (ret != 0 || res != 0) {
+		DEBUG(DEBUG_ERR,(__location__ " ctdb_control for set iface link "
+				"failed ret:%d res:%d\n",
+				ret, res));
+		return -1;
+	}
+
+	return 0;
+}
+
 /*
   set/clear the permanent disabled bit on a remote node
  */
@@ -2364,11 +2595,11 @@ int ctdb_ctrl_modflags(struct ctdb_context *ctdb, struct timeval timeout, uint32
 	nodes = list_of_connected_nodes(ctdb, nodemap, tmp_ctx, true);
 
 	if (ctdb_client_async_control(ctdb, CTDB_CONTROL_MODIFY_FLAGS,
-					nodes,
+					nodes, 0,
 					timeout, false, data,
 					NULL, NULL,
 					NULL) != 0) {
-		DEBUG(DEBUG_ERR, (__location__ " ctdb_control to disable node failed\n"));
+		DEBUG(DEBUG_ERR, (__location__ " Unable to update nodeflags on remote nodes\n"));
 
 		talloc_free(tmp_ctx);
 		return -1;
@@ -2802,7 +3033,7 @@ static void async_callback(struct ctdb_client_control_state *state)
 	*/
 	if (state->state != CTDB_CONTROL_DONE) {
 		if ( !data->dont_log_errors) {
-			DEBUG(DEBUG_ERR,("Async operation failed with state %d\n opcode:%u", state->state, data->opcode));
+			DEBUG(DEBUG_ERR,("Async operation failed with state %d, opcode:%u\n", state->state, data->opcode));
 		}
 		data->fail_count++;
 		if (data->fail_callback) {
@@ -2869,6 +3100,7 @@ int ctdb_client_async_wait(struct ctdb_context *ctdb, struct client_async_data *
 int ctdb_client_async_control(struct ctdb_context *ctdb,


-- 
CTDB repository


More information about the samba-cvs mailing list