Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-13470

GenericTestUtils$LogCapturer is flaky

Log workAgile BoardRank to TopRank to BottomAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      GenericTestUtils$LogCapturer is useful for assertions against service logs. However it should be fixed in following aspects:

      1. In the constructor, it uses the stdout appender's layout.
        Layout layout = Logger.getRootLogger().getAppender("stdout").getLayout();
        

        However, the stdout appender may be named "console" or alike which makes the constructor throw NPE. Actually the layout does not matter and we can use a default pattern layout that only captures application logs.

      2. stopCapturing() method is not working. The major reason is that the appender internal variable is never assigned and thus removing it to stop capturing makes no sense.
      3. It does not support org.slf4j.Logger which is preferred to log4j in many modules.
      4. There is no unit test for it.

      This jira is to address these.

      Attachments

        1. HADOOP-13470.002.patch
          5 kB
          Mingliang Liu
        2. HADOOP-13470.001.patch
          4 kB
          Mingliang Liu
        3. HADOOP-13470.000.patch
          4 kB
          Mingliang Liu

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            liuml07 Mingliang Liu Assign to me
            liuml07 Mingliang Liu
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment