- ---> MBean.getThreadCount() = 7

................

- ---> MBean.getThreadCount() = 6

I suppose that you added sleep between 2 calls, then there might be an issue with MBean.getThreadCount()

Shanliang

Jaroslav Bachorik wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/24/2013 09:21 AM, shanliang wrote:
Just to be a test, after terminated 8 threads and checked their
states by calling Thread.join() (must be same to
Thread.getState()), DO sleep sometime and then call
mbean.getThreadCount(), if it reports a right number, then we may
need to verify mbean.getThreadCount() method.

The result is:

Thread: Thread[Signal Dispatcher,9,system]
Thread: Thread[Finalizer,8,system]
Thread: Thread[worker-12,5,main]
Thread: Thread[Reference Handler,10,system]
Thread: Thread[main,5,main]
Thread: Thread[worker-13,5,main]
- ---> MBean.getThreadCount() = 7
Thread(1): Thread[Signal Dispatcher,9,system]
Thread(1): Thread[Finalizer,8,system]
Thread(1): Thread[worker-12,5,main]
Thread(1): Thread[Reference Handler,10,system]
Thread(1): Thread[main,5,main]
Thread(1): Thread[worker-13,5,main]
- ---> MBean.getThreadCount() = 6

- -JB-


Shanliang

Jaroslav Bachorik wrote:
On Wed 24 Jul 2013 08:20:56 AM CEST, Mandy Chung wrote:

On 7/24/2013 2:09 PM, Daniel Fuchs wrote:

On 7/24/13 8:01 AM, Mandy Chung wrote:

I am catching up on this thread....

The thread count counts Java threads that are not hidden.
I believe all VM internal threads are hidden from external
API. This test runs in othervm mode and AFAICT the thread
count is expected to be deterministic.  I don't expect the
VM will start and terminate any thread any time.

I agree with David that we should diagnose why there is
one additional thread started before the reset.  If it is
the LogManager$Cleaner thread, like David said, the VM is
shutting down while the test is still running which doesn't
quite make sense.

I think that Shanliang's suspicion that a thread might be
still alive if unscheduled just after having called its
barrier.signal() is a very good suggestion. I would advise calling thread.join() on all threads in terminateThreads,
just to make sure they are all really dead and not in some
comatose state... If Shanliang is right then the test would
be failing because some of the threads we think are dead are not actually dead yet - and not because of some new VM thread
that nobody can see :-)

Thanks for pointing that out.

I agree that the test should be changed to call Thread.join().
There may be other java.lang.management tests that should also
be fixed to call Thread.join.

I've tried using Thread.join() but I am still getting the thread
count discrepancy.

Specifically: 1. 10 worker threads have been successfully started
- mben.getThreadCount() reports 14 and
Thread.getAllStackTraces() returns 14 items --- Thread:
Thread[Signal Dispatcher,9,system] Thread:
Thread[worker-5,5,main] Thread: Thread[worker-7,5,main] Thread:
Thread[worker-9,5,main] Thread: Thread[worker-12,5,main] Thread:
Thread[worker-11,5,main] Thread: Thread[Reference
Handler,10,system] Thread: Thread[main,5,main] Thread:
Thread[worker-10,5,main] Thread: Thread[worker-8,5,main] Thread:
Thread[Finalizer,8,system] Thread: Thread[worker-6,5,main] Thread: Thread[worker-13,5,main] Thread: Thread[worker-4,5,main] --- 2. Terminating 8 threads 3. After the threads have been
terminated (waiting on Thread.join() for them to die) -
mbean.getThreadCount() reports 7 while Thread.getAllStackTraces()
returns only 6 items --- Thread: Thread[Signal
Dispatcher,9,system] Thread: Thread[Finalizer,8,system] Thread:
Thread[worker-12,5,main] Thread: Thread[Reference
Handler,10,system] Thread: Thread[main,5,main] Thread:
Thread[worker-13,5,main] ---

This would almost point to mbean.getThreadCount() reporting a
stale value. Is that possible?

-JB-


Mandy



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJR74OmAAoJELSZyqhGiB1M4k8H/2hM5o2vVe2lfhc374IBaR5R
R8i9Z2n0prBRKIqg4bTkAcllq5pmdozxwFyaEBzJtAGh9vnL7Tmojn6ksg9K+MMl
bSgWSeg+gSZyymS7aE8rTVqKigH8vNOpHOogePDrUOCZGeZgJIMpmY1QcVbLeq8k
mkz5mPYxEE2E7gt8cjvcXknOWeQUTyZILWGIPBfx9FL0iwBtK5h0PnfasR7bCxcR
DO48USIuTxe+aN687OkAlJq9bCR6HRzWQiaSdi4ROVyrx2xYtir4n9sZtNWJwokv
3p5TdX6S64jnVZZMjbPJgCENTYMvTeRCj/8GvCYlI9KQEa9x2zhU2wIp5Zw4ag4=
=4vkV
-----END PGP SIGNATURE-----

Reply via email to