127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> XGROUP CREATE x g 0 MKSTREAM
OK
127.0.0.1:6379> XADD x 18446744073709551615-18446744073709551615 f v
"18446744073709551615-18446744073709551615"
127.0.0.1:6379> XREADGROUP GROUP g c STREAMS x 18446744073709551615-18446744073709551615
1) 1) "x"
   2) 1) 1) "18446744073709551615-18446744073709551615"
         2) 1) "f"
            2) "v"

the entry 18446744073709551615-18446744073709551615 is not in any PEL so XREADGROUP should have replied with an empty array

the problem is caused because the code:

/* We use just the maximum ID to signal this is a ">" ID, anyway
 * the code handling the blocking clients will have to update the
 * ID later in order to match the changing consumer group last ID. */
 ids[id_idx].ms = UINT64_MAX;
 ids[id_idx].seq = UINT64_MAX;

assumes that 18446744073709551615-18446744073709551615 is an invalid ID

the obvious solution is to decide that 18446744073709551615-18446744073709551615 is indeed invalid (like 0-0 is) but that would break backward compatibility - arguably it's a very rare case so maybe we don't mind

Comment From: guybe7

@antirez WDYT?