Uploaded image for project: 'Apache RocketMQ'
  1. Apache RocketMQ
  2. ROCKETMQ-98

Risk of unable to release putMessage Lock forever

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.1.0-incubating
    • Fix Version/s: 4.1.0-incubating
    • Component/s: None
    • Labels:
      None

      Description

      In current implemenation, there are two kind of locks dev can choose. If I choose reentrantLock, and lock it then put message, in this time I change the config through admin interface to use spin lock. When trying to unlock, rocketmq will try to unlock the spin lock though actually the reentrantlock is locked, this will cause the reentrantlock not able to release forever and trying to release the wrong spin lock but actully it is not locked!

      /**

      • Spin util acquired the lock.
        */
        private void lockForPutMessage() {
        if (this.defaultMessageStore.getMessageStoreConfig().isUseReentrantLockWhenPutMessage()) { putMessageNormalLock.lock(); }

        else

        Unknown macro: { boolean flag; do { flag = this.putMessageSpinLock.compareAndSet(true, false); } while (!flag); }

        }

      private void releasePutMessageLock() {
      if (this.defaultMessageStore.getMessageStoreConfig().isUseReentrantLockWhenPutMessage())

      { putMessageNormalLock.unlock(); }

      else

      { this.putMessageSpinLock.compareAndSet(false, true); }

      }

        Issue Links

          Activity

          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user asfgit closed the pull request at:

          https://github.com/apache/incubator-rocketmq/pull/61

          Show
          githubbot ASF GitHub Bot added a comment - Github user asfgit closed the pull request at: https://github.com/apache/incubator-rocketmq/pull/61
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 031347db7314b511ea7356ac892001ac1349489e in incubator-rocketmq's branch refs/heads/master from Jaskey Lam
          [ https://git-wip-us.apache.org/repos/asf?p=incubator-rocketmq.git;h=031347d ]

          ROCKETMQ-98Fix risk of unable to release putMessage Lock forever closes apache/incubator-rocketmq#61

          Show
          jira-bot ASF subversion and git services added a comment - Commit 031347db7314b511ea7356ac892001ac1349489e in incubator-rocketmq's branch refs/heads/master from Jaskey Lam [ https://git-wip-us.apache.org/repos/asf?p=incubator-rocketmq.git;h=031347d ] ROCKETMQ-98 Fix risk of unable to release putMessage Lock forever closes apache/incubator-rocketmq#61
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit b1fcf1b83b659bd03bcebf651d9e88c294a89e07 in incubator-rocketmq's branch refs/heads/develop from Jaskey Lam
          [ https://git-wip-us.apache.org/repos/asf?p=incubator-rocketmq.git;h=b1fcf1b ]

          ROCKETMQ-98Fix risk of unable to release putMessage Lock forever closes apache/incubator-rocketmq#61

          Show
          jira-bot ASF subversion and git services added a comment - Commit b1fcf1b83b659bd03bcebf651d9e88c294a89e07 in incubator-rocketmq's branch refs/heads/develop from Jaskey Lam [ https://git-wip-us.apache.org/repos/asf?p=incubator-rocketmq.git;h=b1fcf1b ] ROCKETMQ-98 Fix risk of unable to release putMessage Lock forever closes apache/incubator-rocketmq#61
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user zhouxinyu commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          +1, thanks @Jaskey

          Show
          githubbot ASF GitHub Bot added a comment - Github user zhouxinyu commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 +1, thanks @Jaskey
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user dongeforever commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          LGTM @zhouxinyu

          Show
          githubbot ASF GitHub Bot added a comment - Github user dongeforever commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 LGTM @zhouxinyu
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user Jaskey commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          @zhouxinyu @shroman @vongosling please help review

          Show
          githubbot ASF GitHub Bot added a comment - Github user Jaskey commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 @zhouxinyu @shroman @vongosling please help review
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user lizhanhui commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          +1

          Show
          githubbot ASF GitHub Bot added a comment - Github user lizhanhui commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 +1
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user coveralls commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          [![Coverage Status](https://coveralls.io/builds/10841569/badge)](https://coveralls.io/builds/10841569)

          Coverage increased (+0.1%) to 31.078% when pulling *73591b0c558007e478da62e36246917dcdc71d46 on Jaskey:ROCKETMQ-98* into *fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master*.

          Show
          githubbot ASF GitHub Bot added a comment - Github user coveralls commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 [! [Coverage Status] ( https://coveralls.io/builds/10841569/badge)](https://coveralls.io/builds/10841569 ) Coverage increased (+0.1%) to 31.078% when pulling * 73591b0c558007e478da62e36246917dcdc71d46 on Jaskey: ROCKETMQ-98 * into * fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master *.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user coveralls commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          [![Coverage Status](https://coveralls.io/builds/10841569/badge)](https://coveralls.io/builds/10841569)

          Coverage increased (+0.1%) to 31.078% when pulling *73591b0c558007e478da62e36246917dcdc71d46 on Jaskey:ROCKETMQ-98* into *fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master*.

          Show
          githubbot ASF GitHub Bot added a comment - Github user coveralls commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 [! [Coverage Status] ( https://coveralls.io/builds/10841569/badge)](https://coveralls.io/builds/10841569 ) Coverage increased (+0.1%) to 31.078% when pulling * 73591b0c558007e478da62e36246917dcdc71d46 on Jaskey: ROCKETMQ-98 * into * fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master *.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user coveralls commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          [![Coverage Status](https://coveralls.io/builds/10840731/badge)](https://coveralls.io/builds/10840731)

          Coverage decreased (-0.6%) to 30.421% when pulling *525d9fa5d6070841f3fc5f55f08dd9e5538af684 on Jaskey:ROCKETMQ-98* into *fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master*.

          Show
          githubbot ASF GitHub Bot added a comment - Github user coveralls commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 [! [Coverage Status] ( https://coveralls.io/builds/10840731/badge)](https://coveralls.io/builds/10840731 ) Coverage decreased (-0.6%) to 30.421% when pulling * 525d9fa5d6070841f3fc5f55f08dd9e5538af684 on Jaskey: ROCKETMQ-98 * into * fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master *.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user coveralls commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          [![Coverage Status](https://coveralls.io/builds/10840731/badge)](https://coveralls.io/builds/10840731)

          Coverage decreased (-0.6%) to 30.421% when pulling *525d9fa5d6070841f3fc5f55f08dd9e5538af684 on Jaskey:ROCKETMQ-98* into *fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master*.

          Show
          githubbot ASF GitHub Bot added a comment - Github user coveralls commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 [! [Coverage Status] ( https://coveralls.io/builds/10840731/badge)](https://coveralls.io/builds/10840731 ) Coverage decreased (-0.6%) to 30.421% when pulling * 525d9fa5d6070841f3fc5f55f08dd9e5538af684 on Jaskey: ROCKETMQ-98 * into * fa85abcdf6ee46e56403ddf86828a38683103fd0 on apache:master *.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user Jaskey commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          @lizhanhui
          the comments has been updated and the suggestion in the previous pr has been removed, please help review.

          Show
          githubbot ASF GitHub Bot added a comment - Github user Jaskey commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 @lizhanhui the comments has been updated and the suggestion in the previous pr has been removed, please help review.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user Jaskey commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          @lizhanhui

          Acutully , if thread numbers are large , the cpu problem should be obvious without doubt in a spin lock with `while(true)` without `sleep`.

          But I also agree that we can create a blog for this, remove the comment for me is fine , just DO NOT merge that commit.

          Actully , my very first advice is that when implementing the spin lock add `sleep(1)` when continiously fail to abatain the lock say 100 times, which should solve most of the problems.

          @Override
          public void lock() {

          int tryTimes = 0;
          boolean flag;
          do {
          if (tryTimes++ % 100 ==0 )

          { Thread.sleep(1); //fierce race condition }

          flag = this.putMessageSpinLock.compareAndSet(true, false);
          }
          while (!flag);
          }

          What's your advice
          @zhouxinyu @vongosling @lizhanhui

          Show
          githubbot ASF GitHub Bot added a comment - Github user Jaskey commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 @lizhanhui Acutully , if thread numbers are large , the cpu problem should be obvious without doubt in a spin lock with `while(true)` without `sleep`. But I also agree that we can create a blog for this, remove the comment for me is fine , just DO NOT merge that commit. Actully , my very first advice is that when implementing the spin lock add `sleep(1)` when continiously fail to abatain the lock say 100 times, which should solve most of the problems. @Override public void lock() { int tryTimes = 0; boolean flag; do { if (tryTimes++ % 100 ==0 ) { Thread.sleep(1); //fierce race condition } flag = this.putMessageSpinLock.compareAndSet(true, false); } while (!flag); } What's your advice @zhouxinyu @vongosling @lizhanhui
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user lizhanhui commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          This PR itself is OK. Abstracting the concept of`PutMessageLock` is pretty handy.

          What I suggest here is presenting the advice more formally instead of a simple inline comment. Preferably, we may create a blog, backed up with real experiment data, suggesting decision-making process between spin-lock and mutex-lock.

          Show
          githubbot ASF GitHub Bot added a comment - Github user lizhanhui commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 This PR itself is OK. Abstracting the concept of`PutMessageLock` is pretty handy. What I suggest here is presenting the advice more formally instead of a simple inline comment. Preferably, we may create a blog, backed up with real experiment data, suggesting decision-making process between spin-lock and mutex-lock.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user zhouxinyu commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          Hi, @lizhanhui @shroman do you have some review results about this PR?

          Show
          githubbot ASF GitHub Bot added a comment - Github user zhouxinyu commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 Hi, @lizhanhui @shroman do you have some review results about this PR?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user lizhanhui commented on a diff in the pull request:

          https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101709294

          — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java —
          @@ -47,6 +47,7 @@
          private boolean autoCreateSubscriptionGroup = true;
          private String messageStorePlugIn = "";

          + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig)
          — End diff –

          @Jaskey , would you carry out an experiment, figuring out when spin-lock is better and when the alternative mutex-lock wins out?

          You may compose an article based on that experiment, which should be added to [best practice](http://rocketmq.incubator.apache.org/docs/best-practice-broker/) section of RocketMQ official website. It's currently vacant!

          Show
          githubbot ASF GitHub Bot added a comment - Github user lizhanhui commented on a diff in the pull request: https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101709294 — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java — @@ -47,6 +47,7 @@ private boolean autoCreateSubscriptionGroup = true; private String messageStorePlugIn = ""; + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig) — End diff – @Jaskey , would you carry out an experiment, figuring out when spin-lock is better and when the alternative mutex-lock wins out? You may compose an article based on that experiment, which should be added to [best practice] ( http://rocketmq.incubator.apache.org/docs/best-practice-broker/ ) section of RocketMQ official website. It's currently vacant!
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user Jaskey commented on a diff in the pull request:

          https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101707096

          — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java —
          @@ -47,6 +47,7 @@
          private boolean autoCreateSubscriptionGroup = true;
          private String messageStorePlugIn = "";

          + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig)
          — End diff –

          @shroman

          This is to make hints to developer after discuss with @zhouxinyu , since if developer hopes to change the sendNums, which may means propobly very feriece race conditions which by default using spin lock is not quite good enough.

          Accoring to the current spin lock implementations, the cpu will be runnig all the time without any sleep when trying to get spin lock, which may cause cpu problem when they set sendNums to a very large number with high concurrent message writing.

          The comment to pointout that.

          Show
          githubbot ASF GitHub Bot added a comment - Github user Jaskey commented on a diff in the pull request: https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101707096 — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java — @@ -47,6 +47,7 @@ private boolean autoCreateSubscriptionGroup = true; private String messageStorePlugIn = ""; + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig) — End diff – @shroman This is to make hints to developer after discuss with @zhouxinyu , since if developer hopes to change the sendNums, which may means propobly very feriece race conditions which by default using spin lock is not quite good enough. Accoring to the current spin lock implementations, the cpu will be runnig all the time without any sleep when trying to get spin lock, which may cause cpu problem when they set sendNums to a very large number with high concurrent message writing. The comment to pointout that.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user shroman commented on a diff in the pull request:

          https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101706230

          — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java —
          @@ -47,6 +47,7 @@
          private boolean autoCreateSubscriptionGroup = true;
          private String messageStorePlugIn = "";

          + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig)
          — End diff –

          > OS is getting so smart that things may have changed considerably.
          Exactly. That is why I wouldn't make such a suggestion in the code. You cannot bet it would perform better when you switch to lock mutex.

          Show
          githubbot ASF GitHub Bot added a comment - Github user shroman commented on a diff in the pull request: https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101706230 — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java — @@ -47,6 +47,7 @@ private boolean autoCreateSubscriptionGroup = true; private String messageStorePlugIn = ""; + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig) — End diff – > OS is getting so smart that things may have changed considerably. Exactly. That is why I wouldn't make such a suggestion in the code. You cannot bet it would perform better when you switch to lock mutex.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user lizhanhui commented on a diff in the pull request:

          https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101704927

          — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java —
          @@ -47,6 +47,7 @@
          private boolean autoCreateSubscriptionGroup = true;
          private String messageStorePlugIn = "";

          + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig)
          — End diff –

          IMO, this is the tradeoff between two kinds of synchronization implementations: busy-waiting and mutex-lock; The former approach indeed wastes more CPU cycles which may be utilized to finish other tasks by scheduler, but it has its benefits too--doing so actually prioritize current data flow; Even if the latter is energy-saving, it has its cons, say, more latencies are introduced.

          Another factor is the operation system being used. OS is getting so smart that things may have changed considerably.

          If someone may provide raw data, comparing effects of these two choices under various conditions(# of cpu cores, # of send-message-threads, flush-disk-type, etc), it would be very informative and valuable.

          Show
          githubbot ASF GitHub Bot added a comment - Github user lizhanhui commented on a diff in the pull request: https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101704927 — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java — @@ -47,6 +47,7 @@ private boolean autoCreateSubscriptionGroup = true; private String messageStorePlugIn = ""; + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig) — End diff – IMO, this is the tradeoff between two kinds of synchronization implementations: busy-waiting and mutex-lock; The former approach indeed wastes more CPU cycles which may be utilized to finish other tasks by scheduler, but it has its benefits too--doing so actually prioritize current data flow; Even if the latter is energy-saving, it has its cons, say, more latencies are introduced. Another factor is the operation system being used. OS is getting so smart that things may have changed considerably. If someone may provide raw data, comparing effects of these two choices under various conditions(# of cpu cores, # of send-message-threads, flush-disk-type, etc), it would be very informative and valuable.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user shroman commented on a diff in the pull request:

          https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101699903

          — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java —
          @@ -47,6 +47,7 @@
          private boolean autoCreateSubscriptionGroup = true;
          private String messageStorePlugIn = "";

          + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig)
          — End diff –

          Is this suggestion based on observations in RocketMQ production environments?

          Show
          githubbot ASF GitHub Bot added a comment - Github user shroman commented on a diff in the pull request: https://github.com/apache/incubator-rocketmq/pull/61#discussion_r101699903 — Diff: common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java — @@ -47,6 +47,7 @@ private boolean autoCreateSubscriptionGroup = true; private String messageStorePlugIn = ""; + //thread counts for sending message, if large number threads are needed, we suggest setting useReentrantLockWhenPutMessage=true(in MessageStoreConfig) — End diff – Is this suggestion based on observations in RocketMQ production environments?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user coveralls commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          [![Coverage Status](https://coveralls.io/builds/10188144/badge)](https://coveralls.io/builds/10188144)

          Coverage decreased (-0.09%) to 31.426% when pulling *6788a928008e1a14e32b839753913ba97d5c9f21 on Jaskey:ROCKETMQ-98* into *573b22c37806a21543b90707bcce6022243a62da on apache:master*.

          Show
          githubbot ASF GitHub Bot added a comment - Github user coveralls commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 [! [Coverage Status] ( https://coveralls.io/builds/10188144/badge)](https://coveralls.io/builds/10188144 ) Coverage decreased (-0.09%) to 31.426% when pulling * 6788a928008e1a14e32b839753913ba97d5c9f21 on Jaskey: ROCKETMQ-98 * into * 573b22c37806a21543b90707bcce6022243a62da on apache:master *.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user coveralls commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          [![Coverage Status](https://coveralls.io/builds/10188144/badge)](https://coveralls.io/builds/10188144)

          Coverage decreased (-0.09%) to 31.426% when pulling *6788a928008e1a14e32b839753913ba97d5c9f21 on Jaskey:ROCKETMQ-98* into *573b22c37806a21543b90707bcce6022243a62da on apache:master*.

          Show
          githubbot ASF GitHub Bot added a comment - Github user coveralls commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 [! [Coverage Status] ( https://coveralls.io/builds/10188144/badge)](https://coveralls.io/builds/10188144 ) Coverage decreased (-0.09%) to 31.426% when pulling * 6788a928008e1a14e32b839753913ba97d5c9f21 on Jaskey: ROCKETMQ-98 * into * 573b22c37806a21543b90707bcce6022243a62da on apache:master *.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user coveralls commented on the issue:

          https://github.com/apache/incubator-rocketmq/pull/61

          [![Coverage Status](https://coveralls.io/builds/10188144/badge)](https://coveralls.io/builds/10188144)

          Coverage decreased (-0.09%) to 31.426% when pulling *6788a928008e1a14e32b839753913ba97d5c9f21 on Jaskey:ROCKETMQ-98* into *573b22c37806a21543b90707bcce6022243a62da on apache:master*.

          Show
          githubbot ASF GitHub Bot added a comment - Github user coveralls commented on the issue: https://github.com/apache/incubator-rocketmq/pull/61 [! [Coverage Status] ( https://coveralls.io/builds/10188144/badge)](https://coveralls.io/builds/10188144 ) Coverage decreased (-0.09%) to 31.426% when pulling * 6788a928008e1a14e32b839753913ba97d5c9f21 on Jaskey: ROCKETMQ-98 * into * 573b22c37806a21543b90707bcce6022243a62da on apache:master *.
          Hide
          githubbot ASF GitHub Bot added a comment -

          GitHub user Jaskey opened a pull request:

          https://github.com/apache/incubator-rocketmq/pull/61

          Fix risk of unable to release putMessage Lock forever.

          JIRA: https://issues.apache.org/jira/browse/ROCKETMQ-98

          You can merge this pull request into a Git repository by running:

          $ git pull https://github.com/Jaskey/incubator-rocketmq ROCKETMQ-98

          Alternatively you can review and apply these changes as the patch at:

          https://github.com/apache/incubator-rocketmq/pull/61.patch

          To close this pull request, make a commit to your master/trunk branch
          with (at least) the following in the commit message:

          This closes #61


          commit 7bcd7c3a0d7253695c98fc8e433375cfc9381a67
          Author: Jaskey <linjunjie1103@gmail.com>
          Date: 2017-02-15T03:05:10Z

          Fix risk of unable to release putMessage Lock forever. Unlock the exactly lock which is locked


          Show
          githubbot ASF GitHub Bot added a comment - GitHub user Jaskey opened a pull request: https://github.com/apache/incubator-rocketmq/pull/61 Fix risk of unable to release putMessage Lock forever. JIRA: https://issues.apache.org/jira/browse/ROCKETMQ-98 You can merge this pull request into a Git repository by running: $ git pull https://github.com/Jaskey/incubator-rocketmq ROCKETMQ-98 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-rocketmq/pull/61.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #61 commit 7bcd7c3a0d7253695c98fc8e433375cfc9381a67 Author: Jaskey <linjunjie1103@gmail.com> Date: 2017-02-15T03:05:10Z Fix risk of unable to release putMessage Lock forever. Unlock the exactly lock which is locked
          Hide
          Yukon yukon added a comment -

          Yes, it's a problem, and change the lock type is not expected.

          Show
          Yukon yukon added a comment - Yes, it's a problem, and change the lock type is not expected.

            People

            • Assignee:
              Jaskey Jaskey Lam
              Reporter:
              Jaskey Jaskey Lam
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development