[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13277567#comment-13277567
 ] 

[email protected] commented on BOOKKEEPER-146:
----------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/5144/#review7950
-----------------------------------------------------------


thanks Ivan. the patch seems great. just some slight comments.


hedwig-client/src/main/java/org/apache/hedwig/client/netty/HedwigPublisher.java
<https://reviews.apache.org/r/5144/#comment17288>

    it would be better to move line 'closed = true;' to the top of close(). 
because you used closed to avoid new channel being storeHost2ChannelMapping.



hedwig-client/src/main/java/org/apache/hedwig/client/netty/HedwigSubscriber.java
<https://reviews.apache.org/r/5144/#comment17289>

    do we need to put the closing logic in closeLock synchronization block?
    
    if we had acquired closeLock and set closed to true, no channel could be 
put into topicSubscriber2Channel again.


- Sijie


On 2012-05-16 15:48:50, Ivan Kelly wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/5144/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2012-05-16 15:48:50)
bq.  
bq.  
bq.  Review request for bookkeeper.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  It's been running in a loop for 30 minutes now, and doesn't seem to be 
hanging. Main problem was that even after the hedwig client was closed, a 
subscription request could succeed and add a channel to the channel list, 
though hedwig client had already moved by the point at which it closed them.
bq.  
bq.  
bq.  This addresses bug BOOKKEEPER-146.
bq.      https://issues.apache.org/jira/browse/BOOKKEEPER-146
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    
hedwig-client/src/main/java/org/apache/hedwig/client/netty/HedwigSubscriber.java
 0c8634c 
bq.    
hedwig-client/src/main/java/org/apache/hedwig/client/netty/WriteCallback.java 
a8552f4 
bq.    
hedwig-client/src/main/java/org/apache/hedwig/client/netty/HedwigPublisher.java 
603766c 
bq.    
hedwig-client/src/main/java/org/apache/hedwig/client/netty/ConnectCallback.java 
f5077b0 
bq.    
hedwig-client/src/main/java/org/apache/hedwig/client/netty/HedwigClientImpl.java
 806cdef 
bq.  
bq.  Diff: https://reviews.apache.org/r/5144/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ivan
bq.  
bq.


                
> TestConcurrentTopicAcquisition sometimes hangs
> ----------------------------------------------
>
>                 Key: BOOKKEEPER-146
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-146
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>            Priority: Blocker
>             Fix For: 4.1.0
>
>         Attachments: BOOKKEEPER-146.diff
>
>
> to repro
> {code}
> while [ $? = 0 ]; do mvn test -Dtest=TestConcurrentTopicAcquisition; done
> {code}
> The stacktrace where it hangs looks very like BOOKKEEPER-5
> {code}
> "main" prio=5 tid=102801000 nid=0x100601000 waiting on condition [1005ff000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>       at sun.misc.Unsafe.park(Native Method)
>       - parking to wait for  <7bd8e1090> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>       at 
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
>       at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
>       at 
> java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1253)
>       at 
> org.jboss.netty.util.internal.ExecutorUtil.terminate(ExecutorUtil.java:107)
>       at 
> org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.releaseExternalResources(NioClientSocketChannelFactory.java:143)
>       at 
> org.apache.hedwig.client.netty.HedwigClientImpl.close(HedwigClientImpl.java:234)
>       at org.apache.hedwig.client.HedwigClient.close(HedwigClient.java:70)
>       at 
> org.apache.hedwig.server.topics.TestConcurrentTopicAcquisition.tearDown(TestConcurrentTopicAcquisition.java:99)
>       at junit.framework.TestCase.runBare(TestCase.java:140)
>       at junit.framework.TestResult$1.protect(TestResult.java:110)
>       at junit.framework.TestResult.runProtected(TestResult.java:128)
>       at junit.framework.TestResult.run(TestResult.java:113)
>       at junit.framework.TestCase.run(TestCase.java:124)
>       at junit.framework.TestSuite.runTest(TestSuite.java:232)
>       at junit.framework.TestSuite.run(TestSuite.java:227)
>       at 
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to