Woops, that's my typo -- I should have copied-pasted the name of the
flag, like I did with the rest of them.
I'm glad it worked for you.
On 6/15/17 6:29 PM, Jason Heo wrote:
Hi Alexey,
Thank you for helping me.
validity seconds works like a charm!
But I found that 'n' is missing,so that
"--auth*n*_token_validity_seconds" is valid.
Thanks!
2017-06-15 3:37 GMT+09:00 Alexey Serbin <[email protected]
<mailto:[email protected]>>:
Hi Jason,
It seems your Java Kudu client hit the authn token expiration
issue. As you mentioned, that's a well known issue and it is
described in the docs. Just FYI, the Kudu C++ client starting
1.4.0 automatically re-acquires authn token when needed, and I
hope the Java client will do so as well in next release. If you
are interested in details, the issue is tracked by
https://issues.apache.org/jira/browse/KUDU-2013
<https://issues.apache.org/jira/browse/KUDU-2013> and is being
actively worked on (there is a WIP patch for that).
As for a temporary workaround, you could try one the following:
* Set authn token expiration time to some huge value, i.e. run
the Kudu masters with custom value for the
--auth_token_validity_seconds flag. The default is 7 days (604800
seconds); you could try to set it to, say, 300 days:
'--auth_token_validity_seconds=25920000'. That would be a good
option if your use-case requires a secure Kudu cluster with
authentication. For this workaround, once Kudu masters are
restarted with new flags, you also need to restart your Java
clients to acquire a new token with longer TTL if you don't want
them to hit the issue in one week.
* Disable RPC authentication and encryption, i.e. run both Kudu
masters and tablet servers with '--rpc_authentication=disabled
--rpc_encryption=disabled' flags (you need to disable both authn
and encryption). That would be an option if your use-case does
not require a secure Kudu cluster. In this case you don't need to
restart your Java clients once you restarted Kudu server-side
components.
Hope this helps.
Kind regards,
Alexey
On 6/14/17 2:44 AM, Jason Heo wrote:
Hi.
I'm using Apache Kudu 1.4.0.
And I have a long running Java Daemon which is a kudu client
at the same time.
Today (7 days has been past since the Java Daemon has been
started) I suddenly got an following error.
W0614 15:29:11.934401 62459 negotiation.cc:310] Unauthorized
connection attempt: Server connection negotiation failed:
server connection from ip_addr:56604: authentication token expired
W0614 15:29:11.956845 62459 negotiation.cc:310] Unauthorized
connection attempt: Server connection negotiation failed:
server connection from ip_addr:56606: authentication token expired
...
...
...
W0614 17:47:18.347970 74099 negotiation.cc:310] Unauthorized
connection attempt: Server connection negotiation failed:
server connection from ip_addr:56172: authentication token expired
W0614 17:47:20.488306 74100 negotiation.cc:310] Unauthorized
connection attempt: Server connection negotiation failed:
server connection from ip_addr:56180: authentication token expired
Kudu is started with this options
--unlock_experimental_flags=true
...
--superuser_acl=user1,user2
The Java Daemon is started with user2 account.
How can I prevent from happening this error again.
I've read this manual.
https://kudu.apache.org/docs/security.html#known-limitations
<https://kudu.apache.org/docs/security.html#known-limitations>
It says that "so long-lived clients in secure clusters are not
supported" Then Should I set `--rpc-authentication=disable`?
Thanks.
Regards,
Jason