Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-19166

AsyncProtobufLogWriter persists ProtobufLogWriter as class name for backward compatibility

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • None
    • 2.0.0-beta-2, 2.0.0
    • wal
    • None
    • Reviewed
    • For backward compatibility, AsyncProtobufLogWriter uses "ProtobufLogWriter" as writer class name and SecureAsyncProtobufLogWriter uses "SecureProtobufLogWriter" as writer class name.

    Description

      For hlog generated by 2.x, log splitting from hbase1 would result in:

      1134720 2018-02-13 10:43:57,590 WARN  [RS_LOG_REPLAY_OPS-ve0530:16020-0] regionserver.SplitLogWorker: log splitting of WALs/ve0534.halxg.cloudera.com,16020,1518546984742-splitting/ve0534.halxg.cloudera.com%2C16020%2C1518546984742.meta.1518546993545.meta failed, returning error
      1134721 java.io.IOException: Got unknown writer class: AsyncProtobufLogWriter
      1134722   at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:220)
      1134723   at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:169)
      1134724   at org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:66)
      1134725   at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:164)
      1134726   at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
      1134727   at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:267)
      1134728   at org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:853)
      1134729   at org.apache.hadoop.hbase.wal.WALSplitter.getReader(WALSplitter.java:777)
      1134730   at org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:298)
      1134731   at org.apache.hadoop.hbase.wal.WALSplitter.splitLogFile(WALSplitter.java:236)
      

      AsyncProtobufLogWriter didn't change WAL format and hence can use ProtobufLogWriter as the persisted class name so that we avoid the above during rolling upgrade.

      Attachments

        1. 19166-async-log-writer.v2.txt
          2 kB
          Ted Yu
        2. 19166-async-log-writer.v1.txt
          2 kB
          Ted Yu

        Issue Links

          Activity

            People

              yuzhihong@gmail.com Ted Yu
              yuzhihong@gmail.com Ted Yu
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: