public inbox for java-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug libgcj/34574]  New: wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang
@ 2007-12-24 18:24 rajathf at techmahindra dot com
  2007-12-24 18:27 ` [Bug libgcj/34574] " rajathf at techmahindra dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: rajathf at techmahindra dot com @ 2007-12-24 18:24 UTC (permalink / raw)
  To: java-prs

This seems to be a critical issue causing a thread pool implementaion to go
into dead lock and normally happens if code inside run method does requires
little time and large number runnable objects are assigned to thread pool...

I have identified this issue in sun solaris 2.9

Please find below the code for each of the files required to reproduce scenario
and corresponding compilation options at the end...

-----------------------------------env_test.java-------------------------------------------
public class env_test implements Runnable {

        static private int count = 0;
    private int taskNumber;
    protected Done done;


        public static native void foo();

        public env_test()
        {

                count++;
        taskNumber = count;

        }

        public void  run()
        {
                foo();  

        }
}

---------------------------------TestJVSynchronise19thDec.cc--------------------------------------------

// This file was created by `gcjh -stubs'. -*- c++ -*-
//
// This file is intended to give you a head start on implementing native
// methods using CNI.
// Be aware: running `gcjh -stubs ' once more for this class may
// overwrite any edits you have made to this file.

#include <iostream.h>
#include <gcj/cni.h>
#include <gnu/gcj/RawData.h>
#include <env_test.h>
#include <ThreadPool.h>
#include <java/lang/Thread.h>

using namespace std;

using namespace java::lang;

Object *vl_pLock;

void env_test::foo()
{

        {
                JvSynchronize sync (vl_pLock);

                //std::cout <<
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "  << std::endl;

                long  vl_CurrThreadID = Thread::currentThread()->getId(); 

                //std::cout << "()Thread ID : " << vl_CurrThreadID <<
std::endl;

                for (int i=0;i<30;i++)

                {
                        //cout << "Hello World" << endl;
                }

                //std::cout <<
"-------------------------------------------------------- "  << std::endl;

        }

}

int main(int argc, char *argv)
{

    JvCreateJavaVM(NULL);
    JvAttachCurrentThread(NULL,NULL);

        ThreadPool *pool = new ThreadPool(20);

    vl_pLock = new Object();

        for (int i=0;i<100000;i++)
        {
                pool->assign((gnu::gcj::RawData *) new env_test());
        }

        pool->complete();

        JvDetachCurrentThread();

}       

-------------------------------------ThreadPool.java---------------------------------------

import java.util.*;
//import gnu.gcj.RawData;

/**
 * Java Thread Pool
 * 
 * This is a thread pool that for Java, it is
 * simple to use and gets the job done. This program and
 * all supporting files are distributed under the Limited
 * GNU Public License (LGPL, http://www.gnu.org).
 * 
 * This is the main class for the thread pool. You should
 * create an instance of this class and assign tasks to it.
 * 
 * For more information visit http://www.jeffheaton.com.
 * 
 * @author Jeff Heaton (http://www.jeffheaton.com)
 * @version 1.0
 */
public class ThreadPool {
 /**
  * The threads in the pool.
  */
 protected Thread threads[] = null;
 /**
  * The backlog of assignments, which are waiting
  * for the thread pool.
  */
 Collection assignments = new ArrayList(3);
 //Vector assignments = new Vector();
 /**
  * A Done object that is used to track when the
  * thread pool is done, that is has no more work
  * to perform.
  */
 protected Done done = new Done();

 /**
  * The constructor.
  * 
  * @param size  How many threads in the thread pool.
  */
 public ThreadPool(int size)
 {
  threads = new WorkerThread[size];
  for (int i=0;i<threads.length;i++) {
   threads[i] = new WorkerThread(this);
   threads[i].start();
  }
 }

 /**
  * Add a task to the thread pool. Any class
  * which implements the Runnable interface
  * may be assienged. When this task runs, its
  * run method will be called.
  * 
  * @param r   An object that implements the Runnable interface
  */
 //public synchronized void assign(Runnable r)
 public synchronized void assign(Object r)
 //public void assign(Object r)
 {
        done.workerBegin();
        assignments.add(r);
        notify();
 }

 /**
  * Get a new work assignment.
  * 
  * @return A new assignment
  */
 public synchronized Runnable getAssignment()
 {
  try {
   while ( !assignments.iterator().hasNext() )
    wait();

   Runnable r = (Runnable)assignments.iterator().next();
   assignments.remove(r);
   return r;
  } catch (InterruptedException e) {
   done.workerEnd();
   return null;
  }
 }

 /**
  * Called to block the current thread until
  * the thread pool has no more work.
  */
 public void complete()
 {
  done.waitBegin();
  done.waitDone();
 }


 protected void finalize()  
 {
  done.reset();
  for (int i=0;i<threads.length;i++) {
   threads[i].interrupt();
   done.workerBegin();
   threads[i].destroy();
  }
  done.waitDone();
 }
}

/**
 * The worker threads that make up the thread pool.
 * 
 * @author Jeff Heaton
 * @version 1.0
 */
class WorkerThread extends Thread {
 /**
  * True if this thread is currently processing.
  */
 public boolean busy;
 /**
  * The thread pool that this object belongs to.
  */
 public ThreadPool owner;

 /**
  * The constructor.
  * 
  * @param o the thread pool 
  */
 WorkerThread(ThreadPool o)
 {
  owner = o;
 }

 /**
  * Scan for and execute tasks.
  */
 public void run()
 {
  Runnable target = null;

  do {
   target = owner.getAssignment();
   if (target!=null) {
    target.run();      
    owner.done.workerEnd();
   }
  } while (target!=null);
 }
}

/**
 * 
 * This is a thread pool for Java, it is
 * simple to use and gets the job done. This program and
 * all supporting files are distributed under the Limited
 * GNU Public License (LGPL, http://www.gnu.org).
 * 
 * This is a very simple object that
 * allows the TheadPool to determine when 
 * it is done. This object implements
 * a simple lock that the ThreadPool class
 * can wait on to determine completion.
 * Done is defined as the ThreadPool having
 * no more work to complete.
 * 
 * Copyright 2001 by Jeff Heaton
 *
 * @author Jeff Heaton (http://www.jeffheaton.com)
 * @version 1.0
 */
class Done {

 /**
  * The number of Worker object
  * threads that are currently working
  * on something.
  */
 private int _activeThreads = 0;

 /**
  * This boolean keeps track of if
  * the very first thread has started
  * or not. This prevents this object
  * from falsely reporting that the ThreadPool 
  * is done, just because the first thread
  * has not yet started.
  */
 private boolean _started = false;
 /**
  * This method can be called to block
  * the current thread until the ThreadPool
  * is done.
  */

 synchronized public void waitDone()
 {
  try {
   while ( _activeThreads>0 ) {
    wait();
   }
  } catch ( InterruptedException e ) {
  }
 }
 /**
  * Called to wait for the first thread to 
  * start. Once this method returns the
  * process has begun.
  */

 synchronized public void waitBegin()
 {
  try {
   while ( !_started ) {
    wait();
   }
  } catch ( InterruptedException e ) {
  }
 }


 /**
  * Called by a Worker object
  * to indicate that it has begun 
  * working on a workload.
  */
 synchronized public void workerBegin()
 {
  _activeThreads++;
  _started = true;
  notify();
 }

 /**
  * Called by a Worker object to 
  * indicate that it has completed a 
  * workload.
  */
 synchronized public void workerEnd()
 {
  _activeThreads--;
  notify();
 }

 /**
  * Called to reset this object to
  * its initial state.
  */
 synchronized public void reset()
 {
  _activeThreads = 0;
 }

}
--------------------------------------------------------------------------

compilation options used...


gcj -d . -C ThreadPool.java            /* Generate Class File */
gcj -c -d . ThreadPool.java           /* Compile Java File  */
gcjh ThreadPool


gcj -d . -C env_test.java           /* Generate Class File */
gcj -c -d . env_test.java          /* Compile Java File  */
gcjh env_test


g++ -m32 -Wno-deprecated -fPIC 
-I/appl/flstr/d2/fernanr2/MutexLock/TestJVSynchronise -c
TestJVSynchronise19thDec.cc

gcj -o TestJVSynchronise19thDec.exe TestJVSynchronise19thDec.o ThreadPool.o 
env_test.o  -lstdc++


-- 
           Summary: wait() call hangs in _Jv_CondWait taking the monitor
                    with it causing the application to hang
           Product: gcc
           Version: 4.2.2
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: libgcj
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rajathf at techmahindra dot com
 GCC build triplet: Configured with: ./configure --
                    prefix=/software/gcc/4.2.2 --enab
  GCC host triplet: Thread model: posix
GCC target triplet: sparc-sun-solaris2.9


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34574


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug libgcj/34574] wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang
  2007-12-24 18:24 [Bug libgcj/34574] New: wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang rajathf at techmahindra dot com
@ 2007-12-24 18:27 ` rajathf at techmahindra dot com
  2007-12-24 18:58 ` rajathf at techmahindra dot com
  2007-12-24 22:12 ` pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: rajathf at techmahindra dot com @ 2007-12-24 18:27 UTC (permalink / raw)
  To: java-prs



------- Comment #1 from rajathf at techmahindra dot com  2007-12-24 18:27 -------
the pstack i got at deadlock mite help...


-----------------  lwp# 1 / thread# 1  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde2b9c cond_wait_queue (1a8900, fcdf8b48, 0, 0, fcfc0000, fcdf8000) + d4
 fcde3358 cond_wait (1a8900, 1a8910, 0, 0, 0, 0) + 14
 fcde3394 pthread_cond_wait (1a8900, 1a8910, 0, 0, 0, 0) + 8
 fdeaf8b4 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170260, 0, ffbfefe0, 0, 0) + 20c
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d10, 0, 0, 0, 0, 0) + 8c
 00012e10 _ZN4Done8waitDoneEJvv (153d10, 17ade0, 1, 0, 0, 0) + 38
 00013b28 _ZN10ThreadPool8completeEJvv (17ae28, 17ade0, 14c18, 61760000, 6176,
0) + 80
 00014484 _ZN3abc27WaitForAllThreadsToCompleteEv (ffbff248, 14c18, 37340,
ff3b3a28, ffbfffcc, ff3cc4ec) + 28
 00012d54 main     (1, ffbff324, ffbff32c, 2698c, 0, 0) + c0
 0001280c _start   (0, 0, 0, 0, 0, 0) + 5c
-----------------  lwp# 2 / thread# 2  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde2b9c cond_wait_queue (1a8888, fcdf8b48, 0, 0, fcfc0200, fcdf8000) + d4
 fcde3358 cond_wait (1a8888, 1a8898, 0, 0, 0, 0) + 14
 fcde3394 pthread_cond_wait (1a8888, 1a8898, 0, 0, 0, 0) + 8
 fdeaf8b4 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
ff102280, 0, fcd7bdb0, 0, fcd7be74) + 20c
 fde98d68 _ZN3gnu3gcj7runtime15FinalizerThread3runEJvv (177e10, fcd7be88, 0,
fcdd172c, 5, ff101be8) + e4
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177e10, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc80, 0, fcd7bfa0, fcd7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 3 / thread# 3  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc0400, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fcc7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 80d080, ffffd282) +
8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177cd0, fcc7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177cd0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc50, 0, fcc7bfa0, fcc7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 4 / thread# 4  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc0600, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fcb7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 80a880, ffffeb72) +
8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177c80, fcb7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177c80, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc40, 0, fcb7bfa0, fcb7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 5 / thread# 5  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc0800, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fca7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 808080, 1e62) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177c30, fca7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177c30, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc38, 0, fca7bfa0, fca7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 6 / thread# 6  --------------------
 fcde58f4 lwp_park (0, 0, 0)            <-------Normal Scenario for remaining
threads
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc0a00, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc97bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 8b7080, ffffd642) +
8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177be0, fc97be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177be0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc30, 0, fc97bfa0, fc97bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 7 / thread# 7  --------------------
 fdeaf864 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, 0, 0, 0) + 1bc      <-------Spurious Wake -up
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 8ba000, 1012) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177b90, fc87be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177b90, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc28, 0, fc87bfa0, fc87bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 8 / thread# 8  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc0e00, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc77bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 810000, c52) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177b40, fc77be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177b40, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc20, 0, fc77bfa0, fc77bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 9 / thread# 9  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc1000, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc67bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 805080, ffffe462) +
8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 177af1, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177af0, fc67be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177af0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc18, 0, fc67bfa0, fc67bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 10 / thread# 10  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc1200, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc57bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 8bc880, bad52) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177aa0, fc57be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177aa0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc10, 0, fc57bfa0, fc57bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 11 / thread# 11  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 81010100, ff00) +
104
 fcde206c slow_lock (170210, fcfc1400, 0, 1, 16ff00, 0) + 58
 fdea40c0 _Jv_MonitorEnter (b, 14c18, 0, 0, 815000, ffffd074) + 3c
 00013efc _ZN8IBMMutex7releaseEJvv (153d00, 14c18, 1, 0, 0, 0) + c
 00014324 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 2b8
 000131e4 _ZN12WorkerThread3runEJvv (177a50, fc47be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177a50, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc08, 0, fc47bfa0, fc47bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 12 / thread# 12  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc1600, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc37bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 80d800, 2544) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177a00, fc37be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177a00, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcc00, 0, fc37bfa0, fc37bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 13 / thread# 13  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc1800, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc27bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 8bc080, baa54) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (1779b0, fc27be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (1779b0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbf8, 0, fc27bfa0, fc27bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 14 / thread# 14  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc1a00, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc17bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 815080, 1094) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177960, fc17be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177960, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbf0, 0, fc17bfa0, fc17bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 15 / thread# 15  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc1c00, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fc07bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 813000, ffffe664) +
8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177910, fc07be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177910, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbe8, 0, fc07bfa0, fc07bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 16 / thread# 16  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc1e00, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fbf7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 805880, 4754) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (1778c0, fbf7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (1778c0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbe0, 0, fbf7bfa0, fbf7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 17 / thread# 17  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc2000, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fbe7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 808880, 2164) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177870, fbe7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177870, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbd8, 0, fbe7bfa0, fbe7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 18 / thread# 18  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc2200, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fbd7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 813880, ffffe994) +
8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177820, fbd7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177820, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbd0, 0, fbd7bfa0, fbd7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 19 / thread# 19  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc2400, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fbc7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 80a080, ffffe874) +
8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (1777d0, fbc7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (1777d0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbc8, 0, fbc7bfa0, fbc7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 20 / thread# 20  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc2600, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fbb7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 8ba780, 12e4) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177780, fbb7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177780, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbc0, 0, fbb7bfa0, fbb7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 21 / thread# 21  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc2800, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fba7bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 810800, f54) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (177730, fba7be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (177730, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbb8, 0, fba7bfa0, fba7bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 22 / thread# 22  --------------------
 fcde58f4 lwp_park (0, 0, 0)
 fcde166c mutex_lock_queue (fcdf8b44, 0, 170210, fcdf8000, 0, 0) + 104
 fcde206c slow_lock (170210, fcfc2a00, 0, 0, 0, 0) + 58
 fdeaf8d8 _Z12_Jv_CondWaitP23_Jv_ConditionVariable_tP11_Jv_Mutex_txi (1,
170210, 0, fb97bbc8, 0, 0) + 230
 fdea4298 _ZN4java4lang6Object4waitEJvxi (153d00, 0, 0, 0, 815900, 13c4) + 8c
 00013e8c _ZN8IBMMutex7acquireEJvv (153d00, 17ade0, a, 0, 0, 0) + 88
 000140f4 _ZN3env3runEJvv (17ade0, 26868, 1, 0, 0, 0) + 88
 000131e4 _ZN12WorkerThread3runEJvv (1776e0, fb97be88, 0, 0, 0, ff101be8) + d0
 fdea7f70 _Z13_Jv_ThreadRunPN4java4lang6ThreadE (1776e0, ff1a66a0, 0, ff1a6000,
ff12d474, feb3c510) + 18
 fdeaf3d4 _Z12really_startPv (fcbb0, 0, fb97bfa0, fb97bf7c, 0, 0) + 20
 fe7dd37c GC_start_routine (12ef80, 0, 0, 0, 0, 0) + d4
 fcde57b4 _lwp_start (0, 0, 0, 0, 0, 0)


-- 

rajathf at techmahindra dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rajathf at techmahindra dot
                   |                            |com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34574


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug libgcj/34574] wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang
  2007-12-24 18:24 [Bug libgcj/34574] New: wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang rajathf at techmahindra dot com
  2007-12-24 18:27 ` [Bug libgcj/34574] " rajathf at techmahindra dot com
