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

Client does not support NewFBSize #159

Closed
maurerle opened this issue Jul 16, 2021 · 7 comments
Closed

Client does not support NewFBSize #159

maurerle opened this issue Jul 16, 2021 · 7 comments

Comments

@maurerle
Copy link

If you'd like to put out an incentive for fixing this bug, you can do so at https://issuehunt.io/r/bk138/multivnc?tab=idle

Is your bug report about the Desktop Multivnc or the Mobile MultiVNC?

  • Mobile (Android):

Which MultiVNC version are you using?
1.9.11

Describe the bug
When connecting from Android to my Debian 11 Bullseye Laptop, the connection opens with a screensize of 800x600 and shows only the upper left part of my 1920x1080 screen.

When the cursor is not in the visible 800x600 part, the connection fails with "VNC Connection failed!"

The log of my Debian Laptop shows

Jul 16 23:20:54 laptop gnome-remote-de[56878]: Client does not support NewFBSize
Jul 16 23:20:58 laptop gnome-shell[5061]: g_udev_client_query_by_device_file: assertion 'device_file != NULL' failed

To Reproduce
see above. I wonder if this can be reproduced with current Debian 11 Gnome Desktop

Expected Behavior
Full 1920x1080 resolution and no connection error

Screenshots

For the Desktop Version (please complete the following information):

  • OS and version:
  • Xorg version used:
  • Wayland version used:

For the Mobile Version (please complete the following information):

  • Android version: 10
  • Installed from Play Store, F-Droid, Amazon Appstore: F-Droid

Additional context

@maurerle maurerle added the bug label Jul 16, 2021
@maurerle
Copy link
Author

maurerle commented Jul 16, 2021

relevant logcat lines from adb seem to be this:

07-17 00:02:33.821 20737 20800 I VNCConn-native: Rect too large: 24x7 at (661, 600)
07-17 00:02:33.821 20737 20800 E VNCConn-native: com.coboltforge.dontmind.multivnc.VNCConn@713a875: rfbProcessServerMessage() failed
07-17 00:02:33.821 20737 20800 E VNCConn : java.lang.Exception
07-17 00:02:33.822 20737 20800 W System.err: java.lang.Exception
07-17 00:02:33.822 20737 20800 W System.err: 	at com.coboltforge.dontmind.multivnc.VNCConn$ServerToClientThread.run(VNCConn.java:217)
07-17 00:02:33.822 20737 20800 I VNCConn-native: com.coboltforge.dontmind.multivnc.VNCConn@713a875: rfbShutdown() closing connection
07-17 00:02:33.832  1609  1668 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
07-17 00:02:33.880 20737 20737 D VNCConnService: onDestroy

I tried to reproduce with a Debian 10 VM, where I forward the port to 5902 of my laptop.
There I got a crashing App and this log with adb logat:

07-17 00:05:27.338 20737 20737 D VncCanvas: Changed prio from -10 to -4
07-17 00:05:27.603   696  1037 I netd    : tetherGetStats() <1.90ms>
07-17 00:05:27.674 20737 20737 D PointerInputHandler: MightyInputHandler com.coboltforge.dontmind.multivnc.PointerInputHandler@cef600c created!
07-17 00:05:27.674 20737 20737 D PointerInputHandler: MightyInputHandler com.coboltforge.dontmind.multivnc.PointerInputHandler@cef600c init!
07-17 00:05:27.675 20737 20737 D VncCanvasActivity: Got raw intent 0 : 192.168.178.111, port 5902
07-17 00:05:27.676 20737 20737 D VNCConn : initializing
07-17 00:05:27.685  1609  1668 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
07-17 00:05:27.712 20737 21068 I VNCConn : Using IPv4: java.net.UnknownHostException: addr is of illegal length
07-17 00:05:27.712 20737 21068 I VNCConn-native: com.coboltforge.dontmind.multivnc.VNCConn@5d66846: rfbInit()
07-17 00:05:27.712 20737 21068 I VNCConn-native: com.coboltforge.dontmind.multivnc.VNCConn@5d66846: setupClient()
07-17 00:05:27.712 20737 21068 I VNCConn-native: com.coboltforge.dontmind.multivnc.VNCConn@5d66846: rfbInit() about to connect to '192.168.178.111', port 5902, repeaterId 5900
07-17 00:05:27.723 20737 21067 E Adreno-UNKNOWN: <DrawTexture:62>: GL_INVALID_VALUE
07-17 00:05:27.742 20737 21068 E VNCConn-native: ConnectClientToTcpAddr6: connect
07-17 00:05:27.742 20737 21068 I VNCConn-native: Unable to connect to VNC server
07-17 00:05:27.742 20737 21068 E VNCConn-native: com.coboltforge.dontmind.multivnc.VNCConn@5d66846: rfbInit() connection failed. Cleanup by library.
07-17 00:05:27.742 20737 21068 E VNCConn : java.lang.Exception
07-17 00:05:27.742 20737 21068 W System.err: java.lang.Exception
07-17 00:05:27.743 20737 21068 W System.err: 	at com.coboltforge.dontmind.multivnc.VNCConn$ServerToClientThread.run(VNCConn.java:190)
07-17 00:05:27.782  1609 10273 E InputDispatcher: Window handle Window{5de6a22 u0 Connecting...} has no registered input channel
07-17 00:05:27.814 20737 20737 D VNCConnService: onCreate
07-17 00:05:27.692  1609  1668 I chatty  : uid=1000(system) Binder:1609_2 identical 1 line
07-17 00:05:27.779  1609  1668 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
07-17 00:05:27.815  1609 10273 W ActivityManager: Bringing down service while still waiting for start foreground: ServiceRecord{121bbf6 u0 com.coboltforge.dontmind.multivnc/.VNCConnService}
07-17 00:05:27.827 20737 20737 D VNCConnService: onDestroy
07-17 00:05:27.827 20737 20737 D AndroidRuntime: Shutting down VM
07-17 00:05:27.828 20737 20737 E AndroidRuntime: FATAL EXCEPTION: main
07-17 00:05:27.828 20737 20737 E AndroidRuntime: Process: com.coboltforge.dontmind.multivnc, PID: 20737
07-17 00:05:27.828 20737 20737 E AndroidRuntime: android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{121bbf6 u0 com.coboltforge.dontmind.multivnc/.VNCConnService}
07-17 00:05:27.828 20737 20737 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1945)
07-17 00:05:27.828 20737 20737 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:107)
07-17 00:05:27.828 20737 20737 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:214)
07-17 00:05:27.828 20737 20737 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7356)
07-17 00:05:27.828 20737 20737 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-17 00:05:27.828 20737 20737 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
07-17 00:05:27.828 20737 20737 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)

Directly connecting to Port 5900 of my VM worked fine with a screen resolution of 1280x720! :)

Just tell if you need any other Information for one of the issues

@gujjwal00
Copy link
Contributor

Hi @maurerle ,
Thanks for the detailed report.

Support for framebuffer resize was added very recently (df86b2d1). Can you please try building from source?

the connection opens with a screensize of 800x600 and shows only the upper left part of my 1920x1080 screen

This should not happen. Can you attach full logcat output?

I tried to reproduce with a Debian 10 VM, where I forward the port to 5902 of my laptop.
There I got a crashing App and this log with adb logat:

First, here the connection is failing in ConnectClientToTcpAddr6, so it might be due to mismatched address/port. Can you please double check that the server is listening on correct port and is reachable from device?

Second, the app crashes because of fatal android.app.RemoteServiceException. @bk138 might know more about this.

@maurerle
Copy link
Author

Thanks for your help! :)

Could you please provide a apk binary as I don't have Android Studio here?
Otherwise how long would it take to release the fix to f-droid?

Yes I see now, that forwarding a port through ssh only binds to 127.0.0.1 and not any interface.
Giving better user feedback would be good :)

@gujjwal00
Copy link
Contributor

app-debug.zip

This can be installed alongside existing app.

@gujjwal00
Copy link
Contributor

Giving better user feedback would be good :)

Yes this can be improved a lot.

Root cause of current behavior is that LibVNCClient doesn't return any error code when something goes wrong. It logs the error and simply returns FALSE.
I have done some work on it but haven't found the time to upstream it yet.

@maurerle
Copy link
Author

The Debug-App works great.
No App crash if a connection could not be established and the Connection starts as 800x600 and resizes directly to 1920x1080 and works fine too!

Would be great to release the fixes :)

@bk138
Copy link
Owner

bk138 commented Jul 18, 2021

dupe of #133

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants