You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Kyle Purtell (Jira)" <ji...@apache.org> on 2019/10/07 18:25:00 UTC

[jira] [Updated] (HBASE-21492) CellCodec Written To WAL Before It's Verified

     [ https://issues.apache.org/jira/browse/HBASE-21492?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Kyle Purtell updated HBASE-21492:
----------------------------------------
    Fix Version/s:     (was: 1.5.0)

> CellCodec Written To WAL Before It's Verified
> ---------------------------------------------
>
>                 Key: HBASE-21492
>                 URL: https://issues.apache.org/jira/browse/HBASE-21492
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>    Affects Versions: 1.2.7, 2.0.2
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Critical
>             Fix For: 3.0.0, 2.2.0, 2.1.2, 1.2.10, 2.0.4, 1.4.10, 1.3.4
>
>         Attachments: HBASE-21492-branch-1.patch, HBASE-21492.1.patch, HBASE-21492.2.patch, HBASE-21492.2.patch
>
>
> The cell codec class name is written into the WAL file, but the cell codec class is not actually verified to exist.  Therefore, users can inadvertently configure an invalid class name and it will be recorded into the WAL file.  At that point, the WAL file becomes unreadable and blocks processing of all other WAL files.
> {code:java|title=AbstractProtobufLogWriter.java}
>   private WALHeader buildWALHeader0(Configuration conf, WALHeader.Builder builder) {
>     if (!builder.hasWriterClsName()) {
>       builder.setWriterClsName(getWriterClassName());
>     }
>     if (!builder.hasCellCodecClsName()) {
>       builder.setCellCodecClsName(WALCellCodec.getWALCellCodecClass(conf));
>     }
>     return builder.build();
>   }
> {code}
> https://github.com/apache/hbase/blob/025ddce868eb06b4072b5152c5ffae5a01e7ae30/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java#L78-L86



--
This message was sent by Atlassian Jira
(v8.3.4#803005)