Conversation
I'm seeing a few issues here: 1. The internal encoding has changed 1 spot to listpack, which is correct from redis/redis#11303, but is missing in the docs at https://redis.io/commands/object-encoding/ (fixed in tests themselves) 1. The `HackyGetPerf` reliably returns 0 now, regardless of how long has passed (e.g. upping iterations tremendously)...this may legit be bugged. 1. `StreamAutoClaim_IncludesDeletedMessageId` expectations are broken, not sure what to make of this yet but it's an odd change to hit between 7.0 and 7.2 versions.
|
cc @slorello89 for heads up on these, may affect others! |
| var result = (long)db.ScriptEvaluate(@" | ||
| redis.call('psetex', KEYS[1], 60000, 'timing') | ||
| for i = 1,5000 do | ||
| for i = 1,500000 do |
There was a problem hiding this comment.
@NickCraver What is the reason for changing the number of iterations for the loop?
There was a problem hiding this comment.
This was only testing "did it complete so fast we couldn't measure?" but it's always zero...so can ignore this change just demonstrating that even with ~80ms elapsed locally, it reports zero.
There was a problem hiding this comment.
@NickCraver - it looks like the TTL clock isn't running in the RC version of Redis. @itamarhaber - have you seen/heard anything about this?
There was a problem hiding this comment.
to be clear - only during lua script execution (catches up when the script exits)
|
Hey Nick - the error your seeing here is caused by slightly different behavior between the Release Candidate and the actual release of Redis 7: Might seem innocuous but when you take it in context with: Tells you what's going on, the test is sending the XAUTOCLAIM with a COUNT of 1 - it attempts to claim the deleted message. THAT COUNTS as its one message it will attempt to claim, and it breaks off. It returns the next message as the place to start the next autoclaim, returns a null entry as the actual messages claimed, and returns the deleted message in the third spot. The fix is simple enough if you want me to push it (just change the counts to 2 :) ) |
|
@slorello89 If the test is wrong and server is right, absolutely - would be much appreciated. I'd love for tests to be wrong here :) |
|
Insofar as WRT the other issue with the perf test - this is a BC coming to Redis 7.2: redis/redis#10182 See the Breaking section of the release notes - basically what's happening is that Redis 7.2 is freezing the clock during script execution. Consequently, that test is no longer correct and will always fail. Obviously there's a couple ways to remediate, but I'm not entirely sure what that test is really testing? Anyway - hopefully this is helpful |
|
@slorello89 very helpful - thank you!! @mgravell any thoughts about the perf test/intent? For quick context, this is the entire content of the test: [Fact]
public void HackyGetPerf()
{
using var conn = GetScriptConn();
var key = Me();
var db = conn.GetDatabase();
db.StringSet(key + "foo", "bar", flags: CommandFlags.FireAndForget);
var result = (long)db.ScriptEvaluate(@"
redis.call('psetex', KEYS[1], 60000, 'timing')
for i = 1,5000 do
redis.call('set', 'ignore','abc')
end
local timeTaken = 60000 - redis.call('pttl', KEYS[1])
redis.call('del', KEYS[1])
return timeTaken
", new RedisKey[] { key }, null);
Log(result.ToString());
Assert.True(result > 0);
}The test originally comes from a Booksleeve migration 9 years ago...I'm leaning towards "delete it": c002a00 |
mgravell
left a comment
There was a problem hiding this comment.
Lgtm; fine with deleting the hack perf thing
I'm seeing a few issues here that we need to resolve for the upcoming Redis 7.2 release:
HackyGetPerfreliably returns 0 now, regardless of how long has passed (e.g. upping iterations tremendously)...this may legit be bugged.StreamAutoClaim_IncludesDeletedMessageIdexpectations are broken, not sure what to make of this yet but it's an odd change to hit between 7.0 and 7.2 versions.Note: no release notes because these are all test tweaks.