-
Notifications
You must be signed in to change notification settings - Fork 130
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
java.lang.VerifyError: on startup #6
Comments
Thanks for reporting this. Do you have any thoughts @DanielSperry? I'll dig in tomorrow if not. |
Looking at this @DanielSperry. It looks like the fix you made here: fdc8098 changes the behavior. |
Repro test I am using: public class NullThenBasicValueTest extends BaseTest
{
@Test
public void nullThenBasicValueTest() throws Exception
{
final Task<Void> res = NullThenBasicVal.doIt(getBlockedTask());
completeFutures();
assertNull(res.join());
}
public static class NullThenBasicVal
{
public static Task<Void> doIt(Task<Void> task)
{
String nullString = null; //this variable must be a string and initialized to null
int basicInt = 0; //this variable must be numeric and initialized to anything
await(task);
return Task.done();
}
}
} |
it's probably the data flow for that local variable. Since ea-async modifies the code flow (adding new jumps) it needs to add extra stack info for all jumps it adds. Thanks for the example. |
pasting the sample error message Joe sent me
|
Any news on this one @DanielSperry ? |
I've added a PR with a fix for it. |
Awesome. Thanks Daniel. |
Resolved in 1.0.5 |
This is a strange one. Under very specific circumstances, our code is getting a verification error on startup when using runtime instrumentation. I've tried stripping it down to its bare essence, but it doesn't really make a lot of sense to me. I'm sure there's a larger pattern I'm not seeing.
Basically you need a local String initialized to null then an numeric variable initialized to anything, and a subsequent await statement.
I get this error, along with a lot of error output: java.lang.VerifyError: Bad local variable type
Here's and example I added to BasicTest.java
Sorry for the ugly formatting. Code formatting isn't working. I've also included BasicTest.java
BasicTest.java.txt
The text was updated successfully, but these errors were encountered: