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)

Reply via email to