@ 2007-12-24 18:58 ` rajathf at techmahindra dot com
  2007-12-24 22:12 ` pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: rajathf at techmahindra dot com @ 2007-12-24 18:58 UTC (permalink / raw)
  To: java-prs



-- 

rajathf at techmahindra dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |blocker


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34574


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug libgcj/34574] wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang
  2007-12-24 18:24 [Bug libgcj/34574] New: wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang rajathf at techmahindra dot com
  2007-12-24 18:27 ` [Bug libgcj/34574] " rajathf at techmahindra dot com
  2007-12-24 18:58 ` rajathf at techmahindra dot com
@ 2007-12-24 22:12 ` pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-12-24 22:12 UTC (permalink / raw)
  To: java-prs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|blocker                     |normal
  GCC build triplet|Configured with: ./configure|
                   |--prefix=/software/gcc/4.2.2|
                   |--enab                      |
   GCC host triplet|Thread model: posix sparc-  |
                   |sun-solaris2.9 (MAY BE      |
                   |OTHERS TOO)                 |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34574


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-12-24 22:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-24 18:24 [Bug libgcj/34574] New: wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang rajathf at techmahindra dot com
2007-12-24 18:27 ` [Bug libgcj/34574] " rajathf at techmahindra dot com
2007-12-24 18:58 ` rajathf at techmahindra dot com
2007-12-24 22:12 ` pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).