Router causes infinite recursion under certain rare conditions
Description
Release Notes
Fixes an issue that causes worker threads to go into an infinite recursion while exceptions are being thrown in channel handlers.
is duplicated by
Activity
Show:

Ali Anwar October 29, 2015 at 6:23 PMEdited
Merged to release branches:
https://github.com/caskdata/cdap/pull/4422 release/2.8
https://github.com/caskdata/cdap/pull/4423 release/3.0
https://github.com/caskdata/cdap/pull/4424 release/3.1
https://github.com/caskdata/cdap/pull/4421 release/3.2
Merged to develop (for release/3.3):
https://github.com/caskdata/cdap/pull/4489
Fixed
Pinned fields
Click on the next to a field label to start pinning.
Created October 23, 2015 at 8:42 AM
Updated December 8, 2015 at 6:53 PM
Resolved October 29, 2015 at 6:23 PM
Router worker thread could end up in an infinite stack trace and fill up the disk in some scenarios where the channel is not closed and when there are exceptions in channels.write call. The side effect of this will be one or more worker thread will be tied up in the infinite recursion and the disks will fill up. The following code fragment is responsible for the call.
The fix is to detect the recursed call and not calling Channels.write during recursion.