Skip to content
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

Exception throw in child isolate crashes Dartium #3734

Closed
kevmoo opened this issue Jun 19, 2012 · 15 comments
Closed

Exception throw in child isolate crashes Dartium #3734

kevmoo opened this issue Jun 19, 2012 · 15 comments
Assignees

Comments

@kevmoo
Copy link
Member

kevmoo commented Jun 19, 2012

What steps will reproduce the problem?

  1. Check out the gist: https://gist.github.com/2945042
  2. Notice I forget to add the SendPort in the mouse move handler (line 25)
  3. Line 33 will fail as you'd expect with an un-set 'replyTo'
  4. But, the Dartium tab crashes (not as you'd expect)

What is the expected output? What do you see instead?
Some helpful error message

What version of the product are you using? On what operating system?
8832

@DartBot
Copy link

DartBot commented Jun 19, 2012

This comment was originally written by [email protected]


Added this to the M1 milestone.
Added Area-Dartium, Accepted labels.

@DartBot
Copy link

DartBot commented Jun 19, 2012

This comment was originally written by [email protected]


Changed the title to: "Exception throw in child isolate crashes Dartium".

@kevmoo
Copy link
Member Author

kevmoo commented Jul 23, 2012

What is the expected behavior here?

In the case of SendPort.call, I'd hope the associated future will party with the associated handleException, etc.

Right?

I was hoping that wiring up handleException would save me from a crash. Sadly, no.

@DartBot
Copy link

DartBot commented Aug 2, 2012

This comment was originally written by [email protected]


Issue #2035 has been merged into this issue.

@DartBot
Copy link

DartBot commented Aug 22, 2012

This comment was originally written by [email protected]


Set owner to [email protected].

@DartBot
Copy link

DartBot commented Aug 22, 2012

This comment was originally written by [email protected]


So the analysis.

I am not aware of scenarios when it's a problem with DOM isolates as on all the entry points we check returned value and report any unhandled exceptions.

It's easily reproducible for pure Dart isolates and in this case we end up in ShutdownIsolate (of lib/isolate.cc) which invokes exit(255) and that awsnaps the tab.

Looks like we need something in embedder API to prevent this exit call and ideally some hook to properly report unhandled exception which led to isolate termination.

Marking as Area-VM and tentatively assigning to Todd. Please, assign back to me once there is a way to solve the problem in Dartium.


cc @iposva-google.
Set owner to @turnidge.
Removed Area-Dartium label.
Added Area-VM label.

@justinfagnani
Copy link
Contributor

Issue #2035 has been merged into this issue.

@iposva-google
Copy link
Contributor

Removed this from the M1 milestone.
Added this to the M2 milestone.

@iposva-google
Copy link
Contributor

Removed this from the M2 milestone.
Added this to the M3 milestone.

@iposva-google
Copy link
Contributor

Removed this from the M3 milestone.
Added this to the M4 milestone.

@larsbak
Copy link

larsbak commented May 28, 2013

Removed this from the M4 milestone.
Added this to the M5 milestone.

@iposva-google
Copy link
Contributor

Removed Priority-Medium label.
Added Priority-Unassigned label.

@iposva-google
Copy link
Contributor

Removed this from the M5 milestone.

@iposva-google
Copy link
Contributor

Siva is this still happening? I remember we did add special handling for unhandled exceptions.


Set owner to @a-siva.
Removed Area-VM label.
Added Area-Dartium label.

@a-siva
Copy link
Contributor

a-siva commented Aug 26, 2013

We don't get a Dart tab crash now, the following error message is what we get and the child isolate is terminated due to this unhandled exception.

in ShutdownIsolate: Unhandled exception:
The null object does not have a method 'send'.

NoSuchMethodError : method not found: 'send'
Receiver: null
Arguments: ["yo!"]
#­0 Object.noSuchMethod (dart:core-patch/object_patch.dart:20:25)
#­1 childIsolate.<anonymous closure> (file:///usr/local/google/home/asiva/Downloads/async_demo.dart:26:17)
#­2 _ReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:81:92)
#­3 childIsolate.<anonymous closure> (file:///usr/local/google/home/asiva/Downloads/async_demo.dart:26:17)
#­4 _ReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:81:92)


Added Fixed label.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants