[
https://issues.apache.org/jira/browse/CASSANDRA-15013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16768875#comment-16768875
]
Sumanth Pasupuleti commented on CASSANDRA-15013:
------------------------------------------------
Regarding the fix,
* Changes to requestExecutor queue size
a. Making it unbounded - tracking the total number of bytes we have read off
the wire but not answered
b. Keep it bounded, by giving a bigger size
I think both options are good, but to keep things simple I am inclined towards
(b) - increasing the default queue size
* When requestExecutor is full, based on the new configuration option, either
a. stop reading from incoming channels (TCP back pressure)
b. Throw OverloadedException
I think we should do both, and have a configurable as you suggest.
> Message Flusher queue can grow unbounded, potentially running JVM out of
> memory
> -------------------------------------------------------------------------------
>
> Key: CASSANDRA-15013
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15013
> Project: Cassandra
> Issue Type: Bug
> Components: Messaging/Client
> Reporter: Sumanth Pasupuleti
> Assignee: Sumanth Pasupuleti
> Priority: Major
> Fix For: 4.0, 3.0.x, 3.11.x
>
> Attachments: BlockedEpollEventLoopFromHeapDump.png,
> BlockedEpollEventLoopFromThreadDump.png, RequestExecutorQueueFull.png, heap
> dump showing each ImmediateFlusher taking upto 600MB.png,
> image-2019-02-14-17-59-50-794.png
>
>
> This is a follow-up ticket out of CASSANDRA-14855, to make the Flusher queue
> bounded, since, in the current state, items get added to the queue without
> any checks on queue size, nor with any checks on netty outbound buffer to
> check the isWritable state.
> We are seeing this issue hit our production 3.0 clusters quite often.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]