Bug 5245 - SeamlessRDP broken on Windows Server 2012 and 2012 R2
Summary: SeamlessRDP broken on Windows Server 2012 and 2012 R2
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: | rdesktop (deprecated) (show other bugs)
Version: 4.2.0
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.6.0
Assignee: Henrik Andersson
URL:
Keywords: derfian_tester, ossman_tester, relnotes
Depends on:
Blocks:
 
Reported: 2014-09-08 13:16 CEST by Henrik Andersson
Modified: 2016-12-05 12:04 CET (History)
0 users

See Also:
Acceptance Criteria:


Attachments

Description Henrik Andersson cendio 2014-09-08 13:16:52 CEST
Bug #4702 was the first try to fix this issue. The identified main cause was fixed but it also raised a lot more problems with SeamlessRDP on Windows Server 2012. Due to time constraints for the 4.3.0 release bug #4702 is closed and this bugs is the continuation.

There seems to be two problems left to solve, first a spawn of subprocess is timed out, secondly the window hooks doesn't seem to work as expected.
Comment 1 Henrik Andersson cendio 2015-08-19 10:17:14 CEST
Upstream bug created https://github.com/rdesktop/seamlessrdp/issues/1
Comment 2 Henrik Andersson cendio 2015-08-27 14:10:18 CEST
Seamlessrdp tries to open same channel using WTSVirtualChannelOpen() which is not supported. It did "just" work through versions up to 2008 but 2012 introduced changes that prevents opening the same channel several times. It's not even supported from different processes.

Possible solution is to create a shared memory IPC from the hooks to seamlessrdpshell for read/write data over a single virtual channel.

See Kevin's second answer on this thread:

https://social.technet.microsoft.com/Forums/en-US/7ce64172-fa7a-4a70-8635-4b83a0d88a79/wtsvirtualchannelopen-fails-on-windows-server-2012-identical-code-works-fine-on-windows-server-2008
Comment 4 Henrik Andersson cendio 2015-11-16 15:12:09 CET
The impl. for this bug affect all platforms and tests should be performed at least on oldest supported platform and 2012. The scope of the change is fundamental and all aspects of the function needs to be tested.

Here follows a few takes on tests;

 - reconnect
 - killed seamlessrdpshell
 - 32bit programs on 64 bit arch
 - error handling
 - seamless persistent mode
Comment 5 Karl Mikaelsson cendio 2015-11-24 14:54:11 CET
(In reply to comment #4)
> The impl. for this bug affect all platforms and tests should be performed at
> least on oldest supported platform and 2012.

After discussions with Henrik, we agreed that we should test 2012R2 rather than 2012.
Comment 6 Pierre Ossman cendio 2015-11-30 16:45:35 CET
32-bit applications aren't working properly. They just hang with 100% CPU usage.
Comment 7 Henrik Andersson cendio 2015-12-02 12:19:48 CET
(In reply to comment #6)
> 32-bit applications aren't working properly. They just hang with 100% CPU
> usage.

I was able to reproduce this issue. However if i run a 32bit seamlessrdpshell.exe there was no problem at all running the 32bit application...
Comment 9 Henrik Andersson cendio 2015-12-07 10:17:26 CET
Commit 31013, changes the write buffer size to something more decent for proper feedback to user.
Comment 10 Pierre Ossman cendio 2015-12-07 15:48:11 CET
A crashes seamlessrdpshell works fine but there is some issue with a hung seamlessrdpshell. This is tested by doing "suspend" in process explorer.

With a single application then the application correctly times out and starts ignoring seamlessrdpshell. However seamlessrdpshell itself is permanently locked up after doing resume on it.

With two applications then the applications lock up permanently as well.
Comment 12 Pierre Ossman cendio 2015-12-08 16:35:10 CET
Everything works just fine on 2008R2 now. I've tested both 64-bit and 32-bit applications, and both suspending and killing seamlessrdpshell. I can't find any regressions.
Comment 13 Karl Mikaelsson cendio 2015-12-15 15:38:10 CET
Seamless 32-bit applications from Windows 2012 R2 never shows up on the Linux desktop. Task manager on Windows shows the process as "Not responding".

Verified with both Notepad and Calculator.

> tl-run-winapp-seamless "C:\Windows\SysWOW64\notepad.exe"
> tl-run-winapp-seamless "C:\Windows\SysWOW64\calc.exe"
Comment 14 Henrik Andersson cendio 2015-12-17 08:39:07 CET
(In reply to comment #13)
> Seamless 32-bit applications from Windows 2012 R2 never shows up on the Linux
> desktop. Task manager on Windows shows the process as "Not responding".
> 
> Verified with both Notepad and Calculator.
> 
> > tl-run-winapp-seamless "C:\Windows\SysWOW64\notepad.exe"
> > tl-run-winapp-seamless "C:\Windows\SysWOW64\calc.exe"

I just installed nightly build of windows tools on my 2012R2 test environment, and I'm not able to reproduce your errors. Everything works fine...
Comment 15 Karl Mikaelsson cendio 2015-12-18 11:53:16 CET
(In reply to comment #13)
> Seamless 32-bit applications from Windows 2012 R2 never shows up on the Linux
> desktop. Task manager on Windows shows the process as "Not responding".
> 
> Verified with both Notepad and Calculator.
> 
> > tl-run-winapp-seamless "C:\Windows\SysWOW64\notepad.exe"
> > tl-run-winapp-seamless "C:\Windows\SysWOW64\calc.exe"

Can't reproduce after updating to the latest nightly build.
Comment 16 Karl Mikaelsson cendio 2015-12-18 11:59:36 CET
(In reply to comment #15)
> (In reply to comment #13)
> > Seamless 32-bit applications from Windows 2012 R2 never shows up on the Linux
> > desktop. Task manager on Windows shows the process as "Not responding".
> > 
> > Verified with both Notepad and Calculator.
> > 
> > > tl-run-winapp-seamless "C:\Windows\SysWOW64\notepad.exe"
> > > tl-run-winapp-seamless "C:\Windows\SysWOW64\calc.exe"
> 
> Can't reproduce after updating to the latest nightly build.

And with that, everything seems to work fine.

Note You need to log in before you can comment on or make changes to this bug.