On 1/31/07, Gregory Shimansky <[EMAIL PROTECTED]> wrote:
Elena Semukhina wrote: > I managed to reproduce the failure on my Windows XP laptop. W'd suggest > that > we change the test so that it waits a little after gc() as Pavel pointed > out. Spec says in [1] that ------------------- Some time after the garbage collector determines that the reachability of the referent has changed to the value corresponding to the type of the reference, it will add the reference to the associated queue. At this point, the reference is considered to be enqueued. ------------------- The problem is with defining "some time". If spec says nothing about how much time later the reference is enqueued, then it is not possible to test such event consistently. I am afraid this test is simply incorrect and cannot be used.
Can we define some "reasonable" time based on common sense? I tried to fix the test and "build test" successfully passed a few times on my WinXP. Possibly I was too speedy to file a JIRA issue( https://issues.apache.org/jira/browse/HARMONY-3101) but could we change the tests in the way suggested in the patch to be sure that a reference is eventually enqueued? Elena [1]
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/package-summary.html > On 1/31/07, Vladimir Ivanov <[EMAIL PROTECTED]> wrote: >> >> Could we exclude this tests up to end of investigation? Now they lead >> to 2-3 CC notifications in a day about drlvm tests failures. >> >> Thanks, Vladimir >> >> On 1/30/07, Pavel Afremov <[EMAIL PROTECTED]> wrote: >> > Looks like in the test there are a race condition. Spec says that >> reference >> > will enqueue at the same time or at some later time. So immediately >> after gc >> > reference can be not enqueued, and it's OK. >> > >> > BR >> > Pavel Afremov. >> > >> > On 1/30/07, Pavel Afremov <[EMAIL PROTECTED]> wrote: >> > > >> > > I can't reproduce crash too. >> > > >> > > Pavel Afremov >> > > >> > > >> > > On 1/30/07, Elena Semukhina <[EMAIL PROTECTED]> wrote: >> > > > >> > > > I ran all the tests iteratively ("build.bat test") for 40 times on >> W2003 >> > > > 2CPUx4core machine and did not see any failures. Now I'm trying >> them >> on >> > > > W2003 1 CPU machine. 6 iterations have already succeeded. >> > > > >> > > > Elena >> > > > >> > > > >> > > > On 1/30/07, Vladimir Ivanov <[EMAIL PROTECTED]> wrote: >> > > > > >> > > > > Do you run only this test in a loop? >> > > > > I rerun tests again as "build.bat test" and sow 2 failures again >> > > > (note, 2 >> > > > > times before it all tests were passed): >> > > > > gc.PhantomReferenceTest_interpreter >> > > > > waiting for a reference.. >> > > > > FAIL: reference was not enqueued >> > > > > gc.WeakReferenceTest_interpreter >> > > > > waiting for a reference.. >> > > > > FAIL: reference was not enqueued >> > > > > >> > > > > thanks, Vladimir >> > > > > >> > > > > PSC jdk\jre\bin> java.exe -version >> > > > > Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache >> Software >> > > > > Foundatio >> > > > > n or its licensors, as applicable. >> > > > > java version "1.5.0" >> > > > > pre-alpha : not complete or compatible >> > > > > svn = r501301, (Jan 30 2007), Windows/ia32/msvc 1310, debug build >> > > > > http://incubator.apache.org/harmony >> > > > > >> > > > > On 1/29/07, Gregory Shimansky < [EMAIL PROTECTED] > wrote: >> > > > > > >> > > > > > Vladimir Ivanov wrote: >> > > > > > > DRLVM smoke test gc.WeakReferenceTest intermittently >> failed in >> the >> > > > > > > 'interpreter' mode on WinXP with log: >> > > > > > > "waiting for a reference.. >> > > > > > > FAIL: reference was not enqueued" >> > > > > > > >> > > > > > > Could somebody reproduce/ fix it? >> > > > > > >> > > > > > I tried to run this test on interpreter. It has passed for me >> more >> > > > than >> > > > > > 100 times in a loop. >> > > > > > >> > > > > > > The list of commits since last successfull build: >> > > > > > > >> > > > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Resolve.cpp >> > > > > > > >> > > > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/thread/mutator_alloc.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace.h >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/finalizer_weakref/finalizer_weakref_metadata.cpp >> >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/finalizer_weakref/finalizer_weakref.cpp >> >> > > > >> > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_class.h >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_alloc.cpp >> > > > > > > >> > > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/interior_pointer.cpp >> > > > > > > >> > > > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/trace_forward/fspace.cpp >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_extend_compact.cpp >> >> > > > > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_metadata.h >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen.h >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/build/make/components/vm/gc_gen.xml >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/trace_forward/fspace_gen_forward_pool.cpp >> >> > > > > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/jni/java_natives.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/thread/collector.cpp >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp >> >> > > > >> > > > > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_common.h >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_block.h >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/space_tuner.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/large_pages.cpp >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_space.h >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/thread/mutator.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_sweep/lspace.cpp >> > > > > > > >> > > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_sweep/free_area_pool.h >> > > > > > > >> > > > > > > >> > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace.cpp >> > > > > > > >> > > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/fix_repointed_refs.h >> > > > > > > >> > > > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/thread/collector_alloc.h >> > > > > > > >> > > > > > > >> > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_class.cpp >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/fallback_mark_scan.cpp >> >> > > > > > > >> > > > > > > >> > > > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/mark_scan_pool.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_metadata.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/utils/vector_block.h >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen.cpp >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_collect_compact.cpp >> >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/finalizer_weakref/finalizer_weakref_metadata.h >> >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/finalizer_weakref/finalizer_weakref.h >> >> > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_sweep/lspace_alloc_collect.cpp >> >> > > > > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/utils/sync_queue.h >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/javasrc/org/apache/harmony/drlvm/gc_gen/GCHelper.java >> >> > > > > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/trace_forward/fspace.h >> > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_common.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_platform.h >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen_adapt.cpp >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/thread/gc_thread.h >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/trace_forward/fspace_alloc.cpp >> >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/jni/java_support.cpp >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/utils/bit_ops.h >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/trace_forward/fspace_nongen_forward_pool.cpp >> >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp >> >> > > > >> > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/space_tuner.h >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/utils/sync_stack.h >> > > > > > > >> > > > > > > >> /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_sweep/lspace.h >> > > > > > > >> > > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Initialize.cpp >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/vmcore/include/finalize.h >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/finalize.cpp >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/vmcore/src/gc/stop_the_world_root_set_enum.cpp >> >> > > > >> > > > > > >> > > > > > > >> > > > > > > >> > > > > > > /harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_init.cpp >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> /harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/java_lang_FinalizerThread.cp >> >> > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > Gregory >> > > > > > >> > > > > > >> > > > > >> > > > > >> > > > >> > > > >> > > > -- >> > > > Thanks, >> > > > Elena >> > > > >> > > > >> > > >> > >> > >> > > > -- Gregory
-- Thanks, Elena
