-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create, join, and part multiplayer rooms only via the multiplayer server #31637
Conversation
Relevant functionality has been removed from `RoomManager` in the process.
In particular, when the exception is: `AggregateException { AggregateException { HubException } }`, then the existing code will only unwrap the first aggregate exception. The overlay's code was copied from the extension so both have been adjusted here.
As a heads up, I'll review this but won't merge until after the imminent release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initial pass, have not attempted to run yet
@@ -361,14 +361,21 @@ public override bool OnExiting(ScreenExitEvent e) | |||
if (!ensureExitConfirmed()) | |||
return true; | |||
|
|||
RoomManager?.PartRoom(); | |||
if (Room.RoomID != null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: What does this null check do?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The null check itself is probably because this screen is used to do the setup, prior to the room being created. I foresee a future where we move the setup stage out of this screen, as it unnecessarily complicates things.
@@ -15,6 +15,9 @@ public class CreateRoomRequest : APIRequest<APICreatedRoom> | |||
public CreateRoomRequest(Room room) | |||
{ | |||
Room = room; | |||
|
|||
// Also copy back to the source model, since it is likely to have been stored elsewhere. | |||
Success += r => Room.CopyFrom(r); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remark, action not expected: I get that this was copied from RoomManager
, but somehow it feels much dodgier to have things work this way. With this the only thing that guarantees full correctness of behaviour is the order of execution of event handlers in the invocation list.
Possibly the way to resolve that would be to split off "this is a room to be created" from "this is an existing room" in terms of models used, but I can't exactly estimate the scope of such an undertaking.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With this the only thing that guarantees full correctness of behaviour is the order of execution of event handlers in the invocation list.
Which can't really be relied on anyway. For example RoomID
is updated first and used to determine when setup is in progress, with Playlist
updated later on and used to pick out the initial selected item. This results in some scheduling awkwardness in screens:
osu/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs
Lines 111 to 119 in b776993
private void updateSetupState() | |
{ | |
if (Room.RoomID != null) | |
{ | |
// Set the first playlist item. | |
// This is scheduled since updating the room and playlist may happen in an arbitrary order (via Room.CopyFrom()). | |
Schedule(() => SelectedItem.Value = Room.Playlist.FirstOrDefault()); | |
} | |
} |
What I would probably do other than this is to manually Room.CopyFrom()
on success wherever required, which should only be a handful of places (from memory) - lounge, playlists, playlists creation, and some places in tests. That said, I would like to do that after #31866, which further touches on all of this - see for instance PlaylistsRoomUpdater
which does room.CopyFrom()
internally rather than relying on the request to do it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For example
RoomID
is updated first and used to determine when setup is in progress, withPlaylist
updated later on and used to pick out the initial selected item. This results in some scheduling awkwardness in screens:
That snippet you linked there talks about the order of copying properties though, right? My concern is specifically with the CopyFrom()
invocation being the first Success
callback to run. If it were to - for whatever reason - run after any other Success
callback, the callbacks that would run prior to it would see stale data, which was not previously possible because RoomManager
was responsible for presenting the Room
instance after CopyFrom()
.
The manual CopyFrom()
plan sounds tolerable though, so I don't see anything else needing follow-up in this review thread.
if (message.StartsWith(not_found_prefix, StringComparison.Ordinal)) | ||
{ | ||
ErrorText.Text = "The selected beatmap is not available online."; | ||
room.Playlist.SingleOrDefault()?.MarkInvalid(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slight concern: This change bothers me because it assumes that room.Playlist.SingleOrDefault()
is going to be the same object reference as the UI-facing, displayed, playlist item, and that feels like a brittle assumption.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is always the case for multiplayer for now. Unsure if this going to change or if it's going to go in the opposite direction - rooms being able to be started with no items in the playlist (matchmaking will eventually allow that, so it's not a stretch and would be a UX improvement here).
osu/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs
Lines 114 to 118 in 66b8b52
else | |
{ | |
room.Playlist = [item]; | |
this.Exit(); | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not entirely sure where this is going to go further but at this point I have no real objections. Tested this quite a fair bit with staging, including testing with simulated network latency & packet drop rates up to 40%, and saw nothing I'd be concerned about.
@peppy not sure if you want to put an eye on this before I click any buttons?
I'll give it a quick one-over today. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As commented (don't mind this review, just testing a probable github bug)
Good catch. That was relying on the API room getting updated via the web request, relevant code was missing from |
Interops seemingly aren't working as expected server-side. Attempting to change to a beatmap which doesn't exist on server takes ~5 seconds to respond: osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: Multiplayer[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp [user:78] 78 creating room
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971282
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971282
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 28.2503ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 28.5864ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971282 failed, retrying (2 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971282 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971283
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971283
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 9.4779ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 10.8745ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971283 failed, retrying (1 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971283 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971284
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971284
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 11.2103ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 11.5505ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971284 failed, retrying (0 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971284 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971285
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971285
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 9.863ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 10.1414ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: Multiplayer[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp [user:78] Failed to invoke hub method: CreateRoom(RoomID:0 Host: Users:0 State:Open Settings: [Name:wang's awesome room Password:no Type:HeadToHead Item:0 Queue:HostOnly Start:00:00:00 AutoSkip:False])
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971285 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.CreateRoomAsync(Int32 hostUserId, MultiplayerRoom room) in /app/Services/SharedInterop.cs:line 120
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Hubs.Multiplayer.MultiplayerHub.CreateRoom(MultiplayerRoom room) in /app/Hubs/Multiplayer/MultiplayerHub.cs:line 53
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at lambda_method41(Closure, Object)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object] arguments)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.ConcurrentConnectionLimiter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/ConcurrentConnectionLimiter.cs:line 106
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.LoggingHubFilter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/LoggingHubFilter.cs:line 30
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher[8]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Failed to invoke hub method 'CreateRoom'.
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971285 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.CreateRoomAsync(Int32 hostUserId, MultiplayerRoom room) in /app/Services/SharedInterop.cs:line 120
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Hubs.Multiplayer.MultiplayerHub.CreateRoom(MultiplayerRoom room) in /app/Hubs/Multiplayer/MultiplayerHub.cs:line 53
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at lambda_method41(Closure, Object)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object] arguments)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.ConcurrentConnectionLimiter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/ConcurrentConnectionLimiter.cs:line 106
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.LoggingHubFilter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/LoggingHubFilter.cs:line 30
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.<Invoke>g__ExecuteInvocation|18_0(DefaultHubDispatcher`1 dispatcher, ObjectMethodExecutor methodExecutor, THub hub, Object] arguments, AsyncServiceScope scope, IHubActivator`1 hubActivator, HubConnectionContext connection, HubMethodInvocationMessage hubMethodInvocationMessage, Boolean isStreamCall)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: MetadataBroadcaster[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Polled beatmap changes up to last queue id 26419
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: MetadataBroadcaster[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Polled beatmap changes up to last queue id 26419
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: Multiplayer[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp [user:78] 78 creating room
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 10.2517ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 10.5046ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293 failed, retrying (2 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 10.2928ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 10.6072ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294 failed, retrying (1 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 8.5921ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 8.9952ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295 failed, retrying (0 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 8.7695ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 9.0421ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: Multiplayer[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp [user:78] Failed to invoke hub method: CreateRoom(RoomID:0 Host: Users:0 State:Open Settings: [Name:wang's awesome room Password:no Type:HeadToHead Item:0 Queue:HostOnly Start:00:00:00 AutoSkip:False])
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.CreateRoomAsync(Int32 hostUserId, MultiplayerRoom room) in /app/Services/SharedInterop.cs:line 120
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Hubs.Multiplayer.MultiplayerHub.CreateRoom(MultiplayerRoom room) in /app/Hubs/Multiplayer/MultiplayerHub.cs:line 53
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at lambda_method41(Closure, Object)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object] arguments)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.ConcurrentConnectionLimiter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/ConcurrentConnectionLimiter.cs:line 106
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.LoggingHubFilter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/LoggingHubFilter.cs:line 30
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher[8]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Failed to invoke hub method 'CreateRoom'.
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.CreateRoomAsync(Int32 hostUserId, MultiplayerRoom room) in /app/Services/SharedInterop.cs:line 120
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Hubs.Multiplayer.MultiplayerHub.CreateRoom(MultiplayerRoom room) in /app/Hubs/Multiplayer/MultiplayerHub.cs:line 53
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at lambda_method41(Closure, Object)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object] arguments)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.ConcurrentConnectionLimiter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/ConcurrentConnectionLimiter.cs:line 106
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.LoggingHubFilter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/LoggingHubFilter.cs:line 30
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.<Invoke>g__ExecuteInvocation|18_0(DefaultHubDispatcher`1 dispatcher, ObjectMethodExecutor methodExecutor, THub hub, Object] arguments, AsyncServiceScope scope, IHubActivator`1 hubActivator, HubConnectionContext connection, HubMethodInvocationMessage hubMethodInvocationMessage, Boolean isStreamCall)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: MetadataBroadcaster[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Polled beatmap changes up to last queue id 26419
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.CreateRoomAsync(Int32 hostUserId, MultiplayerRoom room) in /app/Services/SharedInterop.cs:line 120
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Hubs.Multiplayer.MultiplayerHub.CreateRoom(MultiplayerRoom room) in /app/Hubs/Multiplayer/MultiplayerHub.cs:line 53
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at lambda_method41(Closure, Object)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object] arguments)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.ConcurrentConnectionLimiter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/ConcurrentConnectionLimiter.cs:line 106
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.LoggingHubFilter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/LoggingHubFilter.cs:line 30
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.<Invoke>g__ExecuteInvocation|18_0(DefaultHubDispatcher`1 dispatcher, ObjectMethodExecutor methodExecutor, THub hub, Object] arguments, AsyncServiceScope scope, IHubActivator`1 hubActivator, HubConnectionContext connection, HubMethodInvocationMessage hubMethodInvocationMessage, Boolean isStreamCall)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: MetadataBroadcaster[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Polled beatmap changes up to last queue id 26419
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: MetadataBroadcaster[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Polled beatmap changes up to last queue id 26419
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: Multiplayer[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp [user:78] 78 creating room
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 10.2517ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 10.5046ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293 failed, retrying (2 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971293 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 10.2928ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 10.6072ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294 failed, retrying (1 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971294 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 8.5921ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 8.9952ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: LIO[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295 failed, retrying (0 remaining)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971295 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Start processing HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[100]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Sending HTTP request POST http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.ClientHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Received HTTP response headers after 8.7695ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: System.Net.Http.HttpClient.Default.LogicalHandler[101]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp End processing HTTP request after 9.0421ms - 422
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: Multiplayer[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp [user:78] Failed to invoke hub method: CreateRoom(RoomID:0 Host: Users:0 State:Open Settings: [Name:wang's awesome room Password:no Type:HeadToHead Item:0 Queue:HostOnly Start:00:00:00 AutoSkip:False])
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.CreateRoomAsync(Int32 hostUserId, MultiplayerRoom room) in /app/Services/SharedInterop.cs:line 120
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Hubs.Multiplayer.MultiplayerHub.CreateRoom(MultiplayerRoom room) in /app/Hubs/Multiplayer/MultiplayerHub.cs:line 53
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at lambda_method41(Closure, Object)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object] arguments)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.ConcurrentConnectionLimiter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/ConcurrentConnectionLimiter.cs:line 106
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.LoggingHubFilter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/LoggingHubFilter.cs:line 30
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp fail: Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher[8]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Failed to invoke hub method 'CreateRoom'.
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp osu.Server.Spectator.Services.SharedInterop+SharedInteropRequestFailedException: beatmaps not found: 4939977
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp ---> System.Exception: Shared interop request to http://osu-web-octane/_lio/multiplayer/rooms?timestamp=1740971296 failed with UnprocessableEntity (Unprocessable Entity).
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp --- End of inner exception stack trace ---
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.runCommand(HttpMethod method, String command, Object postObject) in /app/Services/SharedInterop.cs:line 92
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Services.SharedInterop.CreateRoomAsync(Int32 hostUserId, MultiplayerRoom room) in /app/Services/SharedInterop.cs:line 120
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.Hubs.Multiplayer.MultiplayerHub.CreateRoom(MultiplayerRoom room) in /app/Hubs/Multiplayer/MultiplayerHub.cs:line 53
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at lambda_method41(Closure, Object)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object] arguments)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.ConcurrentConnectionLimiter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/ConcurrentConnectionLimiter.cs:line 106
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at osu.Server.Spectator.LoggingHubFilter.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next) in /app/LoggingHubFilter.cs:line 30
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.InvokeMethodAsync(HubInvocationContext invocationContext, Func`2 next)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.<Invoke>g__ExecuteInvocation|18_0(DefaultHubDispatcher`1 dispatcher, ObjectMethodExecutor methodExecutor, THub hub, Object] arguments, AsyncServiceScope scope, IHubActivator`1 hubActivator, HubConnectionContext connection, HubMethodInvocationMessage hubMethodInvocationMessage, Boolean isStreamCall)
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp info: MetadataBroadcaster[0]
osu-web-osu-server-spectator-5c5dcb6cf7-kqzcp Polled beatmap changes up to last queue id 26419 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As commented. Probably going to require a server-side fix.
Above will be fixed by ppy/osu-server-spectator#274 |
osu-server-spectator
is now the authority in creating multiplayer rooms. Most of the complexity of this PR is a result ofRoomManager
no longer having the ability to create/join/part rooms, which is now handled either by the multiplayer server or by API requests (for playlists + daily challenge).MultiplayerRoomManager
no longer exists, and I expectRoomManager
to go away in the near future too. I'd actually already started down that path but wanted to keep this PR somewhat lean, and so I've only added an XMLDoc onRoomManager
mentioning this.