-
-
Notifications
You must be signed in to change notification settings - Fork 205
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
Server stops transmitting frames #121
Comments
Hi @nappy have you tried:
What happens in these cases? |
With thightvnc 2.8.75 I was able to reproduce the issue with a direct connection. In general I experience this kind of issue on many devices. On the device above however it is particular easy to reproduce. |
I can try with the specified tightvnc viewer, but have only android 12 devices. Emulator with android 7 worked fine... |
If it helps I can lend you my device for analysis. It is not that it does not happen elsewhere (even on newer Android version iirc) but to debug the issue that device might be helpful. I think a similar issue has been reported before right? |
That's very nice of you, this would be a powerful last resort :-). I'll get back to you once I found the time to test with the emu and my devices. Is #113 the same or different from what you're seeing? |
Its different in that I dont see the underlying connection terminating. Its a little bit similar in the fact that it might be related to low memory conditions. For the most parts its seems to be a different issue though. The closest issue I found was this one here: LibVNC/libvncserver#371 Although I did not measure or noticed any CPU loads. From my I own analysis I suspect that there is some bug in libvnc in the detection wether the screen has changed (there were some conditions where the client defines the area its interested in, again the framebuffer seems to still get updated), or maybe the sending gets blocked somehow. I could not really get my native debuger to work properly, but if I get directions to add some logging to a particuar piece |
@nappy I'm now experiencing the same issue with an rk3399 board running Android 10, especially when I have mouse pointers enabled (current master branch). Can you try with droidVNC-NG's current master and mouse pointers enabled to see if you can repro more quickly? Edit: happens with MultiVNC and TigerVNC viewers, so I reckon it's not a client bug. |
Found out that the client output thread goes in here |
@bk138 I'm trying out droidVNC on a Android Kiosk device. I'm experiencing the same after a few seconds. I have now tried with Mac's built-in VNC client, and so far it has not crashed, however the experience with this client seems a bit more laggy in terms of screen updates. To add, It was only the screen input that stopped, I have the test kiosk next to me, and I can see that the mouse input I do on the VNC client is actually happening on the device - Just not getting the screen update to the VNC client. |
@Phliplip is your board coincidentally also an rk3399? |
Device is a BIGPOS® 2150, the specifications from the manufactorer don't mention what board it is based on. |
I can reproduce this consistently on an android tv: screen updates work fine in the kodi app, but freeze when going to flauncher, and start up again when switching back to kodi. I've built this app from the git source and will try to investigate the bug, but any pointers as to where I should look would be welcome. |
@badfish #121 (comment) is the closest I got so far. |
#121 (comment) |
Yeah, that's in line with #121 (comment) - thing is, I saw that it worked initally with the same app in the foreground of the server's device and then wound down. |
I think I'm experiencing the same issue with the android 13 device I'm using. After some hours, after the screen turned off all I can see is a black image. Input still works. The viewer is RealVNC on Windows. droidVNC-NG version: 2.2 |
working theory 1 - cl->requestedRegion race ( ⛔ )
working theory 2 - no framebuffer update request because framebuffer update failed ⛔
working theory 3 - an encodings thing as it only happens on certain hardware? ⛔
working theory 4 - EEE settings ⛔
working theory 5 - MTU/speed woes? ✅
|
@nappy were you seeing this using LAN or WLAN on your rk3399 board? |
The device I mentioned above, where the issue is most prevalent, is connected via LAN. |
@nappy Would you be available to try and see if the workaround works for your board? It's basically:
I could not find a way to persist this on my test device (userdebug build) via init.rc though, must be some SELinux issue (but no audit logs) :-/ |
Its currently running a newer firmware version, but I will make sure I reproduce the issue first and then to apply your workaround by tomorrow. |
Nice! Thanks very much! Also see my note in #121 (comment) about IPv6 and how it exacerbated the issue, maybe it helps. Edit: also see #121 (comment) i.e. happens on Android 10 rk3399 board as well. |
@bk138 The issue was reproducible with Android 8 very easily, but the workaround does indeed mitigate the issue: |
@nappy great news! Do you have any idea on how to persist this? |
Description of the bug
The server stops transmitting any updates of the view. The screen on the viewer freezes while the connection and inputs are still working. The issue seems to correlate with usage of input fields/animations especially when low memory.
How To Reproduce
While there are no steps known so far to reproduce the issue deterministically, opening new frames of suggested websites (amazon, facebook, google, ebay, youtube, wikipedia etc) preferably with input elements allows to reproduce this reasonably fast.
Steps to reproduce the behavior:
Sometimes it can take a while to reproduce the issue. If it does not happen within a minute it can help to pause sending inputs for 10-20 seconds. Often when you want to resume the session, it is frozen right away.
Expected Behavior
The server should continue transmitting the frames that according to the logs it still receives, but does not send to the client connection.
Logs
The sever keeps receiving frames as seen above. There are no errors or exceptions. According to my analysis the server is not sending any packages on the TCP level though.
Environment:
Additional context
When you disconnect and reconnect to the server, you will recieve the updated screen content and the connection continues to work until the next occurrence of the issue.
The text was updated successfully, but these errors were encountered: