You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Johan Stuyts (JIRA)" <ji...@apache.org> on 2008/05/16 23:49:55 UTC

[jira] Commented: (THRIFT-11) TThreadPoolServer won't shut down gracefully

    [ https://issues.apache.org/jira/browse/THRIFT-11?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12597630#action_12597630 ] 

Johan Stuyts commented on THRIFT-11:
------------------------------------

IMHO your first patch was fine. {{AtomicBoolean}} is nothing more than an object wrapper around a volatile {{int}}. So basically it is the same as using a volatile {{boolean}}.

Using {{AtomicBoolean}} also creates a dependency on Java 1.6 which might not be desirable.

I do not know why {{AtomicBoolean}} was introduced in 1.6, but by looking at the code I think it allows you to atomically get and set, and compare and set a boolean (without using synchronization?). Both these functions are not used by your second patch.

> TThreadPoolServer won't shut down gracefully
> --------------------------------------------
>
>                 Key: THRIFT-11
>                 URL: https://issues.apache.org/jira/browse/THRIFT-11
>             Project: Thrift
>          Issue Type: Bug
>          Components: Library (Java)
>            Reporter: Bryan Duxbury
>         Attachments: graceful_shutdown-v2.patch, graceful_shutdown.patch
>
>
> The way I'm reading TThreadPoolServer.java, it looks like the stop() method's intent is to let the server shut down gracefully. However, because of the way that the WorkerProcess work loop is structured, if the clients are consistently making requests, the requests will keep getting served until the ThreadPoolExecutor's shutdown timeout expires, at which point the client threads will be forcibly aborted. This is because the innermost while loop around processor.process does not check the server's shutdown_ flag.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.