Crash on finalizer in tsanOopMap

Man Cao manc at google.com
Wed Jul 10 23:59:23 UTC 2019


I don't see the attached reproducer. I don't think you could add attachment
on the mailing list though.
Could you inline it in the email or put it on webrev?

-Man


On Mon, Jul 8, 2019 at 1:23 PM Arthur Eubanks <aeubanks at google.com> wrote:

> I have a simpler reproducer attached.
>
> Some logging:
>            // The object survived GC, add its updated oop to the new oops
> map.
>            oop target_oop = cast_to_oop((intptr_t)source_obj);
>            pointer_adjuster->do_oop(&target_oop);
> +          oopDesc *target_obj = target_oop;
> +          if (!heap->is_in(target_oop)) {
> +            fprintf(stderr, "%p\n", source_obj);
> +            fprintf(stderr, "%p\n", target_obj);
> +          }
>            assert(heap->is_in(target_oop), "Adjustment failed");
> -          oopDesc *target_obj = target_oop;
>            new_map->put(target_obj, obj_size);
>
> 0xffea5570
> 0xf8238138
>
> On Wed, Jul 3, 2019 at 10:44 AM Arthur Eubanks <aeubanks at google.com>
> wrote:
>
> > Trying to implement finalizer support, I created a test (attached), and
> > tsanOopMap.cpp seems buggy.
> >
> > # after -XX: or in .hotspotrc:  SuppressErrorAt=/tsanOopMap.cpp:294
> > #
> > # A fatal error has been detected by the Java Runtime Environment:
> > #
> > #  Internal Error
> >
> (/usr/local/google/home/aeubanks/jdk/tsan/src/hotspot/share/tsan/tsanOopMap.cpp:294),
> > pid=16182, tid=16188
> > #  assert(heap->is_in(target_oop)) failed: Adjustment failed
> > #
> > # JRE version: OpenJDK Runtime Environment (13.0) (fastdebug build
> > 13-internal+0-adhoc.aeubanks.tsan)
> > # Java VM: OpenJDK 64-Bit Server VM (fastdebug
> > 13-internal+0-adhoc.aeubanks.tsan, interpreted mode, tiered, compressed
> > oops, g1 gc, linux-amd64)
> > # Problematic frame:
> > # V  [libjvm.so+0x164e63b]
> >  TsanOopMapImpl::TsanOopSizeMap::collect_oops(BoolObjectClosure*,
> > OopClosure*, GrowableArray<TsanOopMapImpl::PendingMove>*, int*, char**,
> > char**)+0x24b
> > #
> > # No core dump will be written. Core dumps have been disabled. To enable
> > core dumping, try "ulimit -c unlimited" before starting Java again
> > #
> > # An error report file with more information is saved as:
> > #
> >
> /usr/local/google/home/aeubanks/jdk/tsan/build/test-support/jtreg_test_hotspot_jtreg_tsan_NonRacyFinalizerLoopTest_java/scratch/0/hs_err_pid16182.log
> > #
> > # If you would like to submit a bug report, please visit:
> > #   http://bugreport.java.com/bugreport/crash.jsp
> > #
> >
>


More information about the tsan-dev mailing list