Hi Robert,

Yes, lots of buffering in the heap. State backend is JobManager with Heap 
backend, and I disabled checkpointing to debug this issue.

I found a bug in my apps during restart. On a restart, the app is reading Kafka 
from earliest offset with days of data and its getting burst of stream with 
very fast moving timestamp. My apps didn’t schedule the ProcessFunction timer 
to the latest timer due to a bug from the elements burst and its causing 
pipeline to back pressure, as a result the watermark is also get stuck which is 
causing lots of buffering.

Thanks for your tips, it was helpful.

—
Fritz

> On May 23, 2017, at 6:02 AM, Robert Metzger <rmetz...@apache.org> wrote:
> 
> Hi Fritz,
> 
> what are you doing on your task manager?
> Are you keeping many objects on the heap in your application?
> Are you using any window operators of Flink? If so, which statebackend are 
> you using?
> 
> 
> 
> On Tue, May 23, 2017 at 7:02 AM, Fritz Budiyanto <fbudi...@icloud.com 
> <mailto:fbudi...@icloud.com>> wrote:
> Hi Robert,
> 
> Thanks Robert, I’ll start using the logger. 
> 
> I didn’t pay attention whether the error occur when I accessed the log from 
> job manager.
> I will do that in my next test.
> 
> Anyone has any suggestion on how to debug out of memory exception on flink 
> jm/tm ?
> 
> —
> Fritz
> 
> 
>> On May 22, 2017, at 12:04 PM, Robert Metzger <rmetz...@apache.org 
>> <mailto:rmetz...@apache.org>> wrote:
>> 
>> Hi Fritz,
>> 
>> The TaskManagers are not buffering all stdout for the webinterface (at least 
>> I'm not aware of that). Did the error occur when accessing the log from the 
>> JobManager?
>> Flinks web front end lazily loads the logs from the taskmanagers.
>> 
>> The suggested method for logging is to use slf4j for logging, so the 
>> following code snippets :
>> 
>> import org.slf4j.Logger;
>> import org.slf4j.LoggerFactory;
>> private static final Logger LOG = LoggerFactory.getLogger(MyJob.class);
>> Then you can do stuff like:
>> LOG.info("My log statement");
>> Also, using a logging Framework will allow you to redirect the log contents 
>> of your job to a separate file.
>> 
>> But I'm not sure if the logging is really causing the TaskManager JVMs to 
>> die ...
>> 
>> 
>> On Sat, May 20, 2017 at 3:12 AM, Fritz Budiyanto <fbudi...@icloud.com 
>> <mailto:fbudi...@icloud.com>> wrote:
>> Hi,
>> 
>> I notice that when I enabled DataStreamSink’s print() for debugging, (kinda 
>> excessive printing), its causing java Heap out of memory.
>> Possibly the Task Manager is buffering all stdout for the WebInterface? I 
>> haven’t spent time debugging it, but I wonder if this is expected where 
>> massive print will exhaust java heap, and I’m using standalone mode.
>> 
>> Is there a way to disable this memory logging for web interface, and just 
>> redirect stdout to file instead with file rotation?
>> What is the suggested method of logging ?
>> 
>> —
>> Fritz
>> 
> 
> 

Reply via email to