FriendsOfGalaxy / galaxy-integration-steam

Integration with Steam for Galaxy
371 stars 77 forks source link

Steam plugin disconnects (Offline retry) when I switch computers #81

Open phtran72 opened 4 years ago

phtran72 commented 4 years ago

I know that there are existing issues tracking this, but for me, it happens when I switch from using GOG Galaxy 2.0 on my laptop to my desktop or vice versa. My only recourse is to disconnect and reconnect from scratch, but then that causes the client on the other computer to disconnect when I start Galaxy there. I'm on the latest version of the plugin (0.51.2)

FriendsOfGalaxy commented 4 years ago

Hi @phtran72 thanks for giving your repro.

phtran72 commented 4 years ago

Both computers are on the same network (router/modem/ISP).

Both machines are always on, and both usually have Galaxy running. It's just that if I connect to steam on one Galaxy client, then when the Galaxy client on the other computer has to reconnect, Steam goes "Offline retry". A 100% method to reproduce is to open Galaxy on one computer, connect to steam, then close Galaxy. Go to the other computer, start Galaxy and steam won't connect. Disconnect and reconnect to steam works, but then when I go back to the first computer and start Galaxy, steam won't connect for it.

I usually have the Steam client running alongside the Galaxy client. None of my clients autostart, but after playing a few games, both Steam and Galaxy are usually up and running at the same time on both computers. To be clear, I don't use more than one client at a time as it's just me in the home.

I will try to do the longer wait time test and let you know my results.

phtran72 commented 4 years ago

Update:

I waited >12h between switching from one computer to the other and steam still disconnects.

FriendsOfGalaxy commented 4 years ago

Thanks, that's helpful. I'll inform you on any progress.

FriendsOfGalaxy commented 3 years ago

@phtran72 can you test this build? I've randomized server list to chose the one we're trying to connect to. steam_random_server.zip (windows build)

You can use it only on one machine I guess. Just close Galaxy remove remove %localappdata%\GOG.com\Galaxy\plugins\installed\steam-.... and unpack zip in %localappdata%\GOG.com\Galaxy\plugins\installed\

FriendsOfGalaxy commented 3 years ago

Ah, never mind, it didn't help

josh-loveholidays commented 3 years ago

Hey @FriendsOfGalaxy I'm happy to help debug this issue too as I have the same problem currently and can recreate easily. Having a quick look at the logs the error I'm getting is this like the others

2020-10-06 17:39:47,792 - protocol.protobuf_client - INFO - Failed to log on, reason : eresult: 5 eresult_extended: 5 count_loginfailures_to_migrate: 0 count_disconnects_to_migrate: 0

When you first login to the plugin what data do you provide steam with to get a token in return? Do you have the steam api doc that you've integrated with?

Cheers

FriendsOfGalaxy commented 3 years ago

@josh-loveholidays for eresult 5 subscribe to issue #74

Most probably the main problem root is the same but eresult 5 in general is broader symptom.

If you have 2 machines with Galaxy running in the same network you can stay in this issue.


@josh-loveholidays @phtran72 please try out this build (windows only): unique_ip.zip This build adds custom obfuscated_private_ip for LogOn message (I've just used hash of computer MAC address). Works for me - I'm no longer kicked off from a registered session.

To install:

Test scenario:

If works, then we will ask people from #74 to try it out as well.

ReiTung commented 3 years ago

Wouldn't the test build have to go into \downloaded? Doesn't make sense to first unzip and then delete the plugin (unless their directory names in the \installed folder are different of course)

I was not able to look at the zip content so far, so apologies if covered via different plugin directory name

FriendsOfGalaxy commented 3 years ago

@ReiTung no, installed folder is proper destination at least for unchanged version in the manifest file.

You can firstly remove old plugin and then upack the zip, does not make any difference. Folder from zip has a different name so there won't be a conflict. Galaxy reads plugins based on manifest from within each top level directory, the directory name can be whatever

ReiTung commented 3 years ago

Checked, thanks

phtran72 commented 3 years ago

I am happy to report than with the unique_ip plugin on my laptop and the old plugin on my desktop, I can stay connected to Steam on both computers, after multiple restarts of the Galaxy client on each machine.

josh-loveholidays commented 3 years ago

I have tested this too and it's working for me. One thing I will say is on first attempt I missed the instruction to leave galaxy running on machine 1 when logging in on machine 2 and the issue persisted. I have the new plugin installed on both machines and all seems to be working now. Thank you very much for your efforts with this @FriendsOfGalaxy

FriendsOfGalaxy commented 3 years ago

One thing I will say is on first attempt I missed the instruction to leave galaxy running on machine 1 when logging in on machine 2 and the issue persisted.

That is interesting. Could you confirm that if you run a new plugin on machine 1, then close Galaxy then run a new plugin on machine 2, then open Galaxy on machine 1, the issue persists (Offline, retry)?

josh-loveholidays commented 3 years ago

Hi @FriendsOfGalaxy yes I can confirm that the above is the case. Also after initial success I have returned to use my desktop after a few days using my laptop and I'm back having the issue on my desktop.

FriendsOfGalaxy commented 3 years ago

@josh-loveholidays thanks for clarification. Can you provide logs from the both machines? I need to verify if there is a problem with LogOff message (the one more thing I've seen last time)

josh-loveholidays commented 3 years ago

hi @FriendsOfGalaxy attached is the logs from my desktop(offline). I'll grab the ones from my laptop too. plugin-steam-ca27391f-2675-49b1-92c0-896d43afa4f8.log

josh-loveholidays commented 3 years ago

and here is the latest from my laptop(the one that is still connected) [Uploading plugin-steam-ca27391f-2675-49b1-92c0-896d43afa4f8.log…]()

FriendsOfGalaxy commented 3 years ago

@josh-loveholidays thanks for log. The second was not updated properly but I've found somehting in the first one.

I can see in your first log that we there was no "shutdown" at 2020-10-11 20:27:43,544 like the process was crashed, or killed. Then the problem with login occurred. We also ignore SessionTicket messages. I'll dig into this clues on next iteration.

I've tried the same with Steam (killing process and checking for communication) but on next Steam app login I see no procedural difference - it just work.

SparrowBrain commented 3 years ago

Created a pull request to fix this issue: https://github.com/FriendsOfGalaxy/galaxy-integration-steam/pull/104 Please review/test so we could merge it.

Additionally, anyone who wants to reconnect to Steam without losing their stats, consider this pull request: https://github.com/FriendsOfGalaxy/galaxy-integration-steam/pull/103

FriendsOfGalaxy commented 3 years ago

I'm testing @SparrowBrain approach. Anyone interested - please test it as well!

Note on steam error's, to make it recorded for future researchers:

I've discovered that if you're running parallel plugin instance in the same network you'll get eresult 34 https://steamerrors.com/34. In the last release I've fixed typo https://github.com/FriendsOfGalaxy/galaxy-integration-steam/commit/c911e3d6eca0286eb971f35b0af83a9814e511ac#diff-14899f45016d44e5631a47a9dd0456753752785cbf8796950bf3980c8ad91ab1R326 and now you should see the eresult 34 as a reason for LogOut message coming from Steam.

I believe eresult 34 reason of logout for plugin 1 while you're login into plugin 2 (with the same obfuscated_private_ip) is one of the sources for eresult 5 when you try to log-in with old token again.

FriendsOfGalaxy commented 3 years ago

Hello people, @josh-loveholidays @phtran72 @ReiTung

has the 0.55 version helped with this issue?

ReiTung commented 3 years ago

I was testing a bit with v0.54 recently (other issues), and did not update to v0.55 yet due to lack of time this week. I will do v0.55 testing this weekend for the issue.

phtran72 commented 3 years ago

I just installed 0.55, but it wouldn't connect until I disabled server caching. Once I did that, however, I can reliably connect and reconnect repeatedly on two machines. I was not able to reconnect on two machines with 0.54.

I will run 0.55 w/ server caching disabled for a while and see if I experience any unexpected disconnects.

FriendsOfGalaxy commented 3 years ago

Ok thanks @phtran72 I consider disabling cache for all users now.

Could you please test w/ server caching enabled but proceeded by with removing old plugin cache?

phtran72 commented 3 years ago

I re-enabled server caching on 0.55, deleted the plugin databases, and have been able to connect and reconnect several times on both machines over the course of 25 hours so far.

I will run the plugin like this on at least two computers and update the thread if I experience any disconnects.

phtran72 commented 3 years ago

Today, only one of my two machines was able to reconnect to steam when I opened Galaxy on both of them. Both machines were running 0.55 unmodified for 4-5 days before the failure occurred.

I will run 0.55 w/ server caching disabled on both machines now.

phtran72 commented 3 years ago

So, after about three days, one of my machines failed to reconnect to steam when I restarted Galaxy. The other machine reconnected successfully. They were both running 0.55 w/ server caching disabled.

SparrowBrain commented 3 years ago

Could you provide logs if you still have them? This might be a different issue we need to hunt down.

ReiTung commented 3 years ago

I just installed 0.55, but it wouldn't connect until I disabled server caching. Once I did that, however, I can reliably connect and reconnect repeatedly on two machines. I was not able to reconnect on two machines with 0.54.

I will run 0.55 w/ server caching disabled for a while and see if I experience any unexpected disconnects.

not seeing anything like that so far with v0.55 - connect worked directly after plugin installation. (special version incl. #108 and the different disconnect behavior). Will do some more testing with the second machine and keep you posted.

phtran72 commented 3 years ago

I'm seeing that even on the machine that went "offline retry" with the Steam plugin, my list of Steam games gets updated to include new games that I buy from the Steam website. Is this expected behaviour? My other PC's Steam plugin is still connected. I guess my connected PC updated my Steam library on GOG's servers, and my "offline retry" PC is pulling the new games from GOG?

FriendsOfGalaxy commented 3 years ago

@phtran72 yes, but the same would happen if you have no plugin connected on first PC at all.

IPhoenixl commented 2 years ago

@phtran72 can you test this build? I've randomized server list to chose the one we're trying to connect to. steam_random_server.zip (windows build)

You can use it only on one machine I guess. Just close Galaxy remove remove %localappdata%\GOG.com\Galaxy\plugins\installed\steam-.... and unpack zip in %localappdata%\GOG.com\Galaxy\plugins\installed\

hey just wanted to thank u and let u know, this zip file fixed my "Offline (retry)" issue!