Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-4863

Querying window store may return unwanted keys

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 0.10.2.0
    • 0.10.2.1, 0.11.0.0
    • streams
    • None

    Description

      Using variable length keys in a window store may cause unwanted results to be returned when querying certain ranges.

      Below is a test case for RocksDBWindowStoreTest that shows the problem. It fails, returning [0001, 0003, 0002, 0004, 0005] instead of [0001, 0003, 0005].

      @Test
      public void testPutAndFetchSanity() throws IOException {
          final RocksDBWindowStoreSupplier<String, String> supplier =
                  new RocksDBWindowStoreSupplier<>(
                          "window", 60 * 1000L * 2, 3,
                          true, Serdes.String(), Serdes.String(),
                          windowSize, true, Collections.<String, String>emptyMap(), false
                  );
          final WindowStore<String, String> store = supplier.get();
          store.init(context, store);
      
          try {
              store.put("a", "0001", 0);
              store.put("aa", "0002", 0);
              store.put("a", "0003", 1);
              store.put("aa", "0004", 1);
              store.put("a", "0005", 60000);
      
              assertEquals(Utils.mkList("0001", "0003", "0005"), toList(store.fetch("a", 0, Long.MAX_VALUE)));
          } finally {
              store.close();
          }
      }
      

      Attachments

        Activity

          People

            damianguy Damian Guy
            xvrl Xavier Léauté
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: