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

AsyncProtobufLogWriter persists ProtobufLogWriter as class name for backward compatibility

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.0-beta-2, 2.0.0
    • Component/s: wal
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      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

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: