<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://www.slony.info/bugzilla/bugzilla.dtd">

<bugzilla version="3.4.4"
          urlbase="http://www.slony.info/bugzilla/"
          
          maintainer="devrim@gunduz.org"
>

    <bug>
          <bug_id>228</bug_id>
          
          <creation_ts>2011-08-04 13:28:00 -0700</creation_ts>
          <short_desc>&apos;drop node&apos; in a try block</short_desc>
          <delta_ts>2011-08-15 05:57:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Slony-I</product>
          <component>slonik</component>
          <version>devel</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          
          
          <priority>low</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Singer">ssinger</reporter>
          <assigned_to name="Steve Singer">ssinger</assigned_to>
          <cc>slony1-bugs</cc>

      

      

      

          <long_desc isprivate="0">
            <who name="Steve Singer">ssinger</who>
            <bug_when>2011-08-04 13:28:26 -0700</bug_when>
            <thetext>In doing some testing against the 2.1.0 beta I tried executing some 
slonik code like

try {
   drop node(id=3, event node=1);
}
on error {
   echo &quot;node already gone&quot;;
}
store node(id=3, event node=1);

A script like this will fail in the current 2.1.0 betas and this 
shouldn&apos;t surprise anyone who has read about the new features in 2.1.0

A drop node requires that the cluster be somewhat caught up (at least to 
the extent that any events from the drop&apos;d node that have been confirmed 
elsewhere are confirmed everywhere).  This means that drop node has an 
implicit &apos;wait for event&apos; before it.   However you can&apos;t have &apos;wait for 
events&apos; inside a try block.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who name="Steve Singer">ssinger</who>
            <bug_when>2011-08-04 13:41:21 -0700</bug_when>
            <thetext>Created an attachment (id=117)
patch for a possible fix

This patch allows the first useful command in a try block to be a waiting operation.  It will rollback the transaction and create a new one after the wait.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who name="Christopher Browne">cbbrowne</who>
            <bug_when>2011-08-08 12:39:36 -0700</bug_when>
            <thetext>Another alternative would be for conditionals to be handled in an &quot;abort if {conditions} fashion&quot;, as described in bug #173.

I think you&apos;ve observed that this isn&apos;t necessarily a reason to &quot;abort,&quot; so perhaps that should change to &quot;conditional execution.&quot;</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who name="Steve Singer">ssinger</who>
            <bug_when>2011-08-10 12:51:37 -0700</bug_when>
            <thetext>Please review</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who name="Jan Wieck">janwieck</who>
            <bug_when>2011-08-12 14:07:31 -0700</bug_when>
            <thetext>Looks good to me. Please apply.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who name="Steve Singer">ssinger</who>
            <bug_when>2011-08-15 05:57:49 -0700</bug_when>
            <thetext>Patch applied

http://git.postgresql.org/gitweb/?p=slony1-engine.git;a=commit;h=b9ceb3c7694db9b516f2aca274f5d93171678109</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117</attachid>
            <date>2011-08-04 13:41 -0700</date>
            <desc>patch for a possible fix</desc>
            <filename>0001-If-the-first-useful-command-of-a-try-block-requires.patch</filename>
            <type>text/plain</type>
            <size>5379</size>
            <attacher>ssinger</attacher>
            
              <data encoding="base64">RnJvbSAzNGFkMWRiZDlmYTBlZTMxYThhOTVjNTQxZWY2OTcyOTE1YjkzMThjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGV2ZSBTaW5nZXIgPHNzaW5nZXJAY2EuYWZpbGlhcy5pbmZv
PgpEYXRlOiBUaHUsIDQgQXVnIDIwMTEgMTY6Mjg6NDkgLTA0MDAKU3ViamVjdDogW1BBVENIXSBJ
ZiB0aGUgZmlyc3QgdXNlZnVsIGNvbW1hbmQgb2YgYSB0cnkgYmxvY2sgcmVxdWlyZXMKIGFuIGlt
cGxpY2l0IHdhaXQgdGhlbiB3ZSBjYW4gcm9sbGJhY2sgdGhlIHRyYW5zYWN0aW9uIGFuZCByZXN0
YXJ0CiBpdCBhZnRlciB0aGUgd2FpdCBoYXMgY29tcGxldGVkLiAgVGhpcyBhbGxvd3Mgc29tZSBj
b21tYW5kcwogaWUgJ2Ryb3Agbm9kZScgdG8gYmUgaW5zaWRlIG9mIGEgdHJ5IGJsb2NrLgoKLS0t
CiBzcmMvc2xvbmlrL3Nsb25pay5jIHwgICA4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCsp
LCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvc2xvbmlrL3Nsb25pay5jIGIvc3Jj
L3Nsb25pay9zbG9uaWsuYwppbmRleCAwZTQxMzBjLi5hNzAzNzI5IDEwMDY0NAotLS0gYS9zcmMv
c2xvbmlrL3Nsb25pay5jCisrKyBiL3NyYy9zbG9uaWsvc2xvbmlrLmMKQEAgLTUwLDcgKzUwLDcg
QEAgZXh0ZXJuIGludCBTVE1UU1tNQVhTVEFURU1FTlRTXTsKIFNsb25pa1NjcmlwdCAqcGFyc2Vy
X3NjcmlwdCA9IE5VTEw7CiBpbnQJCQlwYXJzZXJfZXJyb3JzID0gMDsKIGludAkJCWN1cnJlbnRf
dHJ5X2xldmVsOwotCitpbnQJCQlibG9ja19zdG10X25vPTA7CiBpbnQgbGFzdF9ldmVudF9ub2Rl
PS0xOwogaW50IGF1dG9fd2FpdF9kaXNhYmxlZD0wOwogCkBAIC0xMTc5LDEwICsxMTc5LDExIEBA
IHNjcmlwdF9leGVjX3N0bXRzKFNsb25pa1NjcmlwdCAqIHNjcmlwdCwgU2xvbmlrU3RtdCAqIGhk
cikKIAkJCWJyZWFrOwogCX0JCiAJZnJlZShldmVudHMpOwotCQorCWJsb2NrX3N0bXRfbm89MDsK
IAl3aGlsZSAoaGRyICYmIGVycm9ycyA9PSAwKQogCXsKIAkJaGRyLT5zY3JpcHQgPSBzY3JpcHQ7
CisJCWJsb2NrX3N0bXRfbm8rKzsKIAogCQlzd2l0Y2ggKGhkci0+c3RtdF90eXBlKQogCQl7CkBA
IC0xMTkxLDEwICsxMTkyLDEzIEBAIHNjcmlwdF9leGVjX3N0bXRzKFNsb25pa1NjcmlwdCAqIHNj
cmlwdCwgU2xvbmlrU3RtdCAqIGhkcikKIAkJCQkJU2xvbmlrU3RtdF90cnkgKnN0bXQgPQogCQkJ
CQkoU2xvbmlrU3RtdF90cnkgKikgaGRyOwogCQkJCQlpbnQJCQlyYzsKKwkJCQkJaW50IHNhdmVk
X3N0bXRfbm87CiAKIAkJCQkJY3VycmVudF90cnlfbGV2ZWwrKzsKKwkJCQkJc2F2ZWRfc3RtdF9u
bz1ibG9ja19zdG10X25vOwogCQkJCQlyYyA9IHNjcmlwdF9leGVjX3N0bXRzKHNjcmlwdCwgc3Rt
dC0+dHJ5X2Jsb2NrKTsKIAkJCQkJY3VycmVudF90cnlfbGV2ZWwtLTsKKwkJCQkJYmxvY2tfc3Rt
dF9ubz1zYXZlZF9zdG10X25vOwogCiAJCQkJCWlmIChyYyA8IDApCiAJCQkJCXsKQEAgLTEyNDAs
NiArMTI0NCw3IEBAIHNjcmlwdF9leGVjX3N0bXRzKFNsb25pa1NjcmlwdCAqIHNjcmlwdCwgU2xv
bmlrU3RtdCAqIGhkcikKIAkJCQkJcHJpbnRmKCIlczolZDogJXNcbiIsCiAJCQkJCQkgICBzdG10
LT5oZHIuc3RtdF9maWxlbmFtZSwgc3RtdC0+aGRyLnN0bXRfbG5vLAogCQkJCQkJICAgc3RtdC0+
c3RyKTsKKwkJCQkJYmxvY2tfc3RtdF9uby0tOwogCQkJCX0KIAkJCQlicmVhazsKIApAQCAtMTI1
OCw2ICsxMjYzLDcgQEAgc2NyaXB0X2V4ZWNfc3RtdHMoU2xvbmlrU2NyaXB0ICogc2NyaXB0LCBT
bG9uaWtTdG10ICogaGRyKQogCQkJCQlwcmludGYoIiVzOiVkOiAlc1xuIiwKIAkJCQkJICAgICAg
IHN0bXQtPmhkci5zdG10X2ZpbGVuYW1lLCBzdG10LT5oZHIuc3RtdF9sbm8sCiAJCQkJCSAgICAg
ICBvdXRzdHIpOworCQkJCQlibG9ja19zdG10X25vLS07CiAJCQkJfQogCQkJCWJyZWFrOwogCkBA
IC0zNjEzLDEwICszNjE5LDIxIEBAIHNsb25pa19tZXJnZV9zZXQoU2xvbmlrU3RtdF9tZXJnZV9z
ZXQgKiBzdG10KQogCiAJCWlmKGN1cnJlbnRfdHJ5X2xldmVsID4gMCkKIAkJewotCQkJcHJpbnRm
KCIlczolZCBFcnJvcjogYSBzdWJzY3JpcHRpb24gaXMgaW4gcHJvZ3Jlc3MuICIKLQkJCQkgICAi
c2xvbmlrIGNhbiBub3Qgd2FpdCBmb3IgaXQgdG8gZmluaXNoIGluc2lkZSBvZiBhICIKLQkJCQkg
ICAidHJ5IGJsb2NrIixzdG10LT5oZHIuc3RtdF9maWxlbmFtZSwgc3RtdC0+aGRyLnN0bXRfbG5v
KTsKLQkJCXJldHVybiAtMTsKKwkJCWlmKGN1cnJlbnRfdHJ5X2xldmVsID09IDEgJiYgYmxvY2tf
c3RtdF9ubz09MSkKKwkJCXsKKwkJCQkvKioKKwkJCQkgKiBvbiB0aGUgZmlyc3QgY29tbWFuZCBv
ZiB0aGUgdHJ5IGJsb2NrIHdlIGNhbiAKKwkJCQkgKiBzdGlsbCBhIGFib3J0IHRoZSB0eG4gYW5k
IHJlc3RhcnQgaXQgbGF0ZXIsIAorCQkJCSAqIGFmdGVyIHRoZSB3YWl0IGZvciBoYXMgYmVlbiBj
b21wbGV0ZS4KKwkJCQkgKi8JCQkKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlwcmludGYoIiVz
OiVkIEVycm9yOiBhIHN1YnNjcmlwdGlvbiBpcyBpbiBwcm9ncmVzcy4gIgorCQkJCQkgICAic2xv
bmlrIGNhbiBub3Qgd2FpdCBmb3IgaXQgdG8gZmluaXNoIGluc2lkZSBvZiBhICIKKwkJCQkJICAg
InRyeSBibG9jayIsc3RtdC0+aGRyLnN0bXRfZmlsZW5hbWUsIHN0bXQtPmhkci5zdG10X2xubyk7
CisJCQkJcmV0dXJuIC0xOworCQkJfQogCQl9CiAKIAkJaWYgKGRiX2JlZ2luX3hhY3QoKFNsb25p
a1N0bXQgKikgc3RtdCwgYWRtaW5mbzEsZmFsc2UpIDwgMCkKQEAgLTUzMzcsNiArNTM1NCw4IEBA
IHN0YXRpYyBpbnQgc2xvbmlrX3N1Ym1pdEV2ZW50KFNsb25pa1N0bXQgKiBzdG10LAogCQkJCQkJ
CSAgaW50IHN1cHByZXNzX3dhaXRfZm9yKQogewogCWludCByYzsKKwlpbnQgcmVjcmVhdGVfdHhu
PTA7CisKIAlpZiAoIGxhc3RfZXZlbnRfbm9kZSA+PSAwICYmCiAJCSBsYXN0X2V2ZW50X25vZGUg
IT0gYWRtaW5mby0+bm9faWQKIAkJJiYgISBzdXBwcmVzc193YWl0X2ZvciApCkBAIC01MzQ5LDEw
ICs1MzY4LDE4IEBAIHN0YXRpYyBpbnQgc2xvbmlrX3N1Ym1pdEV2ZW50KFNsb25pa1N0bXQgKiBz
dG10LAogCQkKIAkJaWYoIGN1cnJlbnRfdHJ5X2xldmVsICE9IDApCiAJCXsKLQkJCXByaW50Zigi
JXM6JWQgRXJyb3I6IHRoZSBldmVudCBvcmlnaW4gY2FuIG5vdCBiZSBjaGFuZ2VkICIKLQkJCQkg
ICAiaW5zaWRlIG9mIGEgdHJ5IGJsb2NrIiwKLQkJCQkgICBzdG10LT5zdG10X2ZpbGVuYW1lLCBz
dG10LT5zdG10X2xubyk7Ci0JCQlyZXR1cm4gLTE7CisJCQlpZiggY3VycmVudF90cnlfbGV2ZWw9
PTEgJiYgYmxvY2tfc3RtdF9ubyA9PSAxKQorCQkJeworCQkJCXJlY3JlYXRlX3R4bj0xOworCQkJ
CWRiX3JvbGxiYWNrX3hhY3Qoc3RtdCxhZG1pbmZvKTsKKwkJCX0KKwkJCWVsc2UgCisJCQl7CisJ
CQkJcHJpbnRmKCIlczolZCBFcnJvcjogdGhlIGV2ZW50IG9yaWdpbiBjYW4gbm90IGJlIGNoYW5n
ZWQgIgorCQkJCQkgICAiaW5zaWRlIG9mIGEgdHJ5IGJsb2NrIiwKKwkJCQkJICAgc3RtdC0+c3Rt
dF9maWxlbmFtZSwgc3RtdC0+c3RtdF9sbm8pOworCQkJCXJldHVybiAtMTsKKwkJCX0KIAkJfQog
CiAJCS8qKgpAQCAtNTM2NSw2ICs1MzkyLDEwIEBAIHN0YXRpYyBpbnQgc2xvbmlrX3N1Ym1pdEV2
ZW50KFNsb25pa1N0bXQgKiBzdG10LAogCQl3YWl0X2V2ZW50LndhaXRfY29uZmlybWVkPWFkbWlu
Zm8tPm5vX2lkOwogCQl3YWl0X2V2ZW50LndhaXRfdGltZW91dD0wOwogCQlyYyA9IHNsb25pa193
YWl0X2V2ZW50KCZ3YWl0X2V2ZW50KTsKKwkJaWYgKHJlY3JlYXRlX3R4bikKKwkJeworCQkJZGJf
YmVnaW5feGFjdChzdG10LGFkbWluZm8sZmFsc2UpOworCQl9CiAJCWlmKHJjIDwgMCkgCiAJCQly
ZXR1cm4gcmM7CiAJCQpAQCAtNTQ5MSw3ICs1NTIyLDggQEAgc3RhdGljIGludCBzbG9uaWtfd2Fp
dF9jb25maWdfY2F1Z2h0dXAoU2xvbmlrQWRtSW5mbyAqIGFkbWluZm8xLAogCWludDY0KiBiZWhp
bmRfbm9kZXM9TlVMTDsKIAlpbnQgaWR4OwogCWludCBjdXJfYXJyYXlfaWR4OwotCQorCWludCBy
ZWNyZWF0ZV90eG49MDsKKwogCS8qKgogCSAqIGFuIGFycmF5IHRoYXQgc3RvcmVzIGEgbm9kZV9p
ZCwgbGFzdF9ldmVudC4KIAkgKiBvciB0aGUgbGFzdCBldmVudCBzZWVuIGZvciBlYWNoIGFkbWlu
IGNvbm5pbmZvCkBAIC01NTA1LDkgKzU1MzcsMjIgQEAgc3RhdGljIGludCBzbG9uaWtfd2FpdF9j
b25maWdfY2F1Z2h0dXAoU2xvbmlrQWRtSW5mbyAqIGFkbWluZm8xLAogCiAJaWYoIGN1cnJlbnRf
dHJ5X2xldmVsICE9IDApCiAJewotCSAgcHJpbnRmKCIlczolZCBFcnJvcjogV0FJVCBvcGVyYXRp
b24gZm9yYmlkZGVuIGluc2lkZSBhIHRyeSBibG9ja1xuIiwKLQkJCSBzdG10LT5zdG10X2ZpbGVu
YW1lLCBzdG10LT5zdG10X2xubyk7Ci0JICByZXR1cm4gLTE7CisJICBpZiggY3VycmVudF90cnlf
bGV2ZWw9PTEgJiYgYmxvY2tfc3RtdF9ubyA9PTEpCisJICB7CisJCSAgLyoqCisJCSAgICogVGhl
IGZpcnN0IHN0YXRlbWVudCBpbiB0aGUgdHJ5IGJsb2NrIHJlcXVpcmVzCisJCSAgICogYSB3YWl0
IGZvci4gIHRoZSBjb2RlIGJlbG93IHdpbGwgcm9sbGJhY2sgdGhlIHR4bi4KKwkJICAgKiB3ZSBz
ZXQgYSBmbGFnIHNvIHdlIGtub3cgdG8gY3JlYXRlIGEgbmV3IG9uZSAKKwkJICAgKiB3aGVuIHdl
IGFyZSBkb25lLgorCQkgICAqLworCQkgIHJlY3JlYXRlX3R4bj0xOworCSAgfQorCSAgZWxzZSAK
KwkgIHsKKwkJICBwcmludGYoIiVzOiVkIEVycm9yOiBXQUlUIG9wZXJhdGlvbiBmb3JiaWRkZW4g
aW5zaWRlIGEgdHJ5IGJsb2NrXG4iLAorCQkJCSBzdG10LT5zdG10X2ZpbGVuYW1lLCBzdG10LT5z
dG10X2xubyk7CisJCSAgcmV0dXJuIC0xOworCSAgfQogCX0KIAogCWZvciggY3VyQWRtSW5mbyA9
IHN0bXQtPnNjcmlwdC0+YWRtaW5mb19saXN0OwpAQCAtNTY3MCw4ICs1NzE1LDE0IEBAIHN0YXRp
YyBpbnQgc2xvbmlrX3dhaXRfY29uZmlnX2NhdWdodHVwKFNsb25pa0FkbUluZm8gKiBhZG1pbmZv
MSwKIAkgaWYocmVzdWx0ICE9IE5VTEwpCiAJCQkgUFFjbGVhcihyZXN1bHQpOyAgICAKIAkgZHN0
cmluZ190ZXJtaW5hdGUoJmV2ZW50X2xpc3QpOwotCSBkc3RyaW5nX3Rlcm1pbmF0ZSgmaXNfY2F1
Z2h0dXBfcXVlcnkpOworCSBkc3RyaW5nX3Rlcm1pbmF0ZSgmaXNfY2F1Z2h0dXBfcXVlcnkpOwkg
CiAJIGZyZWUobGFzdF9ldmVudF9hcnJheSk7CisJIAorCSBpZihyZWNyZWF0ZV90eG4pCisJIHsK
KwkJIGRiX2JlZ2luX3hhY3Qoc3RtdCxhZG1pbmZvMSxmYWxzZSk7CisJIH0KKwogCSByZXR1cm4g
MDsKIAogfQotLSAKMS43LjAuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>