Skip to content

DartVM crash #22800

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

Closed
DartBot opened this issue Mar 11, 2015 · 5 comments
Closed

DartVM crash #22800

DartBot opened this issue Mar 11, 2015 · 5 comments
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. P1 A high priority bug; for example, a single project is unusable or has many test failures
Milestone

Comments

@DartBot
Copy link

DartBot commented Mar 11, 2015

This issue was originally filed by da...@google.com


void main() {

  try {
    print("Starting here");
    throw new StateError("Throw from here");
    try {
      print("Starting there");
    } catch (e) {
      print("Caught in there: $e");
    }
  } catch (e) {
    print("Caught in here: $e");
  }

  try {
    print("Starting here");
    try {
      print("Starting there");
      throw new StateError("Throw from there");
    } catch (e) {
      print("Caught in there: $e");
    }
  } catch (e) {
    print("Caught in here: $e");
  }
}

What is the expected output? What do you see instead?
Expected:
Starting here
Caught in here: Bad state: Throw from here
Starting here
Starting there
Caught in there: Bad state: Throw from there

Observed:
Segmentation fault (core dumped)

What version of the product are you using?
1.9.0-dev.10.4

On what operating system?
Ubuntu 14.04.2 LTS

What browser (if applicable)?
N/A

Please provide any additional information below.

@DartBot
Copy link
Author

DartBot commented Mar 12, 2015

This comment was originally written by @mhausner


When I run this with a debug build, I see this assertion:

./vm/code_descriptors.h:175: error: expected: list_[i].handler_types != NULL

This is likely a regression in try-catch compilation.


Added this to the 1.9 milestone.
Added Area-VM, Accepted labels.

@DartBot
Copy link
Author

DartBot commented Mar 12, 2015

This comment was originally written by @mhausner


I was able to repro the same assertion with this simpler example:

void main() {
  try {
    print("Starting here");
    throw 0;
    try {
    } catch (e) {
    }
  } catch (e) {
    print("Caught in here: $e");
  }
  try {
  } catch (e) {
  }
}

Each try statement in this example is necessary. If eliminated, the program compiles and runs correctly.

@iposva-google
Copy link
Contributor

cc @mhausner.
Set owner to @sgmitrovic.
Removed Priority-Unassigned label.
Added Priority-High label.

@ghost
Copy link

ghost commented Mar 12, 2015

Added Started label.

@ghost
Copy link

ghost commented Mar 12, 2015

Fixed in r44440. Unreachable exception handlers have their handler type not computed: allow unreachable/uncomputed handlers in exception handler finalization.


Added Fixed label.

@DartBot DartBot added Type-Defect P1 A high priority bug; for example, a single project is unusable or has many test failures area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. labels Mar 12, 2015
@DartBot DartBot assigned ghost Mar 12, 2015
@DartBot DartBot added this to the 1.9 milestone Mar 12, 2015
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. P1 A high priority bug; for example, a single project is unusable or has many test failures
Projects
None yet
Development

No branches or pull requests

2 participants