Remmina crashes using the Mir GTK backend #554

Closed
vanvugt opened this Issue Apr 14, 2015 · 6 comments

Comments

Projects
None yet
3 participants

vanvugt commented Apr 14, 2015

Remmina crashes using the Mir GTK backend.

Initially I would have blamed the gtk/gdk libraries, but it appears Remmina itself is making an X11-only call directly that's the problem:

(gdb) bt
#0 0x00007f74ddb41bd9 in raise (sig=11)

at ../sysdeps/unix/sysv/linux/pt-raise.c:36

#1 0x00007f74cbdfb555 in ?? ()

from /usr/lib/x86_64-linux-gnu/libfreerdp-utils.so.1.1
#2
#3 0x00007f74df971610 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#4 0x00007f74df154a93 in g_hash_table_lookup ()

from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007f74df47f2f4 in gdk_x11_atom_to_xatom_for_display ()

from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#6 0x0000000000435cea in remmina_public_get_current_workspace ()
#7 0x000000000043de41 in remmina_widget_pool_find ()
#8 0x000000000041f36f in remmina_exec_command ()

vanvugt added a commit to vanvugt/Remmina that referenced this issue Apr 14, 2015

Contributor

giox069 commented Apr 15, 2015

Yes, Remmina has some legacy X11 code, and I was expecting for months problems under Mir/Wayland. Now they start coming 😄
I will be happy to merge your pull requests after testing them and/or helping you in fixing this.
Which distro/setup are you using ? Ubuntu vivid or vivid-next or something else ?

vanvugt commented Apr 15, 2015

I'm using plain vivid.

Contributor

giox069 commented Apr 15, 2015

Just some thoughts: remmina is X depenent in two different areas

  1. Some X code left around, and this can be migrated to 100%GTK
  2. Use of GtkSocket: many secondary plugins (NX, XDMCP...) are just external X programs called by Remmina via GtkSocket. But GtkSocket works only on X.
Member

antenore commented May 2, 2015

@giox069
IMHO NX and XDMCP should be kept out of the building process (let's say disabled by default) till someone will rewrite them. Do you think we have several users using these plugins?
Which other code is still using X11? I saw only the plugin related ones.

@antenore antenore added the enhancement label May 2, 2015

Contributor

giox069 commented May 2, 2015

Xorg code or GtkSockets calls seems to be in the following files:

remmina-plugins/common/remmina_plugin.h
remmina/src/remmina_public.h
remmina/src/remmina_public.c
remmina-plugins/rdp/rdp_event.c
remmina-plugins/nx/nx_session_manager.c
remmina-plugins/nx/nx_plugin.c
remmina-plugins/xdmcp/xdmcp_plugin.c

For Xorg calls: the work to do to remove them is not very big, so it can be done without big effort.
For GtkSockets use: if we disable NX and XDMCP plugin during the build process, linux distributions will never have it available. I have not full usage statistics, but it seems that 10% of the Ubuntu PPA users also installs NX and XDMCP plugins package. My proposal is to leave NX and XDMCP into the build process (do not remove them!): they will work fine both on current Xorg installs and future Mir+Xmir+GTK(X backend) and Wayland+Xwayland+GTK(X backend) install. They will just stop working when a user will chose to use GTK with native Mir or Wayland backend.
In this case (GTK native on Mir/Wayland), Remmina colud just warn the user that NX and XDMCP plugins will not work. But... it's not urgent, since pure GTK on Mir/Wayland distributions are not yet there and it's difficult to develop/test this now.

I'm currently unable to have an Ubuntu with a working Mir, I tried various guides around but only with partial success. @vanvugt which configuration did you use to have a working Mir on 15.04 ?

vanvugt commented May 21, 2015

Sorry, I have no need for Remmina any more. The goal was to only make RDP work on the Mir GTK platform. Other protocols way well need fixing but I never cared about those.

If testing with Mir, firstly you need to know "Xmir" is deprecated. Ignore any instructions that mention "Xmir". What you should do is (using regular vivid) install package mir-demos and then run:
sudo mir_proving_server --vt 1
Thereafter you can switch GTK clients to use the Mir server on VT 1 by:
sudo env DISPLAY="" ...

@giox069 giox069 closed this in db6f970 Jul 25, 2015

giox069 added a commit that referenced this issue Jul 25, 2015

Merge pull request #622 from FreeRDP/no_x_fixes
Remove some legacy Xorg code, fixes #554

akallabeth pushed a commit to akallabeth/Remmina that referenced this issue Jan 21, 2016

akallabeth pushed a commit to akallabeth/Remmina that referenced this issue Jan 21, 2016

Merge pull request #622 from FreeRDP/no_x_fixes
Remove some legacy Xorg code, fixes #554
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment