Accumulo
  1. Accumulo
  2. ACCUMULO-3031

jdk 1.7.0_65 breaks ShellSetInstanceTest

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.7.0
    • Component/s: None
    • Labels:
      None

      Description

      Switching back to jdk1.7.0_60 fixes it.

      Strongly suspect a jdk bug (thanks to Bill Havanki for finding this for me).

      Example output:

      Bad <init> method call from inside of a branch
      Exception Details:
        Location:
          org/apache/accumulo/shell/Shell.<init>(Ljline/console/ConsoleReader;Ljava/io/PrintWriter;)V @36: invokespecial
        Reason:
          Error exists in the bytecode
        Bytecode:
          0000000: 2a4e 1300 94b8 004d 03bd 000d 1300 95b8
          0000010: 0028 b800 823a 0519 05b2 0032 a500 0e2a
          0000020: 01c0 0084 b700 87a7 0009 2db7 0096 0157
          0000030: 2a03 b500 9a2a 1300 9cb5 00a0 2a13 00a2
          0000040: b500 a52a 0000 0000 014e 013a 0413 00a7
          0000050: b800 2203 bd00 0d13 00a9 b800 28b8 002e
          0000060: 3a05 1905 b200 32a5 0034 1905 c100 3499
          0000070: 0022 b800 3a13 00a7 b800 2213 000d 01b6
          0000080: 003e b600 4201 b600 46c0 0090 3a04 a700
          0000090: 0a19 05c0 0090 3a04 a700 0cbb 0090 59b7
          00000a0: 00aa 3a04 1904 b500 ae2a 0000 0000 014e
          00000b0: 013a 0413 00a7 b800 2203 bd00 0d13 00a9
          00000c0: b800 28b8 002e 3a05 1905 b200 32a5 0034
          00000d0: 1905 c100 3499 0022 b800 3a13 00a7 b800
          00000e0: 2213 000d 01b6 003e b600 4201 b600 46c0
          00000f0: 0090 3a04 a700 0a19 05c0 0090 3a04 a700
          0000100: 0cbb 0090 59b7 00aa 3a04 1904 b500 b12a
          0000110: 0000 0000 014e 013a 0413 00b3 b800 2203
          0000120: bd00 0d13 00b5 b800 28b8 002e 3a05 1905
          0000130: b200 32a5 0034 1905 c100 3499 0022 b800
          0000140: 3a13 00b3 b800 2213 000d 01b6 003e b600
          0000150: 4201 b600 46c0 0092 3a04 a700 0a19 05c0
          0000160: 0092 3a04 a700 0cbb 0092 59b7 00b6 3a04
          0000170: 1904 b500 b92a 0000 0000 014e 013a 0413
          0000180: 00b3 b800 2203 bd00 0d13 00b5 b800 28b8
          0000190: 002e 3a05 1905 b200 32a5 0034 1905 c100
          00001a0: 3499 0022 b800 3a13 00b3 b800 2213 000d
          00001b0: 01b6 003e b600 4201 b600 46c0 0092 3a04
          00001c0: a700 0a19 05c0 0092 3a04 a700 0cbb 0092
          00001d0: 59b7 00b6 3a04 1904 b500 bc2a 03b5 00c0
          00001e0: 2a03 b500 c32a 01b5 00c7 2a01 b500 cb2a
          00001f0: 04b5 00ce 2a01 4e09 3704 013a 062d 01a5
          0000200: 0009 2d3a 06a7 000b 1300 4ab8 004d 3a06
          0000210: 1906 1300 d003 bd00 0d13 00d2 b800 2813
          0000220: 00d4 b800 673a 0719 07b2 0032 a600 0bb8
          0000230: 00d6 3704 a700 0d19 07c0 00d8 b600 db37
          0000240: 0416 04b5 00df 2a03 b500 e22a 01b5 00e4
          0000250: 2a03 b500 e72a 2bb5 00e9 2a2c b500 e4b1
          0000260:                                        
        Stackmap Table:
          full_frame(@42,{UninitializedThis,Object[#15],Object[#25],UninitializedThis,Top,Object[#13]},{})
          full_frame(@48,{Object[#2],Object[#15],Object[#25],Object[#2],Top,Object[#13]},{})
          full_frame(@145,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@152,{Object[#2],Object[#15],Object[#25],Null,Object[#144],Object[#13]},{Object[#2]})
          full_frame(@155,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@164,{Object[#2],Object[#15],Object[#25],Null,Object[#144],Object[#13]},{Object[#2]})
          full_frame(@247,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@254,{Object[#2],Object[#15],Object[#25],Null,Object[#144],Object[#13]},{Object[#2]})
          full_frame(@257,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@266,{Object[#2],Object[#15],Object[#25],Null,Object[#144],Object[#13]},{Object[#2]})
          full_frame(@349,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@356,{Object[#2],Object[#15],Object[#25],Null,Object[#146],Object[#13]},{Object[#2]})
          full_frame(@359,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@368,{Object[#2],Object[#15],Object[#25],Null,Object[#146],Object[#13]},{Object[#2]})
          full_frame(@451,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@458,{Object[#2],Object[#15],Object[#25],Null,Object[#146],Object[#13]},{Object[#2]})
          full_frame(@461,{Object[#2],Object[#15],Object[#25],Null,Null,Object[#13]},{Object[#2]})
          full_frame(@470,{Object[#2],Object[#15],Object[#25],Null,Object[#146],Object[#13]},{Object[#2]})
          full_frame(@520,{Object[#2],Object[#15],Object[#25],Null,Long,Null},{Object[#2]})
          full_frame(@528,{Object[#2],Object[#15],Object[#25],Null,Long,Object[#21]},{Object[#2]})
          full_frame(@567,{Object[#2],Object[#15],Object[#25],Null,Long,Object[#21],Object[#13]},{Object[#2]})
          same_locals_1_stack_item_frame(@577,Object[#2])
      
      

        Activity

        Hide
        Bill Havanki added a comment -

        Although this isn't really due to a problem on our end, we hit this because we use Powermock in this test. If we can move away from that, this issue will go away, and we'll have more testable code.

        (This is possibly ironic since I introduced Powermock for this test, but I really didn't like to.)

        Show
        Bill Havanki added a comment - Although this isn't really due to a problem on our end, we hit this because we use Powermock in this test. If we can move away from that, this issue will go away, and we'll have more testable code. (This is possibly ironic since I introduced Powermock for this test, but I really didn't like to.)
        Hide
        Dave Marion added a comment -

        http://code.google.com/p/powermock/issues/detail?id=504

        Also, 1.7.0_67 is out now. Should retry with that version.

        Show
        Dave Marion added a comment - http://code.google.com/p/powermock/issues/detail?id=504 Also, 1.7.0_67 is out now. Should retry with that version.
        Hide
        Dave Marion added a comment -
        Show
        Dave Marion added a comment - Linked from Powermock ticket: https://bugs.openjdk.java.net/browse/JDK-8051012
        Hide
        Bill Havanki added a comment -

        If it isn't fixed in _67, then maybe in _72, which is the earliest backport listed in the JDK bug that Dave posted. 7u72 is due on October 13 :/

        Show
        Bill Havanki added a comment - If it isn't fixed in _67, then maybe in _72, which is the earliest backport listed in the JDK bug that Dave posted. 7u72 is due on October 13 :/
        Hide
        Dave Marion added a comment -

        Oh ok, I missed that, but I see it now. It might not be fixed in 67 then.

        Show
        Dave Marion added a comment - Oh ok, I missed that, but I see it now. It might not be fixed in 67 then.
        Hide
        Josh Elser added a comment -

        Can confirm that this is still busted in 1.7.0_67.

        Show
        Josh Elser added a comment - Can confirm that this is still busted in 1.7.0_67.
        Hide
        Christopher Tubbs added a comment -

        Should we disable this test until 7u72? I'd hate to not be able to do a full-build against the latest JDK.

        Show
        Christopher Tubbs added a comment - Should we disable this test until 7u72? I'd hate to not be able to do a full-build against the latest JDK.
        Hide
        Josh Elser added a comment -

        I'd be in favor of a temporary Ignore if someone doesn't want to take the time to un-powermock the test.

        Show
        Josh Elser added a comment - I'd be in favor of a temporary Ignore if someone doesn't want to take the time to un-powermock the test.
        Hide
        Christopher Tubbs added a comment -

        I wonder if it's possible to do a conditional ignore, based on the version of Java?

        Show
        Christopher Tubbs added a comment - I wonder if it's possible to do a conditional ignore, based on the version of Java?
        Hide
        Sean Busbey added a comment -

        I'd be fine with Ignoring the test just for known-bad jdk versions, provided at a minimum come release time we test on a non-busted jdk. Preferably we'd make sure Jenkins was set to use a non-busted version with a note about why the specific version is important. -1 on a blanket Ignore.

        7u72 is still marked as due in ~9 days (though I don't have a good sense of how reliable openjdk release estimates are). We've been fine building only on <= 1.7.0_60 since July, I'd rather have the better test coverage on earlier jdks then be able to test on these broken ones.

        Show
        Sean Busbey added a comment - I'd be fine with Ignoring the test just for known-bad jdk versions, provided at a minimum come release time we test on a non-busted jdk. Preferably we'd make sure Jenkins was set to use a non-busted version with a note about why the specific version is important. -1 on a blanket Ignore. 7u72 is still marked as due in ~9 days (though I don't have a good sense of how reliable openjdk release estimates are). We've been fine building only on <= 1.7.0_60 since July, I'd rather have the better test coverage on earlier jdks then be able to test on these broken ones.
        Hide
        Christopher Tubbs added a comment -

        Just pushed a fix that checks the java version and ignores known bad JDKs. If 7u72 doesn't fix the problem, this error will automatically reintroduce itself.

        Show
        Christopher Tubbs added a comment - Just pushed a fix that checks the java version and ignores known bad JDKs. If 7u72 doesn't fix the problem, this error will automatically reintroduce itself.

          People

          • Assignee:
            Christopher Tubbs
            Reporter:
            Eric Newton
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - 0h
              0h
              Logged:
              Time Spent - 10m
              10m

                Development