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/>.
>
>

Reply via email to