[SCM] CTDB repository - branch 1.13 updated - ctdb-1.42-105-g6ebd66a

Ronnie Sahlberg sahlberg at samba.org
Wed May 16 19:03:13 MDT 2012


The branch, 1.13 has been updated
       via  6ebd66a10b3fce30cf686f67349c4372c1042dc9 (commit)
       via  79dfd2ab81e0219fab563af3da2f7f3cc7179a9f (commit)
       via  2bcd58b30d7cf6dd48ad7f019810c6965a44c85a (commit)
       via  863ad337fa3c4effe1fd370d3ba414027c600bd6 (commit)
       via  f4b7d14f2e3c7345e7a09abb27c32923fb78cbc4 (commit)
       via  c7d6e4557d00de674737e2c8d6cbebaa2461c303 (commit)
       via  d661f09c6c76543bd091d51bc0e6fe97ed0f55d1 (commit)
       via  ed2db1f4e8d2b222d7f912a4a007ce48a23e83b0 (commit)
       via  d2514051761ba23deee0e118c25afab2ab8d854e (commit)
       via  27bcc328dba54c7fefc070278323285340df69e2 (commit)
       via  a00e80c701a0f9695f41c24e0360c25c0873d49d (commit)
       via  6b8507d4d3062e709409b3790117d87311b3460d (commit)
       via  db8cf8f5e644a0b21a6040287887fee40f38d4db (commit)
       via  9f20fbf91706db94f65f62dbd6a4e087890c1da9 (commit)
       via  61c80f58a8cfbaca7e669ef8cd95b4f6b5dc66c7 (commit)
       via  e7ba0a30e7b7fe78e83e493128b349708cf0038a (commit)
       via  14a630cbc638d2f3bf699de5d94131e5f7d1a3ea (commit)
       via  1957d53b78f101cd0cd37d9705a225deef5174a2 (commit)
       via  f0a14169883661a702a352aa0311a2b433071a83 (commit)
       via  5c23244591b8005f91d8e25e719cd332c711db14 (commit)
       via  e3dc5bd3f1ef1f0ed08f57a5b5bafcac936e9ed0 (commit)
       via  f73a4b1495830bcdd094a93732a89dd53b3c2f78 (commit)
       via  90e8c4dc7d89c460ad2da5a9af1cef006db3b1c0 (commit)
       via  334ea830f1bf33419f4a1e78f23afd41a852d0f4 (commit)
       via  2a3d22431948f849c93762a6ab49344acb687feb (commit)
       via  6a92fc2b8da2bba98dca29b781ab459ba4e879a5 (commit)
       via  c642b452e7b0272e32c02509ac579b790d9a03e7 (commit)
       via  05603e914f8c12618d7e06943c0f7df207f645b0 (commit)
       via  e9fad1ff82e6fb9e6bf615986c41c746fd415058 (commit)
       via  a0afb4195caab39891a304b8b4eadd94cab7c4a7 (commit)
       via  66d0b913301c3b1037278bcaa0452ecbe07248df (commit)
       via  1c37abac5fd18c139aa55989d0fb6b475f4c22f1 (commit)
       via  047d97dc84a5943556efb31bb2856fd04835fffa (commit)
       via  0c674efd19368d41d9cc28909d2b16c1af54c86c (commit)
       via  df732ca8e27f0f3417b4d5d259157bd0e0632124 (commit)
       via  12c9986059cacda819e669fa77d613b408c62599 (commit)
       via  eddfc02335202d853e29a89f08225ab44cac8a25 (commit)
       via  3219f221a858e499f084b8beb44610537312602b (commit)
       via  b430a5f61cfdc28e967890602ce6dac0e922c07d (commit)
       via  734cbd7def23236d418ebc6d813a748a84900101 (commit)
       via  78f6f209eb15102f4e8baa9106583df0ef4bb693 (commit)
       via  e6bfd3bdb3a35b2e7e7c41a6f37976772a54e3ce (commit)
       via  301491802eec0e49e108f5aae7d7be379703d72c (commit)
       via  8e4ec9a40bb7d392d7474b067a74fa121c069007 (commit)
       via  4aa879466dd46cb4e8710edbbaac1276521e475b (commit)
       via  709cd5dfeb630096a1cd2062da666fee9ddca715 (commit)
       via  fbabc05569d91bf033f474d89f51b49490943332 (commit)
       via  246809af64c03d26288abff5907ed46614e72b15 (commit)
       via  bef03b32f8ec114a64c55b25951aeeb939d87b33 (commit)
       via  95947123eee687ed83eebc567397a5bc9d55a945 (commit)
       via  6eb7fa572e7fc212332ddd68793e3f35161baf7c (commit)
       via  704a3e3b83aff63e8f7b0650c141776ed2c1f047 (commit)
       via  79e979d67e3a2a5a13ef8fd2ef8f56331ec51558 (commit)
       via  a0a7759d47ef5de4a8214273e39c50fb1f6e2e0c (commit)
       via  eef162ceaac6853bf1ff622691901289280bc25f (commit)
       via  d714cf7924674a7a0eb6d585eb74a6a4df26fc12 (commit)
       via  dc71294a33e88baa4e85fa1fa66cab58a83c2607 (commit)
       via  f45295a3005474957852d0e7a5c3807e30ab519d (commit)
       via  6136ab02db261b26a2a58b526c913e37e8146841 (commit)
       via  b5308142d03332d6d4e0c3b77283c772462fbb23 (commit)
       via  66a7fece867966528689d2784a284e32d687a0f5 (commit)
       via  72ecae61c43b318ec94b527a12cbb0a382e8c3db (commit)
       via  9542e770a9780740b49122f1f52f08b32eca4b35 (commit)
       via  bfa1d6638d3e116640eb4e3bb71b21ba6ef8cae5 (commit)
       via  79adb50b3ce3873c3baf9e6715c1d1c3f181ce43 (commit)
       via  8052ee0a6bda3fa88501d77b2d53315be2b75ec1 (commit)
       via  17ff3f240b0d72c72ed28d70fb9aeb3b20c80670 (commit)
       via  fdd5b9ac0a79f6bc7c8a05da2e2f11e002392bcd (commit)
       via  abe7ebe6c531f912efe4ebc1daade4d2af67574c (commit)
       via  7ff485687891732074c9fc9998502ca197663d02 (commit)
       via  8544162b7a4efa23c92bc0d2774df95bb7f0f463 (commit)
       via  5d6e71cf6e1e0665ec96e7e4e2cfd31f40ebabae (commit)
       via  fd08fc6c88cb80190ce87325867de0391cf1af51 (commit)
       via  eb13507713ba6732271b7c3024bfddbda6da5ffc (commit)
       via  dbec696930327ff07b39282e3084eef4ded064c0 (commit)
       via  f94897ef9504c144937409688fa7a646e0b0ceae (commit)
       via  4c87888b2a559c0d1f285919a42de450a537a02f (commit)
       via  89571585d87b391ff79647cd1f0f6ac193079e72 (commit)
       via  ca9e75eaea9c9b02bb44ca338e28fdae0c8d582c (commit)
       via  a65ba7211ec7f102b32060b173606a61fb5c20a9 (commit)
       via  21df43c74bfcff420fdaf9df5440c25529c543d2 (commit)
       via  89719384a74161ffa0c03602ecdd9e758d521d75 (commit)
       via  43badc5418b9f533398cd579607d9f1fc0f8f417 (commit)
       via  00713eb46cce638339845799bba2da041b3d02fb (commit)
       via  afdaa5f032938d56ff315d9553cb285ebc413c4c (commit)
       via  a7ad94fe9f2e773567dbb6500469dd2dd2f2f04b (commit)
       via  107b465172205cb304549fcffaf36b9416696c15 (commit)
       via  fa54a1095a7504863ed30bff8e0828a8be6dde55 (commit)
       via  89e322562f25dcb8d84357a19e71b2272b2f29a8 (commit)
       via  2aa9bbf3a52dde0707eb06acd91e57c8da5c717f (commit)
       via  67b909a0718d6cfce82ffce0830da3a6ff1f6c4b (commit)
       via  7f8096f56d8274151705ac822b582d972078f8fe (commit)
       via  d5b2ad651495f32091bd33d30871638de0de633a (commit)
       via  b86b947797c51e3576c6b34f547434c3f0aa36f3 (commit)
       via  b81c2c8a2360001fe73f9fd9aa1ba32665fdb0bb (commit)
       via  a108fc14d90b6d552736d19b0ea104f2508dc331 (commit)
       via  15f63ebab9686734f41a6adf38d4a7faa919ac66 (commit)
       via  706e6e3ef6765fbba29e531e590c48fe742b9914 (commit)
       via  98c633ab4824e0e4d28ab2eb2532e16eb859bd94 (commit)
       via  420a10be89c62b4d605f3b972d78fd69dd9f5bb1 (commit)
       via  bdd8b8ab20169936fa723fa77cead1b76b6cd0b5 (commit)
       via  902d8a4709e7a269d2a75522a998f9a60ae13d78 (commit)
       via  261258c1a4268230b2559bc5d8664b1197b22450 (commit)
      from  176f6aae0f5ec276ecc35f4bbe633d37af6bc035 (commit)

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


- Log -----------------------------------------------------------------
commit 6ebd66a10b3fce30cf686f67349c4372c1042dc9
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Thu May 17 10:17:51 2012 +1000

    Debug: When scripts hang, we may need to collect additional data in order to debug why the script hung.
    
    Break this debug and datacollection out into an external script to make it easier to modify what data we need to collect.
    For now we only collect a pstree so we can see what part of the script we hung in.
    
    S1037271

commit 79dfd2ab81e0219fab563af3da2f7f3cc7179a9f
Merge: 27bcc328dba54c7fefc070278323285340df69e2 2bcd58b30d7cf6dd48ad7f019810c6965a44c85a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed May 16 12:24:27 2012 +1000

    Merge remote branch 'martins/master' into 1.13

commit 27bcc328dba54c7fefc070278323285340df69e2
Merge: 176f6aae0f5ec276ecc35f4bbe633d37af6bc035 a00e80c701a0f9695f41c24e0360c25c0873d49d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri May 11 10:38:32 2012 +1000

    Merge remote branch 'martins/master' into 1.13

-----------------------------------------------------------------------

Summary of changes:
 Makefile.in                                        |   10 +-
 config/ctdb.init                                   |    1 +
 config/ctdb.sysconfig                              |    3 +
 config/debug-hung-script.sh                        |    7 +
 config/events.d/13.per_ip_routing                  |    4 +-
 config/functions                                   |   12 +-
 include/ctdb_private.h                             |    3 +
 packaging/RPM/ctdb.spec.in                         |   65 +-
 server/ctdb_recoverd.c                             |    4 +-
 server/ctdb_takeover.c                             |   47 +-
 server/ctdb_tunables.c                             |    2 +-
 server/ctdbd.c                                     |   11 +
 server/eventscript.c                               |   66 +-
 tests/INSTALL                                      |   89 ++
 tests/README                                       |  142 ++--
 tests/complex/01_ctdb_nfs_skip_share_check.sh      |    4 +-
 tests/complex/02_ctdb_samba_skip_share_check.sh    |    2 +-
 tests/complex/11_ctdb_delip_removes_ip.sh          |    2 +-
 tests/complex/31_nfs_tickle.sh                     |    2 +-
 tests/complex/32_cifs_tickle.sh                    |    2 +-
 tests/complex/33_gratuitous_arp.sh                 |    2 +-
 tests/complex/41_failover_ping_discrete.sh         |    2 +-
 tests/complex/42_failover_ssh_hostname.sh          |    2 +-
 tests/complex/43_failover_nfs_basic.sh             |    2 +-
 tests/complex/44_failover_nfs_oneway.sh            |    2 +-
 tests/complex/README                               |    2 +
 tests/complex/scripts/local.bash                   |  139 +++
 tests/events.d/00.test                             |    7 +-
 tests/eventscripts/10.interface.init.001.sh        |   13 +
 tests/eventscripts/10.interface.init.002.sh        |   11 +
 tests/eventscripts/10.interface.monitor.001.sh     |   13 +
 tests/eventscripts/10.interface.monitor.002.sh     |   11 +
 tests/eventscripts/10.interface.monitor.003.sh     |   15 +
 tests/eventscripts/10.interface.monitor.004.sh     |   15 +
 tests/eventscripts/10.interface.monitor.005.sh     |   15 +
 tests/eventscripts/10.interface.monitor.006.sh     |   15 +
 tests/eventscripts/10.interface.monitor.007.sh     |   13 +
 tests/eventscripts/10.interface.monitor.008.sh     |   15 +
 tests/eventscripts/10.interface.monitor.009.sh     |   17 +
 tests/eventscripts/10.interface.monitor.010.sh     |   19 +
 tests/eventscripts/10.interface.monitor.011.sh     |   19 +
 tests/eventscripts/10.interface.monitor.012.sh     |   23 +
 tests/eventscripts/10.interface.monitor.013.sh     |   15 +
 tests/eventscripts/10.interface.monitor.014.sh     |   16 +
 tests/eventscripts/10.interface.monitor.015.sh     |   22 +
 tests/eventscripts/10.interface.multi.001.sh       |   14 +
 tests/eventscripts/10.interface.releaseip.001.sh   |   13 +
 tests/eventscripts/10.interface.releaseip.002.sh   |   17 +
 tests/eventscripts/10.interface.startup.001.sh     |   13 +
 tests/eventscripts/10.interface.startup.002.sh     |   11 +
 tests/eventscripts/10.interface.takeip.001.sh      |   13 +
 tests/eventscripts/10.interface.takeip.002.sh      |   13 +
 tests/eventscripts/10.interface.takeip.003.sh      |   25 +
 tests/eventscripts/13.per_ip_routing.001.sh        |   16 +
 tests/eventscripts/13.per_ip_routing.002.sh        |   14 +
 tests/eventscripts/13.per_ip_routing.003.sh        |   24 +
 tests/eventscripts/13.per_ip_routing.004.sh        |   25 +
 tests/eventscripts/13.per_ip_routing.005.sh        |   38 +
 tests/eventscripts/13.per_ip_routing.006.sh        |   38 +
 tests/eventscripts/13.per_ip_routing.007.sh        |   40 +
 tests/eventscripts/13.per_ip_routing.008.sh        |   42 +
 tests/eventscripts/13.per_ip_routing.009.sh        |   44 +
 tests/eventscripts/13.per_ip_routing.010.sh        |   52 +
 tests/eventscripts/13.per_ip_routing.011.sh        |   41 +
 tests/eventscripts/13.per_ip_routing.012.sh        |   48 +
 tests/eventscripts/40.vsftpd.monitor.001.sh        |   11 +
 tests/eventscripts/41.httpd.monitor.001.sh         |   11 +
 tests/eventscripts/50.samba.monitor.001.sh         |   11 +
 tests/eventscripts/50.samba.monitor.050.sh         |   18 +
 tests/eventscripts/50.samba.monitor.051.sh         |   20 +
 tests/eventscripts/50.samba.monitor.101.sh         |   11 +
 tests/eventscripts/50.samba.monitor.102.sh         |   12 +
 tests/eventscripts/50.samba.monitor.103.sh         |   12 +
 tests/eventscripts/50.samba.monitor.104.sh         |   12 +
 tests/eventscripts/50.samba.monitor.105.sh         |   12 +
 tests/eventscripts/50.samba.monitor.106.sh         |   14 +
 tests/eventscripts/50.samba.monitor.107.sh         |   18 +
 tests/eventscripts/50.samba.monitor.108.sh         |   15 +
 tests/eventscripts/50.samba.monitor.109.sh         |   30 +
 tests/eventscripts/50.samba.monitor.110.sh         |   33 +
 tests/eventscripts/50.samba.monitor.111.sh         |   20 +
 tests/eventscripts/60.nfs.monitor.001.sh           |   11 +
 tests/eventscripts/60.nfs.monitor.100.sh           |   19 +
 tests/eventscripts/60.nfs.monitor.101.sh           |   11 +
 tests/eventscripts/60.nfs.monitor.111.sh           |   12 +
 tests/eventscripts/60.nfs.monitor.112.sh           |   15 +
 tests/eventscripts/60.nfs.monitor.121.sh           |   17 +
 tests/eventscripts/60.nfs.monitor.122.sh           |   19 +
 tests/eventscripts/60.nfs.monitor.131.sh           |   10 +
 tests/eventscripts/60.nfs.monitor.132.sh           |   15 +
 tests/eventscripts/60.nfs.monitor.141.sh           |   15 +
 tests/eventscripts/60.nfs.monitor.142.sh           |   14 +
 tests/eventscripts/60.nfs.monitor.151.sh           |   12 +
 tests/eventscripts/60.nfs.monitor.152.sh           |   18 +
 tests/eventscripts/60.nfs.monitor.153.sh           |   15 +
 tests/eventscripts/60.nfs.monitor.161.sh           |   13 +
 tests/eventscripts/60.nfs.monitor.162.sh           |   14 +
 tests/eventscripts/60.nfs.multi.001.sh             |   21 +
 tests/eventscripts/60.nfs.multi.002.sh             |   25 +
 tests/eventscripts/60.nfs.multi.003.sh             |   27 +
 tests/eventscripts/60.nfs.multi.004.sh             |   27 +
 tests/eventscripts/60.nfs.multi.005.sh             |   27 +
 tests/eventscripts/60.nfs.multi.006.sh             |   21 +
 tests/eventscripts/README                          |   36 +-
 tests/eventscripts/common.sh                       |  938 -----------------
 tests/eventscripts/etc-ctdb/interface_modify.sh    |    1 -
 tests/eventscripts/etc/sysconfig/ctdb              |    3 +-
 tests/eventscripts/multievent/10.interface.001.sh  |   14 -
 .../multievent/13.per_ip_routing.001.sh            |   16 -
 .../multievent/13.per_ip_routing.002.sh            |   14 -
 .../multievent/13.per_ip_routing.003.sh            |   24 -
 .../multievent/13.per_ip_routing.004.sh            |   25 -
 .../multievent/13.per_ip_routing.005.sh            |   38 -
 .../multievent/13.per_ip_routing.006.sh            |   38 -
 .../multievent/13.per_ip_routing.007.sh            |   40 -
 .../multievent/13.per_ip_routing.008.sh            |   42 -
 .../multievent/13.per_ip_routing.009.sh            |   44 -
 .../multievent/13.per_ip_routing.010.sh            |   52 -
 .../multievent/13.per_ip_routing.011.sh            |   41 -
 .../multievent/13.per_ip_routing.012.sh            |   48 -
 tests/eventscripts/multievent/60.nfs.001.sh        |   21 -
 tests/eventscripts/multievent/60.nfs.002.sh        |   25 -
 tests/eventscripts/multievent/60.nfs.003.sh        |   27 -
 tests/eventscripts/multievent/60.nfs.004.sh        |   27 -
 tests/eventscripts/multievent/60.nfs.005.sh        |   27 -
 tests/eventscripts/multievent/60.nfs.006.sh        |   21 -
 tests/eventscripts/run_tests.sh                    |   53 -
 tests/eventscripts/scripts/local.sh                |  827 +++++++++++++++
 tests/eventscripts/simple/10.interface.init.001.sh |   13 -
 tests/eventscripts/simple/10.interface.init.002.sh |   11 -
 .../simple/10.interface.monitor.001.sh             |   13 -
 .../simple/10.interface.monitor.002.sh             |   11 -
 .../simple/10.interface.monitor.003.sh             |   15 -
 .../simple/10.interface.monitor.004.sh             |   15 -
 .../simple/10.interface.monitor.005.sh             |   15 -
 .../simple/10.interface.monitor.006.sh             |   15 -
 .../simple/10.interface.monitor.007.sh             |   13 -
 .../simple/10.interface.monitor.008.sh             |   15 -
 .../simple/10.interface.monitor.009.sh             |   17 -
 .../simple/10.interface.monitor.010.sh             |   19 -
 .../simple/10.interface.monitor.011.sh             |   19 -
 .../simple/10.interface.monitor.012.sh             |   23 -
 .../simple/10.interface.monitor.013.sh             |   15 -
 .../simple/10.interface.monitor.014.sh             |   16 -
 .../simple/10.interface.monitor.015.sh             |   22 -
 .../simple/10.interface.releaseip.001.sh           |   13 -
 .../simple/10.interface.releaseip.002.sh           |   17 -
 .../simple/10.interface.startup.001.sh             |   13 -
 .../simple/10.interface.startup.002.sh             |   11 -
 .../eventscripts/simple/10.interface.takeip.001.sh |   13 -
 .../eventscripts/simple/10.interface.takeip.002.sh |   13 -
 .../eventscripts/simple/10.interface.takeip.003.sh |   25 -
 tests/eventscripts/simple/40.vsftpd.monitor.001.sh |   11 -
 tests/eventscripts/simple/41.httpd.monitor.001.sh  |   11 -
 tests/eventscripts/simple/50.samba.monitor.001.sh  |   11 -
 tests/eventscripts/simple/50.samba.monitor.050.sh  |   17 -
 tests/eventscripts/simple/50.samba.monitor.051.sh  |   19 -
 tests/eventscripts/simple/50.samba.monitor.101.sh  |   11 -
 tests/eventscripts/simple/50.samba.monitor.102.sh  |   12 -
 tests/eventscripts/simple/50.samba.monitor.103.sh  |   12 -
 tests/eventscripts/simple/50.samba.monitor.104.sh  |   12 -
 tests/eventscripts/simple/50.samba.monitor.105.sh  |   12 -
 tests/eventscripts/simple/50.samba.monitor.106.sh  |   14 -
 tests/eventscripts/simple/50.samba.monitor.107.sh  |   18 -
 tests/eventscripts/simple/50.samba.monitor.108.sh  |   15 -
 tests/eventscripts/simple/50.samba.monitor.109.sh  |   30 -
 tests/eventscripts/simple/50.samba.monitor.110.sh  |   33 -
 tests/eventscripts/simple/50.samba.monitor.111.sh  |   20 -
 tests/eventscripts/simple/60.nfs.monitor.001.sh    |   11 -
 tests/eventscripts/simple/60.nfs.monitor.100.sh    |   19 -
 tests/eventscripts/simple/60.nfs.monitor.101.sh    |   11 -
 tests/eventscripts/simple/60.nfs.monitor.111.sh    |   12 -
 tests/eventscripts/simple/60.nfs.monitor.112.sh    |   15 -
 tests/eventscripts/simple/60.nfs.monitor.121.sh    |   17 -
 tests/eventscripts/simple/60.nfs.monitor.122.sh    |   19 -
 tests/eventscripts/simple/60.nfs.monitor.131.sh    |   10 -
 tests/eventscripts/simple/60.nfs.monitor.132.sh    |   15 -
 tests/eventscripts/simple/60.nfs.monitor.141.sh    |   15 -
 tests/eventscripts/simple/60.nfs.monitor.142.sh    |   14 -
 tests/eventscripts/simple/60.nfs.monitor.151.sh    |   12 -
 tests/eventscripts/simple/60.nfs.monitor.152.sh    |   18 -
 tests/eventscripts/simple/60.nfs.monitor.153.sh    |   15 -
 tests/eventscripts/simple/60.nfs.monitor.161.sh    |   13 -
 tests/eventscripts/simple/60.nfs.monitor.162.sh    |   14 -
 tests/eventscripts/stubs/ctdb                      |    2 +-
 tests/eventscripts/stubs/ip                        |    2 -
 tests/onnode/0001.sh                               |    2 +-
 tests/onnode/0002.sh                               |    2 +-
 tests/onnode/0003.sh                               |    2 +-
 tests/onnode/0004.sh                               |    2 +-
 tests/onnode/0005.sh                               |    2 +-
 tests/onnode/0006.sh                               |    2 +-
 tests/onnode/0070.sh                               |    2 +-
 tests/onnode/0071.sh                               |    2 +-
 tests/onnode/0072.sh                               |    2 +-
 tests/onnode/0075.sh                               |    2 +-
 tests/onnode/0080.sh                               |    2 +-
 tests/onnode/0081.sh                               |    2 +-
 tests/onnode/0090.sh                               |    2 +-
 tests/onnode/0091.sh                               |    2 +-
 tests/onnode/README                                |   24 +-
 tests/onnode/common.sh                             |  103 --
 tests/onnode/run_tests.sh                          |   31 -
 tests/onnode/scripts/local.sh                      |   86 ++
 tests/run_cluster_tests.sh                         |    1 +
 tests/run_tests.sh                                 |   36 +-
 tests/scripts/common.sh                            |   41 +
 tests/scripts/ctdb_test_env                        |   45 -
 tests/scripts/ctdb_test_functions.bash             | 1113 --------------------
 tests/scripts/integration.bash                     |  932 ++++++++++++++++
 tests/scripts/run_tests                            |  191 +++-
 tests/scripts/test_wrap                            |   11 +-
 tests/scripts/unit.sh                              |  141 +++
 tests/simple/00_ctdb_init.sh                       |    2 +-
 tests/simple/00_ctdb_onnode.sh                     |    6 +-
 tests/simple/01_ctdb_version.sh                    |    2 +-
 tests/simple/02_ctdb_listvars.sh                   |    2 +-
 tests/simple/03_ctdb_getvar.sh                     |    2 +-
 tests/simple/04_ctdb_setvar.sh                     |    2 +-
 tests/simple/05_ctdb_listnodes.sh                  |    2 +-
 tests/simple/06_ctdb_getpid.sh                     |    2 +-
 tests/simple/07_ctdb_process_exists.sh             |    2 +-
 tests/simple/08_ctdb_isnotrecmaster.sh             |    2 +-
 tests/simple/09_ctdb_ping.sh                       |    2 +-
 tests/simple/11_ctdb_ip.sh                         |   22 +-
 tests/simple/12_ctdb_getdebug.sh                   |    2 +-
 tests/simple/13_ctdb_setdebug.sh                   |    2 +-
 tests/simple/14_ctdb_statistics.sh                 |    4 +-
 tests/simple/15_ctdb_statisticsreset.sh            |    2 +-
 tests/simple/16_ctdb_config_add_ip.sh              |   12 +-
 tests/simple/17_ctdb_config_delete_ip.sh           |    2 +-
 tests/simple/18_ctdb_reloadips.sh                  |  106 ++
 tests/simple/23_ctdb_moveip.sh                     |    2 +-
 tests/simple/24_ctdb_getdbmap.sh                   |    2 +-
 tests/simple/25_dumpmemory.sh                      |    2 +-
 ..._ctdb_config_check_error_on_unreachable_ctdb.sh |    2 +-
 tests/simple/31_ctdb_disable.sh                    |    2 +-
 tests/simple/32_ctdb_enable.sh                     |    2 +-
 tests/simple/41_ctdb_stop.sh                       |    2 +-
 tests/simple/42_ctdb_continue.sh                   |    2 +-
 tests/simple/43_stop_recmaster_yield.sh            |    2 +-
 tests/simple/51_ctdb_bench.sh                      |    2 +-
 tests/simple/52_ctdb_fetch.sh                      |    2 +-
 tests/simple/53_ctdb_transaction.sh                |    2 +-
 tests/simple/54_ctdb_transaction_recovery.sh       |    2 +-
 tests/simple/70_recoverpdbbyseqnum.sh              |    2 +-
 tests/simple/71_ctdb_wipedb.sh                     |    2 +-
 tests/simple/72_update_record_persistent.sh        |   32 +-
 tests/simple/73_tunable_NoIPTakeover.sh            |    2 +-
 tests/simple/75_readonly_records_basic.sh          |    4 +-
 tests/simple/99_daemons_shutdown.sh                |   23 +
 tests/simple/README                                |    2 +
 tests/takeover/README                              |    9 +-
 tests/takeover/common.sh                           |   70 --
 tests/takeover/ctdb_takeover.py                    |  888 ----------------
 tests/takeover/lcp2.001.sh                         |   31 +
 tests/takeover/lcp2.002.sh                         |   31 +
 tests/takeover/lcp2.003.sh                         |   31 +
 tests/takeover/lcp2.004.sh                         |   37 +
 tests/takeover/lcp2.005.sh                         |  181 ++++
 tests/takeover/lcp2.006.sh                         |   31 +
 tests/takeover/lcp2.007.sh                         |   31 +
 tests/takeover/lcp2.008.sh                         |   31 +
 tests/takeover/lcp2.009.sh                         |   31 +
 tests/takeover/lcp2.010.sh                         |   32 +
 tests/takeover/lcp2.011.sh                         |   45 +
 tests/takeover/lcp2.012.sh                         |   31 +
 tests/takeover/lcp2.013.sh                         |   31 +
 tests/takeover/nondet.001.sh                       |   29 +
 tests/takeover/nondet.002.sh                       |   29 +
 tests/takeover/nondet.003.sh                       |   29 +
 tests/takeover/run_tests.sh                        |   31 -
 tests/takeover/scripts/local.sh                    |   36 +
 tests/takeover/{ => simulation}/README             |    0
 tests/takeover/simulation/ctdb_takeover.py         |  888 ++++++++++++++++
 tests/takeover/simulation/hey_jude.py              |   24 +
 tests/takeover/{ => simulation}/ip_groups1.py      |    0
 tests/takeover/{ => simulation}/ip_groups2.py      |    0
 tests/takeover/{ => simulation}/ip_groups3.py      |    0
 tests/takeover/{ => simulation}/ip_groups4.py      |    0
 tests/takeover/{ => simulation}/ip_groups5.py      |    0
 tests/takeover/{ => simulation}/mgmt_simple.py     |    0
 tests/takeover/{ => simulation}/node_group.py      |    0
 .../takeover/{ => simulation}/node_group_extra.py  |    0
 .../takeover/{ => simulation}/node_group_simple.py |    0
 tests/takeover/{ => simulation}/nondet_path_01.py  |    0
 tests/takeover/testcases/lcp2.001.sh               |   31 -
 tests/takeover/testcases/lcp2.002.sh               |   31 -
 tests/takeover/testcases/lcp2.003.sh               |   31 -
 tests/takeover/testcases/lcp2.004.sh               |   37 -
 tests/takeover/testcases/lcp2.005.sh               |  181 ----
 tests/takeover/testcases/lcp2.006.sh               |   31 -
 tests/takeover/testcases/lcp2.007.sh               |   31 -
 tests/takeover/testcases/lcp2.008.sh               |   31 -
 tests/takeover/testcases/lcp2.009.sh               |   31 -
 tests/takeover/testcases/lcp2.010.sh               |   32 -
 tests/takeover/testcases/nondet.001.sh             |   29 -
 tests/takeover/testcases/nondet.002.sh             |   29 -
 tests/takeover/testcases/nondet.003.sh             |   29 -
 tests/tool/README                                  |   19 +
 tests/tool/common.sh                               |   79 --
 tests/tool/func.parse_nodestring.001.sh            |   16 +
 tests/tool/func.parse_nodestring.002.sh            |   16 +
 tests/tool/func.parse_nodestring.003.sh            |   15 +
 tests/tool/run_tests.sh                            |   35 -
 tests/tool/scripts/local.sh                        |   36 +
 tests/tool/stubby.nodestatus.001.sh                |   30 +
 tests/tool/stubby.nodestatus.002.sh                |   30 +
 tests/tool/stubby.nodestatus.003.sh                |   30 +
 tests/tool/stubby.nodestatus.004.sh                |   31 +
 tests/tool/stubby.nodestatus.005.sh                |   34 +
 tests/tool/stubby.status.001.sh                    |   37 +
 tests/tool/stubby.status.002.sh                    |   37 +
 tests/tool/testcases/func.parse_nodestring.001.sh  |   16 -
 tests/tool/testcases/func.parse_nodestring.002.sh  |   16 -
 tests/tool/testcases/func.parse_nodestring.003.sh  |   15 -
 tests/tool/testcases/stubby.nodestatus.001.sh      |   30 -
 tests/tool/testcases/stubby.nodestatus.002.sh      |   30 -
 tests/tool/testcases/stubby.nodestatus.003.sh      |   30 -
 tests/tool/testcases/stubby.nodestatus.004.sh      |   28 -
 tests/tool/testcases/stubby.nodestatus.005.sh      |   34 +
 tests/tool/testcases/stubby.status.001.sh          |   37 -
 tests/tool/testcases/stubby.status.002.sh          |   37 -
 323 files changed, 6421 insertions(+), 5900 deletions(-)
 create mode 100644 config/debug-hung-script.sh
 create mode 100755 tests/INSTALL
 create mode 100644 tests/complex/README
 create mode 100644 tests/complex/scripts/local.bash
 create mode 100755 tests/eventscripts/10.interface.init.001.sh
 create mode 100755 tests/eventscripts/10.interface.init.002.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.001.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.002.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.003.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.004.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.005.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.006.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.007.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.008.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.009.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.010.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.011.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.012.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.013.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.014.sh
 create mode 100755 tests/eventscripts/10.interface.monitor.015.sh
 create mode 100755 tests/eventscripts/10.interface.multi.001.sh
 create mode 100755 tests/eventscripts/10.interface.releaseip.001.sh
 create mode 100755 tests/eventscripts/10.interface.releaseip.002.sh
 create mode 100755 tests/eventscripts/10.interface.startup.001.sh
 create mode 100755 tests/eventscripts/10.interface.startup.002.sh
 create mode 100755 tests/eventscripts/10.interface.takeip.001.sh
 create mode 100755 tests/eventscripts/10.interface.takeip.002.sh
 create mode 100755 tests/eventscripts/10.interface.takeip.003.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.001.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.002.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.003.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.004.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.005.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.006.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.007.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.008.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.009.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.010.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.011.sh
 create mode 100755 tests/eventscripts/13.per_ip_routing.012.sh
 create mode 100755 tests/eventscripts/40.vsftpd.monitor.001.sh
 create mode 100755 tests/eventscripts/41.httpd.monitor.001.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.001.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.050.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.051.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.101.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.102.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.103.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.104.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.105.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.106.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.107.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.108.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.109.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.110.sh
 create mode 100755 tests/eventscripts/50.samba.monitor.111.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.001.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.100.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.101.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.111.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.112.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.121.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.122.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.131.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.132.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.141.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.142.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.151.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.152.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.153.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.161.sh
 create mode 100755 tests/eventscripts/60.nfs.monitor.162.sh
 create mode 100755 tests/eventscripts/60.nfs.multi.001.sh
 create mode 100755 tests/eventscripts/60.nfs.multi.002.sh
 create mode 100755 tests/eventscripts/60.nfs.multi.003.sh
 create mode 100755 tests/eventscripts/60.nfs.multi.004.sh
 create mode 100755 tests/eventscripts/60.nfs.multi.005.sh
 create mode 100755 tests/eventscripts/60.nfs.multi.006.sh
 delete mode 100644 tests/eventscripts/common.sh
 delete mode 120000 tests/eventscripts/etc-ctdb/interface_modify.sh
 mode change 120000 => 100644 tests/eventscripts/etc/sysconfig/ctdb
 delete mode 100755 tests/eventscripts/multievent/10.interface.001.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.001.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.002.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.003.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.004.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.005.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.006.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.007.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.008.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.009.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.010.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.011.sh
 delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.012.sh
 delete mode 100755 tests/eventscripts/multievent/60.nfs.001.sh
 delete mode 100755 tests/eventscripts/multievent/60.nfs.002.sh
 delete mode 100755 tests/eventscripts/multievent/60.nfs.003.sh
 delete mode 100755 tests/eventscripts/multievent/60.nfs.004.sh
 delete mode 100755 tests/eventscripts/multievent/60.nfs.005.sh
 delete mode 100755 tests/eventscripts/multievent/60.nfs.006.sh
 delete mode 100755 tests/eventscripts/run_tests.sh
 create mode 100644 tests/eventscripts/scripts/local.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.init.001.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.init.002.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.001.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.002.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.003.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.004.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.005.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.006.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.007.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.008.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.009.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.010.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.011.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.012.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.013.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.014.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.monitor.015.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.releaseip.001.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.releaseip.002.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.startup.001.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.startup.002.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.takeip.001.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.takeip.002.sh
 delete mode 100755 tests/eventscripts/simple/10.interface.takeip.003.sh
 delete mode 100755 tests/eventscripts/simple/40.vsftpd.monitor.001.sh
 delete mode 100755 tests/eventscripts/simple/41.httpd.monitor.001.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.001.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.050.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.051.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.101.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.102.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.103.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.104.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.105.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.106.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.107.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.108.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.109.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.110.sh
 delete mode 100755 tests/eventscripts/simple/50.samba.monitor.111.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.001.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.100.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.101.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.111.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.112.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.121.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.122.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.131.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.132.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.141.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.142.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.151.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.152.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.153.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.161.sh
 delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.162.sh
 delete mode 100644 tests/onnode/common.sh
 delete mode 100755 tests/onnode/run_tests.sh
 create mode 100644 tests/onnode/scripts/local.sh
 create mode 120000 tests/run_cluster_tests.sh
 create mode 100644 tests/scripts/common.sh
 delete mode 100755 tests/scripts/ctdb_test_env
 delete mode 100644 tests/scripts/ctdb_test_functions.bash
 create mode 100644 tests/scripts/integration.bash
 create mode 100644 tests/scripts/unit.sh
 create mode 100755 tests/simple/18_ctdb_reloadips.sh
 create mode 100755 tests/simple/99_daemons_shutdown.sh
 create mode 100644 tests/simple/README
 delete mode 100644 tests/takeover/common.sh
 delete mode 100755 tests/takeover/ctdb_takeover.py
 create mode 100755 tests/takeover/lcp2.001.sh
 create mode 100755 tests/takeover/lcp2.002.sh
 create mode 100755 tests/takeover/lcp2.003.sh
 create mode 100755 tests/takeover/lcp2.004.sh
 create mode 100755 tests/takeover/lcp2.005.sh
 create mode 100755 tests/takeover/lcp2.006.sh
 create mode 100755 tests/takeover/lcp2.007.sh
 create mode 100755 tests/takeover/lcp2.008.sh
 create mode 100755 tests/takeover/lcp2.009.sh
 create mode 100755 tests/takeover/lcp2.010.sh
 create mode 100755 tests/takeover/lcp2.011.sh
 create mode 100755 tests/takeover/lcp2.012.sh
 create mode 100755 tests/takeover/lcp2.013.sh
 create mode 100755 tests/takeover/nondet.001.sh
 create mode 100755 tests/takeover/nondet.002.sh
 create mode 100755 tests/takeover/nondet.003.sh
 delete mode 100755 tests/takeover/run_tests.sh
 create mode 100644 tests/takeover/scripts/local.sh
 copy tests/takeover/{ => simulation}/README (100%)
 create mode 100755 tests/takeover/simulation/ctdb_takeover.py
 create mode 100755 tests/takeover/simulation/hey_jude.py
 rename tests/takeover/{ => simulation}/ip_groups1.py (100%)
 rename tests/takeover/{ => simulation}/ip_groups2.py (100%)
 rename tests/takeover/{ => simulation}/ip_groups3.py (100%)
 rename tests/takeover/{ => simulation}/ip_groups4.py (100%)
 rename tests/takeover/{ => simulation}/ip_groups5.py (100%)
 rename tests/takeover/{ => simulation}/mgmt_simple.py (100%)
 rename tests/takeover/{ => simulation}/node_group.py (100%)
 rename tests/takeover/{ => simulation}/node_group_extra.py (100%)
 rename tests/takeover/{ => simulation}/node_group_simple.py (100%)
 rename tests/takeover/{ => simulation}/nondet_path_01.py (100%)
 delete mode 100755 tests/takeover/testcases/lcp2.001.sh
 delete mode 100755 tests/takeover/testcases/lcp2.002.sh
 delete mode 100755 tests/takeover/testcases/lcp2.003.sh
 delete mode 100755 tests/takeover/testcases/lcp2.004.sh
 delete mode 100755 tests/takeover/testcases/lcp2.005.sh
 delete mode 100755 tests/takeover/testcases/lcp2.006.sh
 delete mode 100755 tests/takeover/testcases/lcp2.007.sh
 delete mode 100755 tests/takeover/testcases/lcp2.008.sh
 delete mode 100755 tests/takeover/testcases/lcp2.009.sh
 delete mode 100755 tests/takeover/testcases/lcp2.010.sh
 delete mode 100755 tests/takeover/testcases/nondet.001.sh
 delete mode 100755 tests/takeover/testcases/nondet.002.sh
 delete mode 100755 tests/takeover/testcases/nondet.003.sh
 create mode 100644 tests/tool/README
 delete mode 100644 tests/tool/common.sh
 create mode 100755 tests/tool/func.parse_nodestring.001.sh
 create mode 100755 tests/tool/func.parse_nodestring.002.sh
 create mode 100755 tests/tool/func.parse_nodestring.003.sh
 delete mode 100755 tests/tool/run_tests.sh
 create mode 100644 tests/tool/scripts/local.sh
 create mode 100755 tests/tool/stubby.nodestatus.001.sh
 create mode 100755 tests/tool/stubby.nodestatus.002.sh
 create mode 100755 tests/tool/stubby.nodestatus.003.sh
 create mode 100755 tests/tool/stubby.nodestatus.004.sh
 create mode 100755 tests/tool/stubby.nodestatus.005.sh
 create mode 100755 tests/tool/stubby.status.001.sh
 create mode 100755 tests/tool/stubby.status.002.sh
 delete mode 100755 tests/tool/testcases/func.parse_nodestring.001.sh
 delete mode 100755 tests/tool/testcases/func.parse_nodestring.002.sh
 delete mode 100755 tests/tool/testcases/func.parse_nodestring.003.sh
 delete mode 100755 tests/tool/testcases/stubby.nodestatus.001.sh
 delete mode 100755 tests/tool/testcases/stubby.nodestatus.002.sh
 delete mode 100755 tests/tool/testcases/stubby.nodestatus.003.sh
 delete mode 100755 tests/tool/testcases/stubby.nodestatus.004.sh
 create mode 100755 tests/tool/testcases/stubby.nodestatus.005.sh
 delete mode 100755 tests/tool/testcases/stubby.status.001.sh
 delete mode 100755 tests/tool/testcases/stubby.status.002.sh


Changeset truncated at 500 lines:

diff --git a/Makefile.in b/Makefile.in
index 26eeac8..cdebbd7 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -356,6 +356,7 @@ install: all $(PMDA_INSTALL)
 	if [ -f doc/ltdbtool.1 ]; then ${INSTALLCMD} -m 644 doc/ltdbtool.1 $(DESTDIR)$(mandir)/man1; fi
 	if [ -f doc/ping_pong.1 ];then ${INSTALLCMD} -m 644 doc/ping_pong.1 $(DESTDIR)$(mandir)/man1; fi
 	if [ ! -f $(DESTDIR)$(etcdir)/ctdb/notify.sh ];then ${INSTALLCMD} -m 755 config/notify.sh $(DESTDIR)$(etcdir)/ctdb; fi
+	${INSTALLCMD} -m 755 config/debug-hung-script.sh $(DESTDIR)$(etcdir)/ctdb
 	if [ ! -f $(DESTDIR)$(etcdir)/ctdb/ctdb-crash-cleanup.sh ];then ${INSTALLCMD} -m 755 config/ctdb-crash-cleanup.sh $(DESTDIR)$(etcdir)/ctdb; fi
 
 install_pmda:
@@ -364,8 +365,15 @@ install_pmda:
 	$(INSTALLCMD) -m 644 pmda/pmns pmda/domain.h pmda/help pmda/README $(PMDA_DEST_DIR)
 	$(INSTALLCMD) -m 755 bin/pmdactdb $(PMDA_DEST_DIR)
 
+# Should use $(datarootdir) but older autoconfs don't do this.  :-(
+install_tests: all
+	tests/INSTALL --destdir=$(DESTDIR) --datarootdir=$(prefix)/share --libdir=$(libdir) --bindir=$(bindir) --etcdir=$(etcdir)
+
 test: all
-	tests/run_tests.sh
+	tests/run_tests.sh -V tests/var
+
+test_cluster: all
+	tests/run_cluster_tests.sh
 
 valgrindtest: all
 	VALGRIND="valgrind -q --trace-children=yes" tests/run_tests.sh
diff --git a/config/ctdb.init b/config/ctdb.init
index 0a4d29b..5d01a9c 100755
--- a/config/ctdb.init
+++ b/config/ctdb.init
@@ -95,6 +95,7 @@ build_ctdb_options () {
     maybe_set "--event-script-dir"       "$CTDB_EVENT_SCRIPT_DIR"
     maybe_set "--transport"              "$CTDB_TRANSPORT"
     maybe_set "-d"                       "$CTDB_DEBUGLEVEL"
+    maybe_set "--debug-hung-script"      "$CTDB_DEBUG_HUNG_SCRIPT"
     maybe_set "--notification-script"    "$CTDB_NOTIFY_SCRIPT"
     maybe_set "--start-as-disabled"      "$CTDB_START_AS_DISABLED"    "yes"
     maybe_set "--start-as-stopped "      "$CTDB_START_AS_STOPPED"     "yes"
diff --git a/config/ctdb.sysconfig b/config/ctdb.sysconfig
index 163a0dd..fecc7a5 100644
--- a/config/ctdb.sysconfig
+++ b/config/ctdb.sysconfig
@@ -92,6 +92,9 @@ CTDB_RECOVERY_LOCK="/some/place/on/shared/storage"
 # a script to run when node health changes
 # CTDB_NOTIFY_SCRIPT=/etc/ctdb/notify.sh
 
+# a script to collect data when an eventscript has hung
+# CTDB_DEBUG_HUNG_SCRIPT=/etc/ctdb/debug-hung-script.sh
+
 # the directory to put the local ctdb database files in
 # defaults to /var/ctdb
 # CTDB_DBDIR=/var/ctdb
diff --git a/config/debug-hung-script.sh b/config/debug-hung-script.sh
new file mode 100644
index 0000000..d468cc6
--- /dev/null
+++ b/config/debug-hung-script.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+. $CTDB_BASE/functions
+loadconfig
+
+echo "Pstree output for the hung script:"
+pstree -p -a $1
diff --git a/config/events.d/13.per_ip_routing b/config/events.d/13.per_ip_routing
index f51d5ed..07687c0 100755
--- a/config/events.d/13.per_ip_routing
+++ b/config/events.d/13.per_ip_routing
@@ -136,7 +136,7 @@ clean_up_table_ids ()
     # Even if this didn't exist on the system, adding a route will
     # have created it.  What if we startup and immediately shutdown?
     if [ ! -f "$_f" ] ; then
-	mkdir -p $(basename "$_f")
+	mkdir -p $(dirname "$_f")
 	touch "$_f"
     fi
 
@@ -178,7 +178,7 @@ get_config_for_ip ()
 	    if [ "$_ip" = "$_i" ] ; then
 		echo -n "$_ip "; ipv4_host_addr_to_net "$_ip" "$_maskbits"
 	    fi
-	done <"${CTDB_PUBLIC_ADDRESSES:-${CTDB_BASE:-/dev/null}${CTDB:+/public_addresses}}"
+	done <"${CTDB_PUBLIC_ADDRESSES:-${CTDB_BASE:-/dev/null}${CTDB_BASE:+/public_addresses}}"
     else
 	[ -f "$CTDB_PER_IP_ROUTING_CONF" ] || return 1
 
diff --git a/config/functions b/config/functions
index ca89c38..9c2898c 100755
--- a/config/functions
+++ b/config/functions
@@ -211,14 +211,20 @@ nfs_check_rpc_service ()
 {
     _prog_name="$1" ; shift
 
-    _version=1
+    _v=""
+    case "$1" in
+	-*) : ;;
+	*) _v="$1" ; shift ;;
+    esac
+
+    _version=${_v:-1}
     _rpc_prog="$_prog_name"
     _restart=""
     _opts=""
     case "$_prog_name" in
 	knfsd)
 	    _rpc_prog=nfs
-	    _version=3
+	    _version=${_v:-3}
 	    _restart="echo 'Trying to restart NFS service'"
 	    _restart="${_restart}; startstop_nfs restart"
 	    ;;
@@ -230,7 +236,7 @@ nfs_check_rpc_service ()
 	    ;;
 	lockd)
 	    _rpc_prog=nlockmgr
-	    _version=4
+	    _version=${_v:-4}
 	    _restart="echo 'Trying to restart lock manager service'"
 	    _restart="${_restart}; startstop_nfslock restart"
 	    ;;
diff --git a/include/ctdb_private.h b/include/ctdb_private.h
index 086e427..a1b4b89 100644
--- a/include/ctdb_private.h
+++ b/include/ctdb_private.h
@@ -458,6 +458,7 @@ struct ctdb_context {
 	bool do_setsched;
 	void *saved_scheduler_param;
 	const char *event_script_dir;
+	const char *debug_hung_script;
 	const char *notification_script;
 	const char *default_public_interface;
 	pid_t ctdbd_pid;
@@ -502,6 +503,7 @@ struct ctdb_context {
 
 	const char *public_addresses_file;
 	struct trbt_tree *child_processes; 
+	TALLOC_CTX *debug_hung_script_ctx;
 };
 
 struct ctdb_db_context {
@@ -1150,6 +1152,7 @@ int ctdb_set_single_public_ip(struct ctdb_context *ctdb,
 			      const char *ip);
 int ctdb_set_event_script(struct ctdb_context *ctdb, const char *script);
 int ctdb_set_event_script_dir(struct ctdb_context *ctdb, const char *script_dir);
+int ctdb_set_debug_hung_script(struct ctdb_context *ctdb, const char *script);
 int ctdb_set_notification_script(struct ctdb_context *ctdb, const char *script);
 void lcp2_forcerebalance(struct ctdb_context *ctdb, uint32_t pnn);
 int ctdb_takeover_run(struct ctdb_context *ctdb, struct ctdb_node_map *nodemap);
diff --git a/packaging/RPM/ctdb.spec.in b/packaging/RPM/ctdb.spec.in
index fd61c6d..0367556 100644
--- a/packaging/RPM/ctdb.spec.in
+++ b/packaging/RPM/ctdb.spec.in
@@ -12,18 +12,42 @@ URL: http://ctdb.samba.org/
 
 Source: ctdb-%{version}.tar.gz
 
-Prereq: /bin/mktemp /usr/bin/killall
-Prereq: fileutils sed /etc/init.d
+# Packages
+Requires: coreutils, sed, gawk, iptables, iproute, procps, ethtool
+# Commands - package name might vary
+Requires: /usr/bin/killall, /bin/kill, /bin/netstat
+# Directories
+Requires: /etc/init.d
 
 Provides: ctdb = %{version}
 
 Prefix: /usr
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 
+# Always use the bundled versions of these libraries.
+%define with_included_talloc 1
+%define with_included_tdb 1
+%define with_included_tevent 1
+
+# If the above options are changed then mandate minimum system
+# versions.
+%define libtalloc_version 2.0.6
+%define libtdb_version 1.2.9
+%define libtevent_version 0.9.13
+
+%if ! %with_included_talloc
+BuildRequires: libtalloc-devel >= %{libtalloc_version}
+%endif
+%if ! %with_included_tdb
+BuildRequires: libtdb-devel >= %{libtdb_version}
+%endif
+%if ! %with_included_tevent
+BuildRequires: libtevent-devel >= %{libtevent_version}
+%endif
+
 %description
 ctdb is the clustered database used by samba
 
-
 #######################################################################
 
 
@@ -48,6 +72,15 @@ export CC
 ./autogen.sh
 
 CFLAGS="$RPM_OPT_FLAGS $EXTRA -O0 -D_GNU_SOURCE -DCTDB_VERS=\"%{version}-%{release}\"" ./configure \
+%if %with_included_talloc
+	--with-included-talloc \
+%endif
+%if %with_included_tdb
+	--with-included-tdb \
+%endif
+%if %with_included_tevent
+	--with-included-tevent \
+%endif
 	--prefix=%{_prefix} \
 	--sysconfdir=%{_sysconfdir} \
 	--mandir=%{_mandir} \
@@ -64,7 +97,7 @@ rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
 
-make DESTDIR=$RPM_BUILD_ROOT docdir=%{_docdir} install
+make DESTDIR=$RPM_BUILD_ROOT docdir=%{_docdir} install install_tests
 
 install -m644 config/ctdb.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ctdb
 install -m755 config/ctdb.init $RPM_BUILD_ROOT%{initdir}/ctdb
@@ -88,6 +121,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %config(noreplace) %{_sysconfdir}/sysconfig/ctdb
 %config(noreplace) %{_sysconfdir}/ctdb/notify.sh
+%config(noreplace) %{_sysconfdir}/ctdb/debug-hung-script.sh
 %config(noreplace) %{_sysconfdir}/ctdb/ctdb-crash-cleanup.sh
 %config(noreplace) %{_sysconfdir}/ctdb/functions
 %attr(755,root,root) %{initdir}/ctdb
@@ -129,8 +163,8 @@ rm -rf $RPM_BUILD_ROOT
 %{_docdir}/ctdb/tests/bin/ctdb_transaction
 
 %package devel
-Summary: CTDB developmnet libraries
-Group: Development
+Summary: CTDB development libraries
+Group: Development/Libraries
 
 %description devel
 development libraries for ctdb
@@ -144,6 +178,25 @@ development libraries for ctdb
 %{_includedir}/ctdb_typesafe_cb.h
 %{_libdir}/libctdb.a
 
+%package tests
+Summary: CTDB test suite
+Group: Development/Tools
+Requires: ctdb = %{version}
+
+%description tests
+test suite for ctdb
+
+%files tests
+%defattr(-,root,root)
+%dir %{_datadir}/%{name}-tests
+%{_datadir}/%{name}-tests/*
+%dir %{_libdir}/%{name}-tests
+%{_libdir}/%{name}-tests/*
+%{_bindir}/ctdb_run_tests
+%{_bindir}/ctdb_run_cluster_tests
+%doc tests/README
+
+
 %changelog
 * Thu May 3 2012 : Version 1.42
  - Add a new command 'reloadips' that can be used to re-read and update from
diff --git a/server/ctdb_recoverd.c b/server/ctdb_recoverd.c
index 4cbbece..f739900 100644
--- a/server/ctdb_recoverd.c
+++ b/server/ctdb_recoverd.c
@@ -2852,13 +2852,13 @@ static int verify_local_ip_allocation(struct ctdb_context *ctdb, struct ctdb_rec
 						ctdb_addr_to_str(&ips->ips[j].addr)));
 				need_takeover_run = true;
 			} else if (ips->ips[j].pnn == pnn) {
-				if (!ctdb_sys_have_ip(&ips->ips[j].addr)) {
+				if (ctdb->do_checkpublicip && !ctdb_sys_have_ip(&ips->ips[j].addr)) {
 					DEBUG(DEBUG_CRIT,("Public address '%s' is missing and we should serve this ip\n",
 						ctdb_addr_to_str(&ips->ips[j].addr)));
 					need_takeover_run = true;
 				}
 			} else {
-				if (ctdb_sys_have_ip(&ips->ips[j].addr)) {
+				if (ctdb->do_checkpublicip && ctdb_sys_have_ip(&ips->ips[j].addr)) {
 					DEBUG(DEBUG_CRIT,("We are still serving a public address '%s' that we should not be serving.\n", 
 						ctdb_addr_to_str(&ips->ips[j].addr)));
 					need_takeover_run = true;
diff --git a/server/ctdb_takeover.c b/server/ctdb_takeover.c
index fe73997..ee6c723 100644
--- a/server/ctdb_takeover.c
+++ b/server/ctdb_takeover.c
@@ -349,6 +349,8 @@ static void ctdb_do_takeip_callback(struct ctdb_context *ctdb, int status,
 		return;
 	}
 
+	if (ctdb->do_checkpublicip) {
+
 	ret = ctdb_announce_vnn_iface(ctdb, state->vnn);
 	if (ret != 0) {
 		ctdb_request_control_reply(ctdb, state->c, NULL, -1, NULL);
@@ -356,6 +358,8 @@ static void ctdb_do_takeip_callback(struct ctdb_context *ctdb, int status,
 		return;
 	}
 
+	}
+
 	data.dptr  = (uint8_t *)ctdb_addr_to_str(&state->vnn->public_address);
 	data.dsize = strlen((char *)data.dptr) + 1;
 	DEBUG(DEBUG_INFO,(__location__ " sending TAKE_IP for '%s'\n", data.dptr));
@@ -382,7 +386,7 @@ static int32_t ctdb_do_takeip(struct ctdb_context *ctdb,
 	ret = ctdb_vnn_assign_iface(ctdb, vnn);
 	if (ret != 0) {
 		DEBUG(DEBUG_ERR,("Takeover of IP %s/%u failed to "
-				 "assin a usable interface\n",
+				 "assign a usable interface\n",
 				 ctdb_addr_to_str(&vnn->public_address),
 				 vnn->public_netmask_bits));
 		return -1;
@@ -459,6 +463,8 @@ static void ctdb_do_updateip_callback(struct ctdb_context *ctdb, int status,
 		return;
 	}
 
+	if (ctdb->do_checkpublicip) {
+
 	ret = ctdb_announce_vnn_iface(ctdb, state->vnn);
 	if (ret != 0) {
 		ctdb_request_control_reply(ctdb, state->c, NULL, -1, NULL);
@@ -466,6 +472,8 @@ static void ctdb_do_updateip_callback(struct ctdb_context *ctdb, int status,
 		return;
 	}
 
+	}
+
 	/* the control succeeded */
 	ctdb_request_control_reply(ctdb, state->c, NULL, 0, NULL);
 	talloc_free(state);
@@ -590,7 +598,9 @@ int32_t ctdb_control_takeover_ip(struct ctdb_context *ctdb,
 		return 0;
 	}
 
-	have_ip = ctdb_sys_have_ip(&pip->addr);
+	if (ctdb->do_checkpublicip) {
+		have_ip = ctdb_sys_have_ip(&pip->addr);
+	}
 	best_iface = ctdb_vnn_best_iface(ctdb, vnn);
 	if (best_iface == NULL) {
 		DEBUG(DEBUG_ERR,("takeoverip of IP %s/%u failed to find"
@@ -607,6 +617,7 @@ int32_t ctdb_control_takeover_ip(struct ctdb_context *ctdb,
 		have_ip = false;
 	}
 
+
 	if (vnn->iface == NULL && have_ip) {
 		DEBUG(DEBUG_CRIT,(__location__ " takeoverip of IP %s is known to the kernel, "
 				  "but we have no interface assigned, has someone manually configured it? Ignore for now.\n",
@@ -797,19 +808,27 @@ int32_t ctdb_control_release_ip(struct ctdb_context *ctdb,
 	talloc_free(vnn->takeover_ctx);
 	vnn->takeover_ctx = NULL;
 
-	if (!ctdb_sys_have_ip(&pip->addr)) {
-		DEBUG(DEBUG_DEBUG,("Redundant release of IP %s/%u on interface %s (ip not held)\n", 
-			ctdb_addr_to_str(&pip->addr),
-			vnn->public_netmask_bits, 
-			ctdb_vnn_iface_string(vnn)));
-		ctdb_vnn_unassign_iface(ctdb, vnn);
-		return 0;
-	}
+	if (ctdb->do_checkpublicip) {
 
-	if (vnn->iface == NULL) {
-		DEBUG(DEBUG_ERR,(__location__ " release_ip of IP %s is known to the kernel, "
-				 "but we have no interface assigned, has someone manually configured it? Ignore for now.\n",
-				 ctdb_addr_to_str(&vnn->public_address)));
+		if (!ctdb_sys_have_ip(&pip->addr)) {
+			DEBUG(DEBUG_DEBUG,("Redundant release of IP %s/%u on interface %s (ip not held)\n",
+				ctdb_addr_to_str(&pip->addr),
+				vnn->public_netmask_bits,
+				ctdb_vnn_iface_string(vnn)));
+			ctdb_vnn_unassign_iface(ctdb, vnn);
+			return 0;
+		}
+
+		if (vnn->iface == NULL) {
+			DEBUG(DEBUG_ERR,(__location__ " release_ip of IP %s is known to the kernel, "
+					 "but we have no interface assigned, has someone manually configured it? Ignore for now.\n",
+					 ctdb_addr_to_str(&vnn->public_address)));
+			return 0;
+		}
+
+	} else if (vnn->iface == NULL) {
+		DEBUG(DEBUG_ERR, ("No interface found for IP %s.\n",
+				     ctdb_addr_to_str(&vnn->public_address)));
 		return 0;
 	}
 
diff --git a/server/ctdb_tunables.c b/server/ctdb_tunables.c
index 41ff7ae..5103cc2 100644
--- a/server/ctdb_tunables.c
+++ b/server/ctdb_tunables.c
@@ -38,7 +38,7 @@ static const struct {
 	{ "MonitorInterval",     15,  offsetof(struct ctdb_tunable, monitor_interval), false },
 	{ "TickleUpdateInterval",20,  offsetof(struct ctdb_tunable, tickle_update_interval), false },
 	{ "EventScriptTimeout",  30,  offsetof(struct ctdb_tunable, script_timeout), false },
-	{ "EventScriptTimeoutCount", 1,  offsetof(struct ctdb_tunable, script_timeout_count), false },
+	{ "EventScriptTimeoutCount", 20,  offsetof(struct ctdb_tunable, script_timeout_count), false },
 	{ "EventScriptUnhealthyOnTimeout", 0, offsetof(struct ctdb_tunable, script_unhealthy_on_timeout), true },
 	{ "RecoveryGracePeriod", 120,  offsetof(struct ctdb_tunable, recovery_grace_period), false },
 	{ "RecoveryBanPeriod",  300,  offsetof(struct ctdb_tunable, recovery_ban_period), false },
diff --git a/server/ctdbd.c b/server/ctdbd.c
index eafef8d..8eee5f2 100644
--- a/server/ctdbd.c
+++ b/server/ctdbd.c
@@ -33,6 +33,7 @@ static struct {
 	const char *public_address_list;
 	const char *event_script_dir;
 	const char *notification_script;
+	const char *debug_hung_script;
 	const char *logfile;
 	const char *recovery_lock_file;
 	const char *db_dir;
@@ -61,6 +62,7 @@ static struct {
 	.db_dir_persistent = VARDIR "/ctdb/persistent",
 	.db_dir_state = VARDIR "/ctdb/state",
 	.script_log_level = DEBUG_ERR,
+	.debug_hung_script = "/etc/ctdb/debug-hung-script.sh",
 };
 
 int script_log_level;
@@ -126,6 +128,7 @@ int main(int argc, const char *argv[])
 		{ "nlist", 0, POPT_ARG_STRING, &options.nlist, 0, "node list file", "filename" },
 		{ "node-ip", 0, POPT_ARG_STRING, &options.node_ip, 0, "node ip", "ip-address"},
 		{ "notification-script", 0, POPT_ARG_STRING, &options.notification_script, 0, "notification script", "filename" },
+		{ "debug-hung-script", 0, POPT_ARG_STRING, &options.debug_hung_script, 0, "debug script for hung eventscripts", "filename" },
 		{ "listen", 0, POPT_ARG_STRING, &options.myaddress, 0, "address to listen on", "address" },
 		{ "transport", 0, POPT_ARG_STRING, &options.transport, 0, "protocol transport", NULL },
 		{ "dbdir", 0, POPT_ARG_STRING, &options.db_dir, 0, "directory for the tdb files", NULL },
@@ -313,6 +316,14 @@ int main(int argc, const char *argv[])
 		}
 	}
 
+	if (options.debug_hung_script != NULL) {
+		ret = ctdb_set_debug_hung_script(ctdb, options.debug_hung_script);
+	}
+	if (ret == -1) {
+		DEBUG(DEBUG_ALERT,("Unable to setup script to debug hung eventscripts\n"));
+		exit(1);
+	}
+
 	ctdb->valgrinding = options.valgrinding;
 	if (options.valgrinding || options.nosetsched) {
 		ctdb->do_setsched = 0;
diff --git a/server/eventscript.c b/server/eventscript.c
index 838b12e..fe4299b 100644
--- a/server/eventscript.c
+++ b/server/eventscript.c
@@ -503,15 +503,23 @@ static void ctdb_event_script_handler(struct event_context *ev, struct fd_event
 	}
 }
 
-static void debug_timeout(struct ctdb_event_script_state *state)
+/*
+  setup the script to debug hung eventscripts
+*/
+int ctdb_set_debug_hung_script(struct ctdb_context *ctdb, const char *script)
+{
+	ctdb->debug_hung_script = talloc_strdup(ctdb, script);
+	CTDB_NO_MEMORY(ctdb, ctdb->debug_hung_script);
+	return 0;
+}
+
+static void ctdb_run_debug_hung_script(struct ctdb_context *ctdb, struct ctdb_event_script_state *state)
 {
 	struct ctdb_script_wire *current = get_current_script(state);
 	char *cmd;
 	pid_t pid;
-	time_t t;
-	char tbuf[100], buf[200];
 
-	cmd = child_command_string(state->ctdb, state,
+	cmd = child_command_string(ctdb, state,
 				   state->from_user, current->name,
 				   state->call, state->options);
 	CTDB_NO_MEMORY_VOID(state->ctdb, cmd);
@@ -520,26 +528,44 @@ static void debug_timeout(struct ctdb_event_script_state *state)
 			 cmd, timeval_elapsed(&current->start), state->child));
 	talloc_free(cmd);
 
-	t = time(NULL);
-	strftime(tbuf, sizeof(tbuf)-1, "%Y%m%d%H%M%S", 	localtime(&t));
-	sprintf(buf, "{ pstree -p; cat /proc/locks; ls -li /var/ctdb/ /var/ctdb/persistent; }"
-			" >/tmp/ctdb.event.%s.%d", tbuf, getpid());
-
-	pid = ctdb_fork(state->ctdb);


-- 
CTDB repository


More information about the samba-cvs mailing list