@Test(expected = DoNotRetryIOException.class)
  public void testWithReverseScan() throws Exception {
    try (Connection con = TEST_UTIL.getConnection(); Admin admin = con.getAdmin()) {
      TableName tableName = TableName.valueOf(name.getMethodName());

      TableDescriptor tableDescriptor = TableDescriptorBuilder.newBuilder(tableName)
        .setColumnFamily(ColumnFamilyDescriptorBuilder.of("cf1"))
        .setColumnFamily(ColumnFamilyDescriptorBuilder.of("cf2")).build();
      admin.createTable(tableDescriptor);

      try (Table table = con.getTable(tableName)) {
        SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("cf1"),
          Bytes.toBytes("col"), CompareOperator.EQUAL, Bytes.toBytes("val"));
        filter.setFilterIfMissing(true);

        // Reverse scan with loading CFs on demand
        Scan scan = new Scan();
        scan.setFilter(filter);
        scan.setReversed(true);
        scan.setLoadColumnFamiliesOnDemand(true);

        try (ResultScanner scanner = table.getScanner(scan)) {
          // DoNotRetryIOException should occur
          scanner.next();
        }
      }
    }
  }
Command line interface:
@throws IOException if there is a bug while reading from disk
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java