> On Jan. 20, 2017, 10:11 p.m., Bruce Schuchardt wrote:
> > geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java,
> >  line 1582
> > <https://reviews.apache.org/r/55742/diff/2/?file=1610853#file1610853line1582>
> >
> >     Typically we set the interrupt bit on the thread at the end of the 
> > block of code where we ignore interrupts.  You can see examples of this in 
> > ShutdownAllRequest, SearchLoadAndWriteProcessor and other places (look for 
> > Thread.currentThread().interrupt()).
> >     
> >     Is there a reason we aren't doing that here?
> 
> Galen O'Sullivan wrote:
>     No, no particular reason. I'm not doing it because the code that was here 
> before didn't do it. I do see the interrupted flag used elsewhere, but not 
> consistently. Do we use it just to signal that we should clean up as well as 
> possible and shut down or for some reason as well?
>     
>     For example, `ShutdownAllRequest.send()` catches `InterruptedRequest` and 
> sets the interrupted flag, but then it immediately tries a `Thread.sleep()` 
> and discards any `InterruptedRequest` that throws:
>     ```
>         if (interrupted) {
>           Thread.currentThread().interrupt();
>         }
>     
>         try {
>           Thread.sleep(3 * SLEEP_TIME_BEFORE_DISCONNECT_DS);
>         } catch (InterruptedException e) {
>         }
>     ```

I've opened a ticket for `ShutdownAllRequest.send`:
https://issues.apache.org/jira/browse/GEODE-2348


- Galen


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


On Jan. 24, 2017, 10 p.m., Galen O'Sullivan wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/55742/
> -----------------------------------------------------------
> 
> (Updated Jan. 24, 2017, 10 p.m.)
> 
> 
> Review request for geode, Bruce Schuchardt, Hitesh Khamesra, and Udo 
> Kohlmeyer.
> 
> 
> Bugs: GEODE-2324
>     https://issues.apache.org/jira/browse/GEODE-2324
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> [GEODE-2324] fix AcceptorImpl cleanup.
> 
> * Catch InterruptedException so cleanup continues.
> * Remove top-level exception handler to avoid similar mistakes in the future.
> * Fix a synchronization bug that could cause AcceptorImpl to try to shut down 
> twice.
> * Fix what looks like a bug where if closing the socket throws and 
> IOException, we fail to shut anything else down, though we still have 
> ourselves marked as shut down.
> 
> I'm a little skeptical of whether we're waiting at all for the queue to shut 
> down, as the thread could have been marked as interrupted for quite a while 
> before and never noticed it until the thread got parked. This may warrant 
> more investigation.
> 
> 
> Diffs
> -----
> 
>   
> geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImpl.java
>  060683de6 
>   
> geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/AcceptorImplObserver.java
>  PRE-CREATION 
>   
> geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplDUnitTest.java
>  PRE-CREATION 
>   
> geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplJUnitTest.java
>  7aa11b7ca 
> 
> Diff: https://reviews.apache.org/r/55742/diff/
> 
> 
> Testing
> -------
> 
> precheckin passed on (3), will run on (5).
> 
> 
> Thanks,
> 
> Galen O'Sullivan
> 
>

Reply via email to