8
6
Fork
You've already forked windows
1

investigate unresponsive app when there's no Internet #268

Closed
opened 2025年05月26日 22:42:40 +02:00 by fkooman · 13 comments

See #266.

It is a bit erratic but IF it becomes responsive again it is between 30s and 2 min - but the bigger problem is that often the window becomes completely unresponsive to mouse and keyboard input even after the timeout is reached and switched to the input dialog...

See #266. > It is a bit erratic but IF it becomes responsive again it is between 30s and 2 min - but the bigger problem is that often the window becomes completely unresponsive to mouse and keyboard input even after the timeout is reached and switched to the input dialog...
Author
Owner
Copy link

I tried (unsuccessful) to reproduce this:

  1. Modify Windows firewall to block all traffic to the IPs associated with disco.eduvpn.org
  2. Modify the Fritz!Box to block traffic to those IPs

Both don't work as it seems with the Windows firewall the traffic gets rejected and not dropped, i.e. the rejection is immediate and so the apps gives up right away instead of triggering a timeout.

The Fritz!Box unfortunately does NOT support blocking traffic to IPs.

So my next option would be (I guess) to get an OpenWRT box where I can control everything and put the Windows machine on its WiFi and test like that...

I tried (unsuccessful) to reproduce this: 1. Modify Windows firewall to block all traffic to the IPs associated with `disco.eduvpn.org` 2. Modify the Fritz!Box to block traffic to those IPs Both don't work as it *seems* with the Windows firewall the traffic gets *rejected* and not *dropped*, i.e. the rejection is immediate and so the apps gives up right away instead of triggering a timeout. The Fritz!Box unfortunately does NOT support blocking traffic *to* IPs. So my next option would be (I guess) to get an OpenWRT box where I can control everything and put the Windows machine on its WiFi and test like that...
Author
Owner
Copy link

I managed to set up an OpenWRT WiFi network and can somewhat reproduce it. It is not (yet) clear if the auto update check (of the app) could also be the problem when starting the app. That is also why it may not always be triggered?

Starting eduVPN app now reliably hangs for ~10 seconds before connecting to the previously configured server when starting the app. My app is set to German so it says that "something will take a couple of seconds".

Adding a server doesn't work. It doesn't lock up the UI here, but it also doesn't allow you to add servers without being able to reach the CDN. There should a list of servers "built-in" so it doesn't actually require the network to show them. Obviously this list only contains the servers that were there when the app was released (or if it was able to update the list at some point that list).

I am testing with app version 4.3.99.1.

I managed to set up an OpenWRT WiFi network and can somewhat reproduce it. It is not (yet) clear if the auto update check (of the app) could also be the problem when starting the app. That is also why it may not always be triggered? Starting eduVPN app now reliably hangs for ~10 seconds before connecting to the previously configured server when starting the app. My app is set to German so it says that "something will take a couple of seconds". Adding a server doesn't work. It doesn't lock up the UI here, but it also doesn't allow you to add servers without being able to reach the CDN. There should a list of servers "built-in" so it doesn't actually require the network to show them. Obviously this list only contains the servers that were there when the app was released (or if it was able to update the list at some point *that* list). I am testing with app version 4.3.99.1.
rozmansi added this to the 4.5 milestone 2025年07月08日 16:52:24 +02:00
Collaborator
Copy link

@fkooman wrote in #268 (comment):

I managed to set up an OpenWRT WiFi network and can somewhat reproduce it. It is not (yet) clear if the auto update check (of the app) could also be the problem when starting the app. That is also why it may not always be triggered?

Self-update is spawned in a background thread and has no effect on UI other than displaying an error note on About page, should it fail.

Starting eduVPN app now reliably hangs for ~10 seconds before connecting to the previously configured server when starting the app. My app is set to German so it says that "something will take a couple of seconds".

OK, "hangs" is a strong word. 😅 The UI stays on a generic waiting page because it is doing something in the background. The wording "This might take a couple of seconds" was inspired by big-tech corporations always-overoptimistic progress messages. What the client is really doing is trying to get the profile configuration from the server it is reconnecting on startup. It eventually times out. The really confusing thing was, the error message was hard-coded to report the client "needs to reauthorize". I have upgraded the client to display the true exception message now:

image

Adding a server doesn't work. It doesn't lock up the UI here, but it also doesn't allow you to add servers without being able to reach the CDN. There should a list of servers "built-in" so it doesn't actually require the network to show them. Obviously this list only contains the servers that were there when the app was released (or if it was able to update the list at some point that list).

The search works instantly for manually entered servers (hostnames containing at least three dots "."). It also kind-of-works for searching organizations for Secure Internet:

image

The DiscoOrganizations() in eduvpn_common.dll triggers discovery once, and it takes about 10 seconds before it reverts to returning search results based on cached/built-in disco data. The DiscoServers() however panics after 10 seconds and returns an error. So, maybe @jwijenbergh could take a look?

@fkooman wrote in https://codeberg.org/eduVPN/windows/issues/268#issuecomment-4882020: > I managed to set up an OpenWRT WiFi network and can somewhat reproduce it. It is not (yet) clear if the auto update check (of the app) could also be the problem when starting the app. That is also why it may not always be triggered? Self-update is spawned in a background thread and has no effect on UI other than displaying an error note on About page, should it fail. > Starting eduVPN app now reliably hangs for ~10 seconds before connecting to the previously configured server when starting the app. My app is set to German so it says that "something will take a couple of seconds". OK, "hangs" is a strong word. 😅 The UI stays on a generic waiting page because it is doing something in the background. The wording "This might take a couple of seconds" was inspired by big-tech corporations always-overoptimistic progress messages. What the client is really doing is trying to get the profile configuration from the server it is reconnecting on startup. It eventually times out. The really confusing thing was, the error message was hard-coded to report the client "needs to reauthorize". I have upgraded the client to display the true exception message now: ![image](/attachments/7c7f503b-a70a-4109-bdc3-04135d479658) > Adding a server doesn't work. It doesn't lock up the UI here, but it also doesn't allow you to add servers without being able to reach the CDN. There should a list of servers "built-in" so it doesn't actually require the network to show them. Obviously this list only contains the servers that were there when the app was released (or if it was able to update the list at some point _that_ list). The search works instantly for manually entered servers (hostnames containing at least three dots "."). It also kind-of-works for searching organizations for Secure Internet: ![image](/attachments/63d0f9af-26b6-44f7-9c6a-05a856d8b869) The `DiscoOrganizations()` in `eduvpn_common.dll` triggers discovery once, and it takes about 10 seconds before it reverts to returning search results based on cached/built-in disco data. The `DiscoServers()` however panics after 10 seconds and returns an error. So, maybe @jwijenbergh could take a look?
Collaborator
Copy link

When Institute Access or Secure Internet servers are pre-configured using the registry, the DiscoServers() and DiscoOrganizations() are called initially to populate the UI correctly. Again: those two calls block for about 10 seconds. The DiscoServers() errors after that, the DiscoOrganizations() returns cached data.

So, I assume this was the case described in #266.

When Institute Access or Secure Internet servers are pre-configured using the registry, the `DiscoServers()` and `DiscoOrganizations()` are called initially to populate the UI correctly. Again: those two calls block for about 10 seconds. The `DiscoServers()` errors after that, the `DiscoOrganizations()` returns cached data. So, I assume this was the case described in #266.
Collaborator
Copy link

https://codeberg.org/eduVPN/windows/releases/tag/4.4.99.3 should work much better offline now.

https://codeberg.org/eduVPN/windows/releases/tag/4.4.99.3 should work much better offline now.

As we still have this issue with the complete lockup with 4.5 - did this change land in the released Version? Or was it on "waiting for response"?

As we still have this issue with the complete lockup with 4.5 - did this change land in the released Version? Or was it on "waiting for response"?

(See attached video snippet) - Hint: our server is Pre-Configured via registry InstituteAccessServers

(See attached video snippet) - Hint: our server is Pre-Configured via registry InstituteAccessServers
Collaborator
Copy link

Confirming there is a client stall on start when computer is offline and InstituteAccessServers is in place.

Confirming there is a client stall on start when computer is offline and InstituteAccessServers is in place.

I tried analyzing the connections with the sysinternals process explorer - but the picture is so weird that i am unsure if process explorer actually displays real connections.

While starting the client supposedly connects to around a dozent IPs and sites like stuff from Akamai and so on - the only thing i could think of is that this may part of the WebViewe implementation (if there is even any)...

Wireshark is sadly so full of other spam that connects that i can not filter out what comes from the client...

We did even try allowing disco.eduvpn.org - but that also does not seem to do the trick...

I tried analyzing the connections with the sysinternals process explorer - but the picture is so weird that i am unsure if process explorer actually displays real connections. While starting the client supposedly connects to around a dozent IPs and sites like stuff from Akamai and so on - the only thing i could think of is that this may part of the WebViewe implementation (if there is even any)... Wireshark is sadly so full of other spam that connects that i can not filter out what comes from the client... We did even try allowing disco.eduvpn.org - but that also does not seem to do the trick...
Collaborator
Copy link

@rozmansi wrote in #268 (comment):

Confirming there is a client stall on start when computer is offline and InstituteAccessServers is in place.

Correction: A broken** InstituteAccessServers in place blocks the client from starting. This was a separate bug, also having a fix for it in the pipeline now.

** invalid URI, or URI not starting with https://.

@Lukas-UAUX wrote in #268 (comment):

While starting the client supposedly connects to around a dozent IPs and sites like stuff from Akamai and so on - the only thing i could think of is that this may part of the WebViewe implementation (if there is even any)...

Now, this sheds some light what might be the issue here... The .NET Framework appears to verify Authenticode signatures of the dependent assemblies really thoroughly. Trying to download CRLs to do the revocation check. I have turned this off now and planning to make a release tommorrow. Have some other commits in the queue that need testing first.

Thanks for reporting this!

@rozmansi wrote in https://codeberg.org/eduVPN/windows/issues/268#issuecomment-15401447: > Confirming there is a client stall on start when computer is offline and InstituteAccessServers is in place. Correction: A broken** InstituteAccessServers in place blocks the client from starting. This was a separate bug, also having a fix for it in the pipeline now. ** invalid URI, or URI not starting with `https://`. @Lukas-UAUX wrote in https://codeberg.org/eduVPN/windows/issues/268#issuecomment-15407924: > While starting the client supposedly connects to around a dozent IPs and sites like stuff from Akamai and so on - the only thing i could think of is that this may part of the WebViewe implementation (if there is even any)... Now, this sheds some light what might be the issue here... The .NET Framework appears to verify Authenticode signatures of the dependent assemblies really thoroughly. Trying to download CRLs to do the revocation check. I have turned this off now and planning to make a release tommorrow. Have some other commits in the queue that need testing first. Thanks for reporting this!

Yeah i did already fall into that trap with the InstituteAccessServers onece before ;-)

But the other thing sounds promissing - i did think of CRLs too (only in verifying disco.eduvpn.org and app.eduvpn,org) but the URLs were so random so i was not sure...

Yeah i did already fall into that trap with the InstituteAccessServers onece before ;-) But the other thing sounds promissing - i did think of CRLs too (only in verifying disco.eduvpn.org and app.eduvpn,org) but the URLs were so random so i was not sure...
Collaborator
Copy link

I've made a release that disables revocation checks: https://codeberg.org/eduVPN/windows/releases/tag/4.5.99.4

@Lukas-UAUX, can you test it, please?

I've made a release that disables revocation checks: https://codeberg.org/eduVPN/windows/releases/tag/4.5.99.4 @Lukas-UAUX, can you test it, please?

This looks very good - our testers reported it now opens instantly and till now no lockup anymore...

This looks very good - our testers reported it now opens instantly and till now no lockup anymore...
Sign in to join this conversation.
No Branch/Tag specified
master
study/no-token-import
ver/3.x
govVPN
ver/3.3.0.x
ver/2.x
ver/1.x
4.6
4.5.99.8
4.5.99.7
4.5.99.6
4.5.99.5
4.5.99.4
4.5.99.3
4.5.99.2
4.5.99.1
4.5.99.0
4.5
4.4.99.4
4.4.99.3
4.4.99.2
4.4.99.1
4.4.99.0
4.4
4.3.99.1
4.3.99.0
4.3.2
4.3.1
4.3
4.2.8
4.2.7
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2
4.1.7
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1
4.0
3.255.23
3.255.22
3.255.21
3.255.20
3.255.19
3.7
3.6.2
3.6.1
3.255.18
3.255.17
3.255.16
3.255.15
3.6
3.255.14
3.5
3.255.13
3.4.3
3.255.12
3.255.11
3.255.10
3.255.9
3.255.8
3.255.7
3.255.6
3.255.5
3.255.4
3.255.3
3.255.2
3.4.2
3.4.1
3.255.1
3.255
3.4
3.3.8
3.3.7
3.3.6
3.3.5
3.3.4
3.3.0.1
3.3.3
3.3.2
3.3.1
3.3
3.2.2
3.2.1
3.2
3.1.8
3.1.7
3.1.6
3.1.5
3.1.4
3.1.3
3.1.2
3.1.1
3.1
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0
2.255.6
2.255.5
2.255.4
2.255.3
2.255.2
2.255.1
2.1.4
2.255.0
2.1.3
2.1.2
2.1.1
2.1
2.0.7
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0
1.255.11
1.255.10
1.255.9
1.0.39
1.255.8
1.255.7
1.255.6
1.255.5
1.0.38
1.255.4
1.0.37
1.255.3
1.255.2
1.255.1
1.255.0
1.0.36
1.0.34
1.0.35
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
audit/2017-12
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0-alpha8
1.0-alpha6
1.0-alpha5
1.0-alpha4a
1.0-alpha3
1.0-alpha2a
1.0-alpha1
1.0-alpha
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eduVPN/windows#268
Reference in a new issue
eduVPN/windows
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?