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

Issues with MicroVPN on Android: IOException on High Traffic and Unrecoverable Tunnel State #139

Open
KkamSonLee opened this issue Sep 24, 2024 · 0 comments

Comments

@KkamSonLee
Copy link

KkamSonLee commented Sep 24, 2024

Dear Citrix Team,

I hope this message finds you well. I am currently utilizing the MicroVPN solution within my app, but I have encountered a critical issue that I would like to bring to your attention.

In our implementation, we primarily use the following methods:

  • MicroVPNSDK.startTunnel
  • MicroVPNSDK.isNetworkTunnelRunning
  • MicroVPNSDK.stopTunnel
  • MicroVPNSDK.enableWebViewObjectForNetworkTunnel
  • MicroVPNSDK.enableOkHttpClientObjectForNetworkTunnel

The problem arises when there is heavy network traffic, particularly during high-volume image upload or loading operations (using the Glide library). Under such conditions, we often encounter the following error:

java.io.IOException: unexpected end of stream on [�SERVER_URL]

After this error occurs, the proxy connection through MicroVPN fails to re-establish, even if we attempt to restart the tunneling process. The only way to restore the connection is by fully terminating the app process and relaunching it.

For context, in our Glide configuration, we are globally registering the wrapped OkHttpClient (wrapped with MicroVPNSDK.enableOkHttpClientObjectForNetworkTunnel) via the @GlideModule annotation, where we replace the default OkHttpClient with OkHttpUrlLoader.Factory((Call.Factory) client) in the registerComponents method.

In addition to image-heavy operations, we observe similar issues when making multiple image requests within a WebView. Once the connection is lost, both the WebView and the entire app's communication are disrupted. Testing in SecureWeb showed the same behavior: after a disconnect, reconnection is not possible unless the process is fully restarted.

Interestingly, when this issue occurs, we observe that:

session expired = false
tunneling = true
This indicates that the tunnel is reported as still active, but in reality, no traffic seems to be passing through.

I have encountered this issue consistently up to com.citrix.android.sdk 24.7.0 and would like to inquire whether this is a known problem. I would sincerely appreciate it if you could provide guidance on any potential solutions or workarounds, or whether this issue is something that can be addressed in a future update.

Thank you for your attention to this matter. I look forward to any assistance or insight you can offer.

Lee Minho

@KkamSonLee KkamSonLee changed the title Issues with MicroVPN: IOException on High Traffic and Unrecoverable Tunnel State Issues with MicroVPN on Android: IOException on High Traffic and Unrecoverable Tunnel State Sep 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant