Skip to content

WeakReference tests fail on precompiled enviromnent #48391

@sgrekhov

Description

@sgrekhov

The following co19 tests fails on dartkp
https://github.com/dart-lang/co19/blob/master/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t01.dart
https://github.com/dart-lang/co19/blob/master/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t02.dart
https://github.com/dart-lang/co19/blob/master/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t03.dart
https://github.com/dart-lang/co19/blob/master/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t04.dart
https://github.com/dart-lang/co19/blob/master/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t07.dart
https://github.com/dart-lang/co19/blob/master/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t08.dart

For example

import "../../gc_utils_lib.dart";
import "../../../../Utils/expect.dart";

class C {
  int id;
  C(this.id);
}

main() {
  C? c = C(42);
  WeakReference<C> wr = WeakReference(c);
  Expect.equals(c, wr.target);
  triggerGc();
  Expect.equals(c, wr.target);
  c = null;
  triggerGc();
  Expect.isNull(wr.target); // Fails here
}
/========================================================================================================================================================================\
| dartkp-strong-linux-release-x64:co19/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t01 is new and failed (RuntimeError, expected Pass) |
\========================================================================================================================================================================/

--- Command "vm_compile_to_kernel" (took 05.000913s):
DART_CONFIGURATION=ReleaseX64 /b/s/w/ir/pkg/vm/tool/gen_kernel --aot --platform=out/ReleaseX64/vm_platform_strong.dill -o /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.dill /b/s/w/ir/tests/co19/src/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t01.dart -Dtest_runner.configuration=dartkp-strong-linux-release-x64 --packages=/b/s/w/ir/.packages -Ddart.vm.product=false --sound-null-safety

exit code:
0

--- Command "precompiler" (took 05.000311s):
DART_CONFIGURATION=ReleaseX64 out/ReleaseX64/gen_snapshot --snapshot-kind=app-aot-assembly --assembly=/b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.S -Dtest_runner.configuration=dartkp-strong-linux-release-x64 --ignore-unrecognized-flags --packages=/b/s/w/ir/.packages /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.dill

exit code:
0

--- Command "remove_kernel_file" (took 21ms):
DART_CONFIGURATION=ReleaseX64 rm /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.dill

exit code:
0

--- Command "assemble" (took 01.000228s):
DART_CONFIGURATION=ReleaseX64 gcc -m64 -shared -o /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.aotsnapshot /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.S

exit code:
0

--- Command "remove_assembly" (took 8ms):
DART_CONFIGURATION=ReleaseX64 rm /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.S

exit code:
0

--- Command "vm" (took 01.000059s):
DART_CONFIGURATION=ReleaseX64 out/ReleaseX64/dart_precompiled_runtime --sound-null-safety -Dtest_runner.configuration=dartkp-strong-linux-release-x64 --ignore-unrecognized-flags --packages=/b/s/w/ir/.packages /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_FinalizationRegistry_ffi_WeakReference_weak_reference_target_t01/out.aotsnapshot

exit code:
255

stderr:
Unhandled exception:
Expect.isNull(actual: <Instance of 'C'>) fails.
#0      _fail (file:///b/s/w/ir/tests/co19/src/Utils/expect.dart:18)
#1      Expect.isNull (file:///b/s/w/ir/tests/co19/src/Utils/expect_common.dart:38)
#2      main (file:///b/s/w/ir/tests/co19/src/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t01.dart:33)
#3      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192)

--- Re-run this test:
python3 tools/test.py -n dartkp-strong-linux-release-x64 co19/LanguageFeatures/FinalizationRegistry/ffi/WeakReference/weak_reference_target_t01

cc @dcharkes

Metadata

Metadata

Assignees

Labels

area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions