- ABP Framework version: v7.2.2
- UI type: Angular
- DB provider: EF Core
- Tiered (MVC) or Identity Server Separated (Angular): yes / no
- Exception message and stack trace:
- Steps to reproduce the issue:"
Hello,
Here are the easiest steps to reproduce the issue we are going to report:
- Open the demo at https://commercial-demo.abp.io/ and log in.
- Open the home page in at least two tabs.
- Refresh all the tabs at the same time. Be as fast as you can.
- Optionally, open up the developer tools, go to the Network tab and open up console to see the requests and errors.
- Wait until a refresh token request kicks in.
At best, user is logged out in all the other tabs but one tab. At worst, a never ending request loop runs with errors in responses in all tabs. We ran into both cases. Below is a screenshot from the worst case, taken after I hit the stop button of the browser.
This is related to OpenIdDict. The same problem is reported some years ago in a comment for a two-major-previous-version of it: https://github.com/openiddict/openiddict-core/issues/783#issuecomment-528824283 . This comment is also related and very informative about the issue https://github.com/manfredsteyer/angular-oauth2-oidc/issues/218#issuecomment-414158965 .
Sometimes we lose unsaved work when working with too many tabs due to this problem. Your demo also has it, so we hope you come up with a solution, a fix or configuration, soon. Maybe catch the exception and retry for a configurable number of times to get over the race condition. Looking forward to your response.
5 Answer(s)
-
0
hi
I will confirm that. Thanks.
Your question credit was refunded.
-
0
hi
Can you share your logs.txt with me?
liming.ma@volosoft.com
-
0
Hello,
I updated the ABP CLI to the version 7.2.2 and created a new project with the below commands:
dotnet tool update -g Volo.Abp.Cli abp new Acme.BookStore -u angular -dbms PostgreSQL -csf
Then followed the steps in the original post with only two tabs. Sent the log file to your e-mail. Please note that there are JavaScript errors as well. Screenshots below.
-
0
hi
We introduced
IOpenIddictDbConcurrencyExceptionHandler
in 7.3.You can test it with 7.3 rc1
-
0
Awesome, thank you!