Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-10884

EntityGroupFSTimelineStore fails to parse log files which has empty owner

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.3.1
    • 3.3.1
    • timelineserver
    • None

    Description

      Due to HADOOP-17848 - Wasb FileSystem sets owner as empty during append operation. 

      ATS1.5 fails to read such files with below error 

      
       java.lang.IllegalArgumentException: Null user
              at org.apache.hadoop.security.UserGroupInformation.createRemoteUser(UserGroupInformation.java:1271)
              at org.apache.hadoop.security.UserGroupInformation.createRemoteUser(UserGroupInformation.java:1258)
              at org.apache.hadoop.yarn.server.timeline.LogInfo.parsePath(LogInfo.java:141)
              at org.apache.hadoop.yarn.server.timeline.LogInfo.parseForStore(LogInfo.java:114)
              at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore$AppLogs.parseSummaryLogs(EntityGroupFSTimelineStore.java:701)
              at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore$AppLogs.parseSummaryLogs(EntityGroupFSTimelineStore.java:675)
              at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore$ActiveLogParser.run(EntityGroupFSTimelineStore.java:888)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)

      It gets ownership of the file to check ACL. In case of disabled ACL check, this is not required. Will suggest to add anonymous user in case of empty user.

          if (owner.isEmpty()) {
            user = "anonymous";
          } else {
            user = owner;
          }
      

      Attachments

        Issue Links

          Activity

            People

              Swathi Chandrashekar SwathiChandrashekar
              prabhujoseph Prabhu Joseph
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h
                  1h