Hi Mike, I've spent a lot of time with this issue, and here's a summary of where I am (long story short, this has never worked with freerdp2). I've tried to be as thorough as possible, but if there's other data you need/want, let me know.
Going through the git history (in chronological order), here's what I've found: *381ff1a* is the last version of guacd on freerdp1 - I've been able to build a docker image off of this commit and I do NOT experience the issue moving files from the virtual drive to the physical drive when in negotiated encryption (which ends up using RDP) mode I built this image using: docker build -t guacd:bisect --build-arg DEBIAN_VERSION=9.8 (as this is the debian version in the published guacamole/guacd:1.0.0 image) *7b93b3d* is the first version of guacd I could get to build properly *and* have the virtual drive even show on the remote machine. This version experiences the issue moving files from the virtual drive to the physical drive when in negotiated encryption (which ends up using RDP) mode I built this image using: docker build -t guacd:bisect --build-arg DEBIAN_VERSION=10.6 (as this is the debian version in the published guacamole/guacd:1.1.0 image) There have been some subtle differences in the guacd DEBUG logs around the failures with 7b93b3d and the tagged 1.1.0 and 1.2.0 images. All of them kind of look the same, but differ in details, especially around the connection closing. And every time, the file being transferred from the virtual drive to the host's physical file system is 50MB. *With guacd 7b93b3d (note extra guac_rdpdr_fs_process_read statements - almost like it retried after the first failure):* guacd[10]: DEBUG: Clipboard data received. Reporting availability of clipboard data to RDP server. guacd[10]: DEBUG: guac_rdp_fs_open: path="\tempfile", access=0x120089, file_attributes=0x0, create_disposition=0x1, create_options=0x200064 guacd[10]: DEBUG: guac_rdp_fs_open: Normalized path "\tempfile" to "\tempfile". guacd[10]: DEBUG: guac_rdp_fs_open: Translated path "\tempfile" to "/shares/a92552f6-1c43-4459-b338-c506a72a04c5-starves/tempfile". guacd[10]: DEBUG: guac_rdp_fs_open: native open: real_path="/shares/a92552f6-1c43-4459-b338-c506a72a04c5-starves/tempfile", flags=0x0 guacd[10]: DEBUG: guac_rdp_fs_open: Opened "\tempfile" as file_id=0 guacd[10]: DEBUG: guac_rdpdr_fs_process_create: [file_id=0] desired_access=0x120089, file_attributes=0x0, create_disposition=0x1, create_options=0x200064, path="\tempfile" guacd[10]: DEBUG: guac_rdpdr_fs_process_query_basic_info: [file_id=0] guacd[10]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=0] guacd[10]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=0] guacd[10]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=0] guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=0 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=52396032 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=32768 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=65536 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=94208, offset=98304 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=188416, offset=192512 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=376832, offset=380928 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=753664, offset=757760 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=585728, offset=1511424 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=2097152 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=3145728 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=4194304 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=5242880 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=6291456 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=7340032 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=8388608 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=9437184 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=10485760 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=11534336 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=12582912 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=13631488 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=14680064 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=15728640 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=16777216 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=16809984 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=65536, offset=16842752 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=131072, offset=16908288 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=262144, offset=17039360 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=524288, offset=17301504 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=17825792 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=18874368 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=19922944 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=20971520 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=22020096 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=23068672 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=24117248 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=25165824 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=26214400 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=27262976 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=28311552 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=29360128 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=30408704 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=31457280 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=32505856 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=33554432 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=33587200 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=65536, offset=33619968 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=131072, offset=33685504 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=262144, offset=33816576 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=524288, offset=34078720 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=34603008 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=35651584 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=36700160 guacd[10]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=37748736 [10:22:30:050] [10:14] [ERROR][com.freerdp.core.transport] - BIO_should_retry returned a system error 104: Connection reset by peer [10:22:30:051] [10:14] [ERROR][com.freerdp.core.transport] - BIO_read returned a system error 104: Connection reset by peer guacd[10]: ERROR: Connection closed. *With guacd 1.1.0 (BIO_read returned a system error 32: Broken pipe):* guacd[23]: DEBUG: guac_rdp_fs_open: path="\tempfile", access=0x120089, file_attributes=0x0, create_disposition=0x1, create_options=0x200064 guacd[23]: DEBUG: guac_rdp_fs_open: Normalized path "\tempfile" to "\tempfile". guacd[23]: DEBUG: guac_rdp_fs_open: Translated path "\tempfile" to "/shares/a92552f6-1c43-4459-b338-c506a72a04c5-starves/tempfile". guacd[23]: DEBUG: guac_rdp_fs_open: native open: real_path="/shares/a92552f6-1c43-4459-b338-c506a72a04c5-starves/tempfile", flags=0x0 guacd[23]: DEBUG: guac_rdp_fs_open: Opened "\tempfile" as file_id=1 guacd[23]: DEBUG: guac_rdpdr_fs_process_create: [file_id=1] desired_access=0x120089, file_attributes=0x0, create_disposition=0x1, create_options=0x200064, path="\tempfile" guacd[23]: DEBUG: guac_rdpdr_fs_process_query_basic_info: [file_id=1] guacd[23]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=1] guacd[23]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=1] guacd[23]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=1] guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=32768, offset=0 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=32768, offset=52396032 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=32768, offset=32768 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=32768, offset=65536 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=94208, offset=98304 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=188416, offset=192512 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=376832, offset=380928 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=753664, offset=757760 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=585728, offset=1511424 guacd[23]: DEBUG: guac_rdpdr_fs_process_read: [file_id=1] length=1048576, offset=2097152 guacd[23]: DEBUG: BIO_should_retry returned a system error 104: Connection reset by peer guacd[23]: DEBUG: BIO_should_retry returned a system error 32: Broken pipe guacd[23]: DEBUG: ERRINFO_DECRYPT_FAILED (0x00001192):(a) Decryption using Standard RDP Security mechanisms (section 5.3.6) failed. (b) Session key creation using Standard RDP Security mechanisms (section 5.3.5) failed. guacd[23]: DEBUG: BIO_read returned a system error 32: Broken pipe guacd[23]: ERROR: Connection closed. *With guacd 1.2.0 (BIO_read returned a system error 104: Connection reset by peer):* guacd[11]: DEBUG: guac_rdp_fs_open: path="\tempfile", access=0x120089, file_attributes=0x0, create_disposition=0x1, create_options=0x200064 guacd[11]: DEBUG: guac_rdp_fs_open: Normalized path "\tempfile" to "\tempfile". guacd[11]: DEBUG: guac_rdp_fs_open: Translated path "\tempfile" to "/shares/a92552f6-1c43-4459-b338-c506a72a04c5-starves/tempfile". guacd[11]: DEBUG: guac_rdp_fs_open: native open: real_path="/shares/a92552f6-1c43-4459-b338-c506a72a04c5-starves/tempfile", flags=0x0 guacd[11]: DEBUG: guac_rdp_fs_open: Opened "\tempfile" as file_id=0 guacd[11]: DEBUG: guac_rdpdr_fs_process_create: [file_id=0] desired_access=0x120089, file_attributes=0x0, create_disposition=0x1, create_options=0x200064, path="\tempfile" guacd[11]: DEBUG: guac_rdpdr_fs_process_query_basic_info: [file_id=0] guacd[11]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=0] guacd[11]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=0] guacd[11]: DEBUG: guac_rdpdr_fs_process_query_standard_info: [file_id=0] guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=0 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=52396032 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=32768 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=32768, offset=65536 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=94208, offset=98304 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=188416, offset=192512 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=376832, offset=380928 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=753664, offset=757760 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=585728, offset=1511424 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=2097152 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=3145728 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=4194304 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=5242880 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=6291456 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=7340032 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=8388608 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=9437184 guacd[11]: DEBUG: guac_rdpdr_fs_process_read: [file_id=0] length=1048576, offset=10485760 guacd[11]: DEBUG: BIO_should_retry returned a system error 104: Connection reset by peer guacd[11]: DEBUG: ERRINFO_DECRYPT_FAILED (0x00001192):(a) Decryption using Standard RDP Security mechanisms (section 5.3.6) failed. (b) Session key creation using Standard RDP Security mechanisms (section 5.3.5) failed. guacd[11]: DEBUG: BIO_read returned a system error 104: Connection reset by peer guacd[11]: ERROR: Connection closed. On Fri, Mar 5, 2021 at 1:31 PM Mike Jumper <[email protected]> wrote: > On Fri, Mar 5, 2021 at 6:06 AM Shaun Tarves > <[email protected]> wrote: > >> Hey again Mike, >> >> It's been a bit slow for us to get through the myriad commits between >> 1.0.0 and 1.1.0, ... >> > > git bisect should still search that at roughly O(log n) thanks to its > binary search through those commits but ... > > >> ... but the most obvious thing that jumps out at me is that you went from >> freerdp to freerdp2 so that seems like a very likely cause. Should we >> continue to try to narrow it down or do you want to explore whether this is >> a freerdp2 issue? >> > > ... I agree that this is the most likely culprit. I suspect you'll end up > having to tell git bisect to skip a few unbuildable commits, but the route > forward sounds like: > > * Identify a known-good FreeRDP 2.x > * Identify a known-bad FreeRDP 2.x > * git bisect between those (hopefully not more than a dozen-ish steps) to > determine which broke things > > As guacamole-server will likely need to be rebuilt for each of those > tests, scripting the rebuild of both guacamole-server and FreeRDP should > make this less crazy. > > Michael Jumper > CEO, Lead Developer > Glyptodon Inc <https://enterprise.glyptodon.com/>. > >
