Kishen Das created TEZ-4305:
-------------------------------
Summary: Check StreamCapabilities before using HFLUSH from
ProtoMessageWriter
Key: TEZ-4305
URL: https://issues.apache.org/jira/browse/TEZ-4305
Project: Apache Tez
Issue Type: Bug
Reporter: Kishen Das
Following exception is thrown whenever we do ProtoMessageWriter.hflush on S3,
which internally calls S3ABlockOutputStream.hflush which is not implemented and
throws java.lang.UnsupportedOperationException.
bdffe22d96ae [mdc@18060 class="yarn.YarnUncaughtExceptionHandler" level="ERROR"
thread="HistoryEventHandlingThread"] Thread Thread[HistoryEventHandlingThread,
5,main] threw an Exception.^Mjava.lang.UnsupportedOperationException: S3A
streams are not Syncable^M at
org.apache.hadoop.fs.s3a.S3ABlockOutputStream.hflush(S3ABlockOutputStream.java:657)^M
at org.apache.hadoop.fs.FS
DataOutputStream.hflush(FSDataOutputStream.java:136)^M at
org.apache.hadoop.io.SequenceFile$Writer.hflush(SequenceFile.java:1367)^M at
org.apache.tez.dag.history.logging.proto.ProtoMessageWriter.hflush(ProtoMessageWr
iter.java:64)^M at
org.apache.tez.dag.history.logging.proto.ProtoHistoryLoggingService.finishCurrentDag(ProtoHistoryLoggingService.java:239)^M
at org.apache.tez.dag.history.logging.proto.ProtoHistoryLoggingService.han
dleEvent(ProtoHistoryLoggingService.java:198)^M at
org.apache.tez.dag.history.logging.proto.ProtoHistoryLoggingService.loop(ProtoHistoryLoggingService.java:153)^M
at java.lang.Thread.run(Thread.java:748)^M
In order to fix this issue we should first check with StreamCapabilities, if
the method is supported or not, before calling it. If hlush() is not available,
we should use flush(); method.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)