[ 
https://issues.apache.org/jira/browse/GIRAPH-211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eugene Koontz updated GIRAPH-211:
---------------------------------

    Attachment: GIRAPH-211.patch

Avery, modified your patch to fix one problem: a NPE in 
NettyClient.sendWritableRequest() when the supplied destWorkerId param is null. 
This null param happens when requests are made to the master when 
sendWritableRequest() is called by NettyClient.authenticateOnChannel().

With Avery's fix for GIRAPH-360, we associate each request with the taskId of 
the worker that is making the request, and use a pair <taskid,requestid> as the 
key for tracking requests in the clientRequestIdRequestInfoMap. However, the 
Giraph master is not associated with a taskId, and so its taskid is null. 

It wouldn't be a problem that the master has a null task id for normal Giraph 
requests, but for authentication, workers need to authenticate with the master 
just as they must do with the other workers.

This patch works around the problem by simply not registering authentication 
requests (requests with type=SASL_TOKEN_MESSAGE_REQUEST) with the 
clientRequestIdRequestInfoMap. In other words, it's another workaround like the 
"-2" presence in my previous patches. I know this is not ideal, but I wanted to 
keep the momentum going for this JIRA. 

Rather than this workaround, I thought a possible solution would be a separate 
client-side pipeline component that handles request tracking. We'd move the 
clientRequestIdRequestInfoMap into this component, which would handles the 
tracking functionality that currently is spread across 
NettyClient.sendWritableRequest(), .waitAllRequests(), and 
ResponseClientHandler.messageReceived().

Or, maybe I'm missing something obvious and easy :)

Tested this patch successfully with:
{code}
mvn -Phadoop_non_secure clean verify && mvn -Phadoop_0.20.203 clean verify && 
mvn -Phadoop_1.0 clean verify && mvn -Phadoop0.23 clean verify && mvn 
-Phadoop_2.0.0 clean verify && mvn -Phadoop_2.0.1 clean verify && mvn 
-Phadoop_2.0.2 clean verify
{code}
                
> Add secure authentication to Netty IPC
> --------------------------------------
>
>                 Key: GIRAPH-211
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-211
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Eugene Koontz
>            Assignee: Eugene Koontz
>             Fix For: 0.2.0
>
>         Attachments: GIRAPH-211.2.patch, GIRAPH-211.3.patch, 
> GIRAPH-211.4.patch, GIRAPH-211.patch, GIRAPH-211.patch, GIRAPH-211.patch, 
> GIRAPH-211.patch, GIRAPH-211.patch, GIRAPH-211.patch, GIRAPH-211.patch, 
> GIRAPH-211.patch, GIRAPH-211.patch, GIRAPH-211.patch, GIRAPH-211-proposal.txt
>
>
> Gianmarco De Francisci Morales asked on the user list:
> bq. I am getting the exception in the subject when running my giraph program
> bq. on a cluster with Kerberos authentication.
> This leads to the idea of having Kerberos authentication supported within 
> GIRAPH. Hopefully it would use our fast GIRAPH-37 IPC, but could also 
> interoperate with Hadoop security.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to