Skip to content

Crash when sending generic object between isolates #37294

Closed
@sjindel-google

Description

@sjindel-google
import 'dart:isolate';

class A<T> {}

main(args) async {
  final x = A<void Function()>();
  await Isolate.spawn(isolate, x);
}

void isolate(A foo) async {
  print('Tick: ${foo}');
}

Crashes:

../../runtime/vm/raw_object_snapshot.cc: 523: error: unreachable code
version=2.3.3-edge.14fdeb87cb3f13c0eb05739c0844a0d3c7b856f8 (Tue Jun 18 08:47:18 2019 +0000) on "linux_x64"                                 
thread=131801, isolate=main(0x555b6c100c00)
  pc 0x0000555b69d72e0c fp 0x00007fcd7debdae0 dart::Profiler::DumpStackTrace(void*)                                                         
  pc 0x0000555b6999d332 fp 0x00007fcd7debdbc0 dart::Assert::Fail(char const*, ...)                                                          
  pc 0x0000555b69d930d3 fp 0x00007fcd7debdbe0 out/DebugX64/dart+0x1a2a0d3                                                                   
  pc 0x0000555b69e0c6a5 fp 0x00007fcd7debdc50 dart::SnapshotWriter::WriteMarkedObjectImpl(dart::RawObject*, long, long, bool)               
  pc 0x0000555b69e0e371 fp 0x00007fcd7debdc90 dart::SnapshotWriterVisitor::VisitPointers(dart::RawObject**, dart::RawObject**)              
  pc 0x0000555b69d9107f fp 0x00007fcd7debdcf0 dart::RawType::WriteTo(dart::SnapshotWriter*, long, dart::Snapshot::Kind, bool)               
  pc 0x0000555b69e0cb91 fp 0x00007fcd7debdd60 dart::SnapshotWriter::WriteMarkedObjectImpl(dart::RawObject*, long, long, bool)               
  pc 0x0000555b69d92074 fp 0x00007fcd7debddb0 dart::RawTypeArguments::WriteTo(dart::SnapshotWriter*, long, dart::Snapshot::Kind, bool)      
  pc 0x0000555b69e0cb75 fp 0x00007fcd7debde20 dart::SnapshotWriter::WriteMarkedObjectImpl(dart::RawObject*, long, long, bool)               
  pc 0x0000555b69e0d026 fp 0x00007fcd7debde80 dart::SnapshotWriter::WriteInstance(dart::RawObject*, dart::RawClass*, long, long, bool)      
  pc 0x0000555b69e0c529 fp 0x00007fcd7debdef0 dart::SnapshotWriter::WriteMarkedObjectImpl(dart::RawObject*, long, long, bool)               
  pc 0x0000555b69e0e912 fp 0x00007fcd7debe070 dart::MessageWriter::WriteMessage(dart::Object const&, long, dart::Message::Priority)         
  pc 0x0000555b69b3afc6 fp 0x00007fcd7debe260 dart::BootstrapNatives::DN_Isolate_spawnFunction(_Dart_NativeArguments*)    

Metadata

Metadata

Assignees

Labels

area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.crashProcess exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions