-
Notifications
You must be signed in to change notification settings - Fork 12
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
The JRE never exits when a DirectTransfer receives a "HostId not allowed" error #17
Comments
I try with a client named hostunknown to hostbs. Client knows Hostbs, but Hostbs doesn't know client hostunknown. Under Linux, the very same scenario (is it?) has no issue. See log in file. |
Of course, the very same client sending to a host that knows about it ends up with correct transfer. |
And if we try to send to an unknown host from client, then it stops early with "Cannot find host" and error 21 (Unknown) |
To clarify things, I created a gist with the config and a script to reproduce it (here) To use it : git clone https://gist.github.com/8fd60dc184f9f5bc210c5e48056ac33d.git tmp (I have the same result with this conf on windows) |
I will try again, but I notice that your configuration gives the same IP/PORT to client and host... |
OK I'm able to reproduce... |
The JRE never exits when a DirectTransfer receives a "HostId not allowed" error waarp#17 When such a message was raized, the current session was not checking if authentication was over, therefore ignoring the wait and lock on this part. Now it checks the missing Startup and Connection futures and if not set, set them in error.
The JRE never exits when a DirectTransfer receives a "HostId not allowed" error waarp#17 When such a message was raized, the current session was not checking if authentication was over, therefore ignoring the wait and lock on this part. Now it checks the missing Startup and Connection futures and if not set, set them in error.
Fix in the v3.3.2. When such a connection was attempted, the related "future" was not set accordingly. Now it is and should be ok for any other cases too that were missing. Don't get it why my own ewample was not showing this... Of course, such issue can be difficult to test in Junit. So we might keep this kind of tests as "manual test". |
You can try with this jar... |
With this jar, the process exits, but on my test instances, it exits after 2m50s (logs attached). |
There is no simple way to prevent retry, I think. |
Moreover, retry allows the remote host to be updated in its configuration, and therefore that this client being authenticated finally, even during the 9th try. That's the principle of retries and "sleep" in between. |
Ok.
Which obfuscate the real error The final output is : {"command":"DirectTransfer","args":"etc/conf.d/server1/client.xml -to server1 -rule default -file foo.txt ","remote":"server1","ruleid":"default","statusCode":"C","specialid":-9223372036854775798,"finalPath":"foo.txt","requested":"server1","requester":"server1","fileInformation":"noinfo","originalSize":6,"originalPath":"foo.txt","status":2,"statusTxt":"Transfer in status: FAILURE "} |
The JRE never exits when a DirectTransfer receives a "HostId not allowed" error waarp#17 When such a message was raized, the current session was not checking if authentication was over, therefore ignoring the wait and lock on this part. Now it checks the missing Startup and Connection futures and if not set, set them in error. Fix also fast fail on bad authentication with correct error at the end.
OK, I check again. I was able to fix this too. Retry is stopped in case of No Authentication (not other cases) and the final status is preserved then. See update in #16 and in the following jar |
👍 |
The scenario to reproduce the error is the following :
an R66 client sends a file to an R66 server, which has no entry for the client in its partner database, with a DirectTransfer (I suppose it is the same for other types of transfers).
The client receives an error packet
A
, closes its network and database connections, but never exits.I attached the debug logs for such a transfer.
Can it be included in the 3.3.2 version ?
client.log
The text was updated successfully, but these errors were encountered: