mirror of
https://github.com/SK-la/Ez2Lazer.git
synced 2026-03-15 03:20:27 +00:00
* Do not forcibly log out user if user retrieval fails with a server error code
This behaviour caused users to get forcibly logged out of the game
during yesterday's redis outage.
From one case where logs were provided
(https://discord.com/channels/188630481301012481/1097318920991559880/1480201862610423933):
- User had repeated timeouts on API requests; consequently, API went
into failing state
- On one of the login retries `/api/v2/me` returned a 500 with no error
details (`{"error":"null}` JSON response) which resulted in
an instant logout as per
7263551aa8/osu.Game/Online/API/APIAccess.cs (L323-L324)
This PR intends to only forcibly log the user out if the returned error
code indicates a client error. If it is a server error, the login is
preserved and a normal retry loop proceeds.
This can be tested with a local web instance via following steps:
1. Start `osu-web` and a client instance connected to it.
2. Log in on the client instance.
3. Kill (`^C`) `osu-web`.
4. Trigger a few requests in the client and wait for enough of them to
fail for the API to change to `Failing` state.
5. Apply
```diff
diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php
index db34639abf2..392a844882a 100644
--- a/app/Http/Controllers/UsersController.php
+++ b/app/Http/Controllers/UsersController.php
@@ -581,6 +581,8 @@ class UsersController extends Controller
*/
public function me($mode = null)
{
+ abort(500);
+
$user = \Auth::user();
$currentMode = $mode ?? $user->playmode;
```
6. Start `osu-web` again.
7. On master this will log the user out forcibly. On this PR, the user
will remain in `Failing` state.
8. Undo patch from step (5) (restarting web is not required).
9. On this PR, the client will be logged back in.
* Update framework
---------
Co-authored-by: Dean Herbert <pe@ppy.sh>
23 lines
1.1 KiB
XML
23 lines
1.1 KiB
XML
<Project>
|
|
<PropertyGroup>
|
|
<CodesignKey>iPhone Developer</CodesignKey>
|
|
<NullabilityInfoContextSupport>true</NullabilityInfoContextSupport>
|
|
<!-- MT7091 occurs when referencing a .framework bundle that consists of a static library.
|
|
It only warns about not copying the library to the app bundle to save space,
|
|
so there's nothing to be worried about. -->
|
|
<NoWarn>$(NoWarn);MT7091</NoWarn>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
|
|
<!-- On debug configurations, we use Mono interpreter for faster compilation. -->
|
|
<UseInterpreter>true</UseInterpreter>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
|
|
<!-- On release configurations, we use AOT compiler for optimal performance, along with Mono Interpreter as a fallback for libraries such as AutoMapper. -->
|
|
<UseInterpreter>false</UseInterpreter>
|
|
<MtouchInterpreter>-all</MtouchInterpreter>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<PackageReference Include="ppy.osu.Framework.iOS" Version="2026.310.0" />
|
|
</ItemGroup>
|
|
</Project>
|