Closed dpix closed 6 years ago
Hi @dpix
For your concern, it's on purpose, because StackExchange.Redis
prepares all the operations before the library calls Redis to execute a bunch of operations as one transaction by calling await transaction.ExecuteAsync()
, so no need to await StringSetAsync
, SetAddAsync
etc, and this is applied according to StackExchange.Redis
docs.
Please let me know what other concerns you have, happy to help.
Hi @dpix I will close this issue, please feel free to open it again to raise more specific concerns if you have any.
I've been using this library in production for the past few weeks, and has been great, easy to set up and currently handling ~40k tokens in storage.
I have started seeing some issues with our identity provider, not sure if it is related to this library at all but just pulled the code to check it out.
Seems that you are missing a lot of await calls on async redis database transaction methods: e.g. https://github.com/AliBazzi/IdentityServer4.Contrib.RedisStore/blob/master/IdentityServer4.Contrib.RedisStore/Stores/PersistedGrantStore.cs#L64
Is this on purpose? I suspect it could well cause the transaction to get executed with only some of the actions applied. In the example above
StringSetAsync
,SetAddAsync
etc are all missing await operators.