09-21-2021 03:05 PM
I am amazed anyone is able to get Oculus platform features working. I am desperately seeking advice from someone who has and might be able to help me resolve this issue. I'm using UE4.27 but also had the issue with UE4.26.
I completed my data use checkup form and have been approved for User Id, User Profile, Friends, Invites, and Matchmaking. I've configured a matchmaking pool:
I have the following online subsystem plugins enabled in my project: Online Subsystem, Online Subsystem Null, Online Subsystem Oculus, Online Subsystem Utils.
I have an event on my GameInstance which creates a multiplayer session and opens my main level as a listen server:
There is another event on my GameInstance that can be called to join the first multiplayer session it finds:
When Headset A calls CreateMultiplayerMatch it seems to successfully create a multiplayer session in my "Rated" matchmaking pool. I can see "matchmaking enqueue room" and "matchmaking enqueue user" entries in the MatchMaking debugger within the Developer Dashboard.
When Headset B calls JoinAnyMultiplayerSession the application is able to successfully find the session created by Headset A (I can see the oculus username, ping, # players, etc) but when it calls the JoinSession node the application on Headset B (client) crashes with this stacktrace:
''' Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xdddddddd99999987 in tid 26349 (GameThread), pid 26301 (on.Redacted) *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'oculus/hollywood/hollywood:10/QQ3A.200805.001/18371800151900000:user/release-keys' Revision: '0' ABI: 'arm64' Timestamp: 2021-09-20 22:09:13-0400 pid: 26301, tid: 26349, name: GameThread >>> com.redacted.Redacted <<< uid: 10708 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xdddddddd99999987 x0 0000007c88bab220 x1 dddddddddddddddd x2 ffffffffbbbbbbba x3 dddddddd99999997 x4 0000007c44766dda x5 000000000000000a x6 00410056004e0049 x7 000000440049004c x8 7fffffffdddde000 x9 000000007fffffff x10 0000000000000000 x11 000000000000003e x12 0000007c87f37b00 x13 000000000000001e x14 0000000000000000 x15 0000000000000032 x16 0000007cc25d5588 x17 0000007db227e0c0 x18 00000000000009bc x19 dddddddddddddddd x20 ffffffffdddddddd x21 0000007d20573060 x22 0000007cc8548020 x23 0000007d20573030 x24 0000007d20bf1ec0 x25 0000007cc8548020 x26 0000007cc8541c40 x27 0000000000000000 x28 0000500000000000 x29 0000007cc85417b0 sp 0000007cc8541780 lr 0000007cbbdac860 pc 0000007db227e0e0 backtrace: #00 pc 000000000007e0e0 /apex/com.android.runtime/lib64/bionic/libc.so (memcpy+32) (BuildId: a6e0ca3a9989715134d1d1e2126e0f7a) #01 pc 00000000091e56b0 /data/app/com.redacted.Redacted-c7HxzmlY5sNeNxNHvQ83Ew==/lib/arm64/libUE4.so!libUE4.so (offset 0x81fa000) (FOnlineSessionNull::JoinSession(int, FName, FOnlineSessionSearchResult const&)+484) (BuildId: d0ce462983f959eb6d3ac237d4c2a08985da6379) #02 pc 00000000088d575c /data/app/com.redacted.Redacted-c7HxzmlY5sNeNxNHvQ83Ew==/lib/arm64/libUE4.so!libUE4.so (offset 0x81fa000) (UJoinSessionCallbackProxy::Activate()+292) (BuildId: d0ce462983f959eb6d3ac237d4c2a08985da6379) #03 pc 000000000004debc <anonymous:7c89c40000> '''
I've determined the specific line that is failing is OnlineSessionInterface.cpp:702 where the call to SearchSessionInfo->HostAddr->Clone() is made:
I'm not sure if it's related (seems likely) but leaderboards also don't work for me. My call to "Write Leaderboard Integer" reports success but I never see any scores posted to my leaderboard when I look in the Developer Dashboard.
Is it expected for FOnlineSubsystemNull to be used when I have the Oculus Online Subsystem enabled? Some sort of optimization since both of my headsets are on my LAN? Seems wrong to me but other oculus platform features are working, like creating a multiplayer session or finding available sessions. Totally confusing and frustrating.
I've read the docs over and over. I've tried every suggestion I can find, including those in this reddit thread. I tried unsuccessfully to get the UE4/Oculus realtime debugger working so I've been limited to log message debugging.
I am desperate to find a solution to get leaderboards and matchmaking working with the Oculus Online Subsystem. If anyone has an idea of what it could be, or something to try, please let me know! I've run out of ideas.
10-10-2021 06:33 PM
Super frustrating to find this out but the cause of the crash is that I was missing a file Config/Android/AndroidEngine.ini containing these two lines:
04-07-2022 08:47 AM - edited 04-07-2022 08:53 AM
I managed to stop the crash Using UE4.27 Source. The client can find the session and join it, but never it travels to the listen server map. Have you managed to make the matchmaking to work?
04-07-2022 08:51 AM
04-07-2022 08:57 AM
This didnt work for me😅