Skip to content
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

[Bug] [Linux] Local World Persistance Does Not Work #827

Closed
CorneliusCornbread opened this issue Jun 22, 2024 · 25 comments
Closed

[Bug] [Linux] Local World Persistance Does Not Work #827

CorneliusCornbread opened this issue Jun 22, 2024 · 25 comments
Labels
bug Something isn't working

Comments

@CorneliusCornbread
Copy link

CorneliusCornbread commented Jun 22, 2024

Describe the bug
Whenever I join a world that uses VRCX's ability to save information from VRChat it does not work like it does on Windows.

To Reproduce
Steps to reproduce the behavior:

  1. Go to a world that supports VRCX saving (e.g. Idle Home or YTS 2.1)
  2. Wait a few seconds
  3. World will not be able to load data

Expected behavior
It'd be nice if this feature worked on Linux just like it does on Windows.

What version you are running
Version 2024.06.12

I tried to see if there was a newer build, and redownload the latest artifact to verify I had the latest version. Current build is so out of date that the artifact is expired on GH :(
image

@CorneliusCornbread CorneliusCornbread added the bug Something isn't working label Jun 22, 2024
@Myrkie
Copy link
Contributor

Myrkie commented Jun 22, 2024

VRCX doesn't use OSC in capacity, world persistence is based on a server and log reading, make sure that port 22500 is not being used, you should also be installing vrcx through this method https://github.com/vrcx-team/VRCX/tree/master/Linux as its more stable

@CorneliusCornbread
Copy link
Author

VRCX doesn't use OSC in capacity, world persistence is based on a server and log reading, make sure that port 22500 is not being used, you should also be installing vrcx through this method https://github.com/vrcx-team/VRCX/tree/master/Linux as its more stable

Installing this way just has the installer fail silently without saying much of anything

warning: Running /usr/bin/wineserver -w. This will hang until all wine processes in prefix=/home/jack/.local/share/vrcx terminate
------------------------------------------------------
Executing wine C:\windows\syswow64\regedit.exe /S C:\windows\Temp\_register-font.reg
002c:fixme:winediag:loader_init wine-staging 9.5 is a testing version containing experimental patches.
002c:fixme:winediag:loader_init Please mention your exact version when filing bug reports on winehq.org.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
0088:fixme:wineusb:query_id Unhandled ID query type 0x5.
Executing wine64 C:\windows\regedit.exe /S C:\windows\Temp\_register-font.reg
Executing cp /home/jack/.local/share/vrcx/dosdevices/c:/windows/temp/_register-font.reg /tmp/winetricks.LGe4abv9/_reg_405b24a4_66045.reg
Executing wine C:\windows\syswow64\regedit.exe /S C:\windows\Temp\_register-font.reg
Executing wine64 C:\windows\regedit.exe /S C:\windows\Temp\_register-font.reg
Executing cp /home/jack/.local/share/vrcx/dosdevices/c:/windows/temp/_register-font.reg /tmp/winetricks.LGe4abv9/_reg_70fc14d8_66045.reg
Download VRCX
Unknown option 'show-progress'
@Myrkie
Copy link
Contributor

Myrkie commented Jun 22, 2024

you might want to update wget that error is coming from this part of the script which means your wget version is too old you should try updating with apt-get install --only-upgrade wget

@CorneliusCornbread
Copy link
Author

you might want to update wget that error is coming from this part of the script which means your wget version is too old you should try updating with apt-get install --only-upgrade wget

im running the latest version of fedora 40 which has wget 2.1.0

@Myrkie
Copy link
Contributor

Myrkie commented Jun 22, 2024

if that's the case then the version in your distros repository doesn't support it, you could modify the script and remove all references to the argument --show-progress

@regalialong
Copy link
Contributor

regalialong commented Jun 22, 2024

Seems like that Fedora has some weirdness with how they handle progress related flags. Patch doesn't touch this, doesn't matter.
Withholding my annoyance, maybe it's worth replacing that with curl instead.

@Natsumi-sama
Copy link
Member

Natsumi-sama commented Jun 22, 2024

If you'd like to debug the crash you can hit http://127.0.0.1:22500/vrcx/data/getall otherwise to disable the feature Settings -> Advanced -> Disable Local World Persistence

And please use the install script or if you can't then read the script and do the steps manually, the Linux fork with artifacts is very old and shouldn't be used anymore.

@CorneliusCornbread CorneliusCornbread changed the title [Bug] [Linux] OSC Loading Causes Crashes Jun 24, 2024
@CorneliusCornbread
Copy link
Author

I downloaded the script and removed all instances of --show-progress and was able to get VRCX 2024.06.12 working and installed. But it seems like the local persistence doesn't work at all. Idle home reports that "Manual save was not found" when attempting to load from VRCX

@CorneliusCornbread CorneliusCornbread changed the title [Bug] [Linux] Local World Persistance Causes Crashes Jun 24, 2024
@CorneliusCornbread CorneliusCornbread changed the title [Bug] [Linux] Local World Persistance Does Not WOrk Jun 24, 2024
@regalialong
Copy link
Contributor

Does curl http://127.0.0.1:22500/vrcx/data/getall connect to anything?

@CorneliusCornbread
Copy link
Author

Does curl http://127.0.0.1:22500/vrcx/data/getall connect to anything?

Yes, it returns the following

{"ok":true,"error":null,"data":"{}","statusCode":200,"connectionKey":"KEY-HERE"}% 
@Natsumi-sama
Copy link
Member

As long as the gameLog tab is working correctly that's all there is to it, maybe you haven't saved in this world yet.

@CorneliusCornbread
Copy link
Author

As long as the gameLog tab is working correctly that's all there is to it, maybe you haven't saved in this world yet.

Nah, it's full greyed out on Idle Home meaning it's not being detected and YTS 2.1 autosaves whenever you change but the autosave appears to not be working at all.

@regalialong
Copy link
Contributor

Not able to repro this.

@CorneliusCornbread
Copy link
Author

Not able to repro this.

I can reproduce this message in YTS, however, nothing is ever actually saved and none of my settings are actually properly loaded. For example, I turn off chairs and enable colliders, this saves just fine on Windows, but on Linux it doesn't actually function. So it can communicate just fine to VRCX but VRCX isn't actually saving anything.

@GroovyTeacup
Copy link
Contributor

GroovyTeacup commented Jun 26, 2024

Can you post your VRCX.log in %APPDATA%/VRCX/logs? After a session where you try to use PWI functionality.
EDIT: Forgot you're on linux; Where your VRCX DB would be located there'll be a logs folder lol

@CorneliusCornbread
Copy link
Author

Can you post your VRCX.log in %APPDATA%/VRCX/logs? After a session where you try to use PWI functionality. EDIT: Forgot you're on linux; Where your VRCX DB would be located there'll be a logs folder lol

2024-06-26 02:53:06.9812 [INFO ] VRCX                 - VRCX 2024.06.12 Starting... 
2024-06-26 02:53:07.0121 [DEBUG] VRCX.ProcessMonitor  - Added process vrchat to process monitor. 
2024-06-26 02:53:07.0129 [DEBUG] VRCX.ProcessMonitor  - Added process vrserver to process monitor. 
2024-06-26 02:53:07.2484 [INFO ] VRCX.WorldDBManager  - Listening for requests on http://127.0.0.1:22500/ 
2024-06-26 02:53:11.3268 [INFO ] VRCX                 - SetDateTill: 6/26/2024 2:53:11 AM 
2024-06-26 02:53:14.0270 [DEBUG] Javascript           - Fetched group Secret Clink (file://vrcx/app.js:7) 
2024-06-26 02:53:42.4739 [DEBUG] VRCX.WorldDBManager  - Received a request to 'http://127.0.0.1:22500/vrcx/data/getall' 
2024-06-26 02:53:42.6126 [DEBUG] Javascript           - PWI: location didn't match, fetched user location wrld_900dd077-1337-c0fe-babe-71de05ea12c4:91265~private(usr_dbdddc50-6005-4b6d-862c-8c2f46d97665)~region(use) (file://vrcx/app.js:7) 
2024-06-26 02:53:42.6126 [DEBUG] Javascript           - PWI: returning user location wrld_900dd077-1337-c0fe-babe-71de05ea12c4:91265~private(usr_dbdddc50-6005-4b6d-862c-8c2f46d97665)~region(use) (file://vrcx/app.js:7) 
2024-06-26 02:53:42.6437 [DEBUG] VRCX.WorldDBManager  - Serving a request for all data (0 entries) for world ID 'wrld_900dd077-1337-c0fe-babe-71de05ea12c4' with connection key KEY_HERE. 
@GroovyTeacup
Copy link
Contributor

Can you repeat in a world with VRCX functionality? One of the ones you're trying to use.

@CorneliusCornbread
Copy link
Author

Can you repeat in a world with VRCX functionality? One of the ones you're trying to use.

I did, I repeated it in YTS 2.1, that's the log from that world

@GroovyTeacup
Copy link
Contributor

GroovyTeacup commented Jun 26, 2024

It's pretty unusual that it's trying to get data with an invalid connection key that's not defined in VRCX/pwimanager so maybe a placeholder by the world. Should've added more logging for when connection keys are generated...

Can you attempt to save data in the idle world/yts and send the relevant portions of your VRChat log? If they're using the default impl, that'll give me a better idea of what's going on.

Though before doing so, please upload your VRCX-WorldData.db so I can see what's going on there and then delete/rename the file so it can re-initialize the worlds you're trying to use.

@natarii
Copy link

natarii commented Jun 26, 2024

@CorneliusCornbread If you search your vrchat client logs for [YTS] ConfManager: VRCX PWI connection key, that shows verbatim the key that was returned from the initial /vrcx/data/getall request, might be helpful for debugging

@CorneliusCornbread
Copy link
Author

It's pretty unusual that it's trying to get data with an invalid connection key that's not defined in VRCX/pwimanager so maybe a placeholder by the world. Should've added more logging for when connection keys are generated...

Can you attempt to save data in the idle world/yts and send the relevant portions of your VRChat log? If they're using the default impl, that'll give me a better idea of what's going on.

Though before doing so, please upload your VRCX-WorldData.db so I can see what's going on there and then delete/rename the file so it can re-initialize the worlds you're trying to use.

The key being weird is actually just me being over-cautious and removing the key from the logs. If it's not sensitive information I can include it in future

Here's another set of logs of me trying to get the VRCX data to load in YTS

2024-06-26 22:27:43.5644 [INFO ] VRCX                 - VRCX 2024.06.12 Starting... 
2024-06-26 22:27:43.6268 [DEBUG] VRCX.ProcessMonitor  - Added process vrchat to process monitor. 
2024-06-26 22:27:43.6281 [DEBUG] VRCX.ProcessMonitor  - Added process vrserver to process monitor. 
2024-06-26 22:27:44.0806 [INFO ] VRCX.WorldDBManager  - Listening for requests on http://127.0.0.1:22500/ 
2024-06-26 22:27:50.7327 [INFO ] VRCX                 - SetDateTill: 6/26/2024 10:27:50 PM 
2024-06-26 22:31:13.1122 [DEBUG] VRCX.WorldDBManager  - Received a request to 'http://127.0.0.1:22500/vrcx/data/getall' 
2024-06-26 22:31:13.2887 [DEBUG] Javascript           - PWI: location didn't match, fetched user location wrld_900dd077-1337-c0fe-babe-71de05ea12c4:49593~private(usr_dbdddc50-6005-4b6d-862c-8c2f46d97665)~region(use) (file://vrcx/app.js:7) 
2024-06-26 22:31:13.2887 [DEBUG] Javascript           - PWI: returning user location wrld_900dd077-1337-c0fe-babe-71de05ea12c4:49593~private(usr_dbdddc50-6005-4b6d-862c-8c2f46d97665)~region(use) (file://vrcx/app.js:7) 
2024-06-26 22:31:13.3194 [DEBUG] VRCX.WorldDBManager  - Serving a request for all data (0 entries) for world ID 'wrld_900dd077-1337-c0fe-babe-71de05ea12c4' with connection key 9c7a01a8-6e26-416e-9a96-dc700abe552a. 
2024-06-26 22:31:44.1204 [DEBUG] VRCX.WorldDBManager  - Received a request to 'http://127.0.0.1:22500/vrcx/data/getall' 
2024-06-26 22:31:44.3114 [DEBUG] Javascript           - PWI: location didn't match, fetched user location wrld_900dd077-1337-c0fe-babe-71de05ea12c4:49593~private(usr_dbdddc50-6005-4b6d-862c-8c2f46d97665)~region(use) (file://vrcx/app.js:7) 
2024-06-26 22:31:44.3114 [DEBUG] Javascript           - PWI: returning user location wrld_900dd077-1337-c0fe-babe-71de05ea12c4:49593~private(usr_dbdddc50-6005-4b6d-862c-8c2f46d97665)~region(use) (file://vrcx/app.js:7) 
2024-06-26 22:31:44.3139 [DEBUG] VRCX.WorldDBManager  - Serving a request for all data (0 entries) for world ID 'wrld_900dd077-1337-c0fe-babe-71de05ea12c4' with connection key 9c7a01a8-6e26-416e-9a96-dc700abe552a. 

With the database file (I had to compress it as GH wouldn't accept the file type otherwise):
VRCX-WorldData.zip

@Natsumi-sama
Copy link
Member

Are you sure your gameLog tab is working? because it really doesn't look like it.

@CorneliusCornbread
Copy link
Author

CorneliusCornbread commented Jun 27, 2024

Are you sure your gameLog tab is working? because it really doesn't look like it.

Ahh, I misunderstood you initially, my bad. Uhh, it's kinda working? It feels like there should be more entries to this list but there's not.

image

Edit: and now it's working????
image

image

@CorneliusCornbread
Copy link
Author

So I did do a minor workaround yesterday as for some reason there were too VRCX's in KDE for me, one was listed as a "Application" and the other was listed as a "wine application." They were two different installs of VRCX in the same wine prefix, for some reason the older initial install (2024.05.something I can't remember) was installed to C:/vrcx where the new version (2024.06.12) was installed to C:/Program Files/vrcx. It was annoying opening the wrong VRCX, especially with autostart so I deleted C:/vrcx and symlinked it to the program files vrcx just in case. But even before I was making sure I was opening the newer VRCX even after autostart?

TL;DR I have little to no idea why it's working, but maybe the installer is installing VRCX to a weird path but the updater is updating it to the regular Windows install path?

@Natsumi-sama
Copy link
Member

It should use last installed path for upgrades but I'll double check sometime, the Linux install script does make some needed symlinks for VRChat log directory, maybe the other wine prefix didn't that have that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
6 participants