[
https://issues.apache.org/jira/browse/STORM-63?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13911779#comment-13911779
]
ASF GitHub Bot commented on STORM-63:
-------------------------------------
Github user revans2 commented on a diff in the pull request:
https://github.com/apache/incubator-storm/pull/33#discussion_r10046618
--- Diff: storm-core/src/clj/backtype/storm/daemon/drpc.clj ---
@@ -59,6 +63,8 @@
(when-let [sem (@id->sem id)]
(swap! id->result assoc id
(DRPCExecutionException. "Request timed out"))
(.release sem))
+ (.remove (acquire-queue request-queues
(@id->function id)) (@id->request id))
+ (log-warn "Timeout DRPC request id: " id "
start at " start)
(cleanup id)
--- End diff --
I think there is a race condition here, although you didn't cause it.
Between releasing the sem, cleaning up the atoms and fetching the result. It
looks like it is possible on a timeout that the sem will be released but by the
time the thrift thread actually wakes up the result may have been removed,
causing a null to be returned instead of an exception being thrown.
I am mostly curious if you have seen this happen in practice, because you
are fixing issues related to timeouts. Either way I think I will file a JIRA
for this.
> timeout request stay in queue of drpc server
> --------------------------------------------
>
> Key: STORM-63
> URL: https://issues.apache.org/jira/browse/STORM-63
> Project: Apache Storm (Incubating)
> Issue Type: Improvement
> Reporter: James Xu
>
> https://github.com/nathanmarz/storm/issues/430
> When a drpc request timeout, it is not removed from the queue of drpc server.
> This will cause memory leak.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)