[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-30 Thread Andrew Purtell (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117914#comment-13117914
 ] 

Andrew Purtell commented on HBASE-4515:
---

+1 on HBASE-4515_trunk.patch

 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Gary Helmling
 Attachments: 0001-HBASE-4515-User.getCurrent-can-cause-NPE.patch, 
 HBASE-4515_trunk.patch


 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-29 Thread Jonathan Hsieh (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117623#comment-13117623
 ] 

Jonathan Hsieh commented on HBASE-4515:
---

A stack trace of the error that I'd like to avoid.

{code}
2011-09-29 11:38:45,823 ERROR [Thread-341] hbase.MiniHBaseCluster(201): Error 
starting cluster
java.lang.NullPointerException
at org.apache.hadoop.hbase.security.User.getName(User.java:71)
at 
org.apache.hadoop.hbase.HBaseTestingUtility.getDifferentUser(HBaseTestingUtility.java:1421)
at 
org.apache.hadoop.hbase.MiniHBaseCluster.init(MiniHBaseCluster.java:191)
at 
org.apache.hadoop.hbase.MiniHBaseCluster.init(MiniHBaseCluster.java:76)
at 
org.apache.hadoop.hbase.MiniHBaseCluster.init(MiniHBaseCluster.java:61)
at 
org.apache.hadoop.hbase.HBaseTestingUtility.restartHBaseCluster(HBaseTestingUtility.java:505)
at 
org.apache.hadoop.hbase.util.hbck.TestOfflineMetaRebuild.testMetaRebuild(TestOfflineMetaRebuild.java:306)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at 
org.junit.internal.runners.statements.FailOnTimeout$1.run(FailOnTimeout.java:28)
{code}

 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Jonathan Hsieh

 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-29 Thread Gary Helmling (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117688#comment-13117688
 ] 

Gary Helmling commented on HBASE-4515:
--

I think the key issue here is differences in behavior between non-secure 
Hadoop's {{UserGroupInformation.getCurrentUGI()}} and secure Hadoop's 
{{UserGroupInformation.getCurrentUser()}}.  In secure Hadoop, if the current 
user is {{null}}, it will perform an implicit login and use the subject 
retrieved through that as the current user.  In non-secure Hadoop (0.20.2, 
0.20-append), the login step is completely separate, so if the current user has 
not been set, only {{null}} will be returned.

For HBase purposes, I think we should make sure {{User.getCurrent()}} always 
performs the implicit login for consistent behavior.  Let me post an alternate 
patch that takes that approach and see if it fixes your test problem.

 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Jonathan Hsieh
 Attachments: 0001-HBASE-4515-User.getCurrent-can-cause-NPE.patch


 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-29 Thread jirapos...@reviews.apache.org (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117723#comment-13117723
 ] 

jirapos...@reviews.apache.org commented on HBASE-4515:
--


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2123/#review2190
---


IMO, it would be best to avoid letting either a null or NPE escape.

- Andrew


On 2011-09-29 21:41:46, jmhsieh wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/2123/
bq.  ---
bq.  
bq.  (Updated 2011-09-29 21:41:46)
bq.  
bq.  
bq.  Review request for hbase and Gary Helmling.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  commit aa319da9896588f97aeeb50a39bc5641ae58d537
bq.  Author: Jonathan Hsieh j...@cloudera.com
bq.  Date:   Thu Sep 29 13:27:22 2011 -0700
bq.  
bq.  HBASE-4515 User.getCurrent() can cause NPE
bq.  
bq.  
bq.  This addresses bug HBASE-4515.
bq.  https://issues.apache.org/jira/browse/HBASE-4515
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.src/main/java/org/apache/hadoop/hbase/security/User.java d90f2c7 
bq.src/test/java/org/apache/hadoop/hbase/security/TestUser.java 6e497da 
bq.  
bq.  Diff: https://reviews.apache.org/r/2123/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  New unit tests passes although the behavior it displays is a bit suspect.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  jmhsieh
bq.  
bq.



 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Jonathan Hsieh
 Attachments: 0001-HBASE-4515-User.getCurrent-can-cause-NPE.patch, 
 HBASE-4515_trunk.patch


 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-29 Thread Jonathan Hsieh (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117735#comment-13117735
 ] 

Jonathan Hsieh commented on HBASE-4515:
---

@Gary I tested your fix and it works for me.  Can this be backported to 
0.92/0.90.x as well?  I need it for the unit tests of HBASE-4377, which I would 
like to implement and backport as well.  



 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Jonathan Hsieh
 Attachments: 0001-HBASE-4515-User.getCurrent-can-cause-NPE.patch, 
 HBASE-4515_trunk.patch


 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-29 Thread jirapos...@reviews.apache.org (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117740#comment-13117740
 ] 

jirapos...@reviews.apache.org commented on HBASE-4515:
--



bq.  On 2011-09-29 23:08:13, Andrew Purtell wrote:
bq.   IMO, it would be best to avoid letting either a null or NPE escape.

I agree, I just didn't figure out how the value got populated.  Gary's posted a 
patch that avoids the npe/null by logging in and that code worked for me.  


- jmhsieh


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2123/#review2190
---


On 2011-09-29 21:41:46, jmhsieh wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/2123/
bq.  ---
bq.  
bq.  (Updated 2011-09-29 21:41:46)
bq.  
bq.  
bq.  Review request for hbase and Gary Helmling.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  commit aa319da9896588f97aeeb50a39bc5641ae58d537
bq.  Author: Jonathan Hsieh j...@cloudera.com
bq.  Date:   Thu Sep 29 13:27:22 2011 -0700
bq.  
bq.  HBASE-4515 User.getCurrent() can cause NPE
bq.  
bq.  
bq.  This addresses bug HBASE-4515.
bq.  https://issues.apache.org/jira/browse/HBASE-4515
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.src/main/java/org/apache/hadoop/hbase/security/User.java d90f2c7 
bq.src/test/java/org/apache/hadoop/hbase/security/TestUser.java 6e497da 
bq.  
bq.  Diff: https://reviews.apache.org/r/2123/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  New unit tests passes although the behavior it displays is a bit suspect.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  jmhsieh
bq.  
bq.



 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Gary Helmling
 Attachments: 0001-HBASE-4515-User.getCurrent-can-cause-NPE.patch, 
 HBASE-4515_trunk.patch


 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-29 Thread jirapos...@reviews.apache.org (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117771#comment-13117771
 ] 

jirapos...@reviews.apache.org commented on HBASE-4515:
--



bq.  On 2011-09-29 23:08:13, Andrew Purtell wrote:
bq.   IMO, it would be best to avoid letting either a null or NPE escape.
bq.  
bq.  jmhsieh wrote:
bq.  I agree, I just didn't figure out how the value got populated.  Gary's 
posted a patch that avoids the npe/null by logging in and that code worked for 
me.
bq.  
bq.  Michael Stack wrote:
bq.  Should we cancel this review then?

done.


- jmhsieh


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2123/#review2190
---


On 2011-09-29 21:41:46, jmhsieh wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/2123/
bq.  ---
bq.  
bq.  (Updated 2011-09-29 21:41:46)
bq.  
bq.  
bq.  Review request for hbase and Gary Helmling.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  commit aa319da9896588f97aeeb50a39bc5641ae58d537
bq.  Author: Jonathan Hsieh j...@cloudera.com
bq.  Date:   Thu Sep 29 13:27:22 2011 -0700
bq.  
bq.  HBASE-4515 User.getCurrent() can cause NPE
bq.  
bq.  
bq.  This addresses bug HBASE-4515.
bq.  https://issues.apache.org/jira/browse/HBASE-4515
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.src/main/java/org/apache/hadoop/hbase/security/User.java d90f2c7 
bq.src/test/java/org/apache/hadoop/hbase/security/TestUser.java 6e497da 
bq.  
bq.  Diff: https://reviews.apache.org/r/2123/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  New unit tests passes although the behavior it displays is a bit suspect.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  jmhsieh
bq.  
bq.



 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Gary Helmling
 Attachments: 0001-HBASE-4515-User.getCurrent-can-cause-NPE.patch, 
 HBASE-4515_trunk.patch


 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4515) User.getCurrent() can cause NPE.

2011-09-29 Thread Gary Helmling (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13117861#comment-13117861
 ] 

Gary Helmling commented on HBASE-4515:
--

I ran the attached patch through the full test suite on trunk.  The only test 
failure was:
{noformat}
Tests in error: 
  
testExistingZnodeBlocksSplitAndWeRollback(org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster)
{noformat}

which seems otherwise flaky and unrelated.



 User.getCurrent() can cause NPE.
 

 Key: HBASE-4515
 URL: https://issues.apache.org/jira/browse/HBASE-4515
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0, 0.94.0
Reporter: Jonathan Hsieh
Assignee: Gary Helmling
 Attachments: 0001-HBASE-4515-User.getCurrent-can-cause-NPE.patch, 
 HBASE-4515_trunk.patch


 When testing with miniclusters that shutdown and are restarted, sometimes a 
 call to User.getCurrent().getName() NPEs when attempting to restart hbase.  
 Oddly this happens consistently on particular branches and not on others. I 
 don't know or understand why this happens but it has something to do with the 
 getCurrentUGI call in  o.a.h.h.security.User.HadoopUser sometimes returning 
 null and sometimes returning data.
 {code}
private HadoopUser() {
   try {
 ugi = (UserGroupInformation) callStatic(getCurrentUGI);
 if (ugi == null) {
   LOG.warn(Although successfully retrieved UserGroupInformation 
   +   it was null!);
 }
   } catch (RuntimeException re) {
 {code}
 This patch essentially is a workaround -- it propagates the null so that 
 clients can check and avoid the NPE.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira