

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
6 messages in net.java.dev.jna.users[jna-users] Re: JNA (fork and exec)| From | Sent On | Attachments |
|---|---|---|
| Timothy Wall | Aug 27, 2007 12:59 pm | |
| Wayne Meissner | Aug 27, 2007 5:28 pm | |
| Jagadeeswaran Rajendiran | Aug 28, 2007 4:56 pm | |
| Timothy Wall | Aug 28, 2007 6:51 pm | |
| Jagadeeswaran Rajendiran | Aug 29, 2007 5:49 pm | |
| Timothy Wall | Aug 29, 2007 8:48 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | [jna-users] Re: JNA (fork and exec) | Actions... |
|---|---|---|
| From: | Jagadeeswaran Rajendiran (r.ja...@loni.ucla.edu) | |
| Date: | Aug 29, 2007 5:49:28 pm | |
| List: | net.java.dev.jna.users | |
execv never returns if it is successful. The java process is completely replaced by the exec'd program. If it does return, you need to check errno to see why it failed.
Absolutely. Thats what I meant...that execv never returns when it *fails* coz program_control probably never gets to execv...
Do you see *any* strace activity from the java process? I haven't done this for a while.
Here's the only *strace* activity that I see (related to process mgmt...) which happens right at the launch of the application. Every time I try to run something from the GUI, nothing else happens (acc. to strace)...
--
jagadeeswaran@aalto:~/pipelineJNA$ strace -e trace=process java -jar
dist/Pipeline.jar
execve("/usr/bin/java", ["java", "-jar", "dist/Pipeline.jar"], [/* 20 vars */])
= 0
execve("/usr/lib/jvm/java-6-sun-1.6.0.00/jre/bin/java", ["java", "-jar",
"dist/Pipeline.jar"], [/* 21 vars */]) = 0
clone(child_stack=0xb7e304b4,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED,
parent_tidptr=0xb7e30bd8, {entry_number:6, base_addr:0xb7e30b90, limit:1048575,
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0,
useable:1}, child_tidptr=0xb7e30bd8) = 26443
--
Do a "kill -3" on the child process where execv fails. What does the thread dump show?
CommandThread_..._6 is the newly reused thread...(you see two commandthreads coz
I use a 2-thread
threadpool and the threadpool creates new threads until the limit is reached and
then starts to
reuse the threads whenever possible)...and its sitting the appropriate
function-call "waitForCompletion"...
Full thread dump Java HotSpot(TM) Client VM (1.6.0-b105 mixed mode):
"Enode-JNA_User_0|8e450e76-a16c-453f-aaa9-eab92020de3c" prio=10 tid=0x083cf800
nid=0x68c8 waiting on condition [0xacba9000..0xacba9f30]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae419c08> (a
java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:870)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1182)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
at
translation.graph.node.AbstractENode.awaitCommandChildren(AbstractENode.java:210)
at translation.graph.node.AbstractENode.run(AbstractENode.java:312)
at java.lang.Thread.run(Thread.java:619)
"execution.WorkflowExecutionManager::8e450e76-a16c-453f-aaa9-eab92020de3c"
prio=10 tid=0xac85cc00 nid=0x68c7 waiting on condition [0xaccd1000..0xaccd1fb0]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae415a50> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at messaging.AbstractManager.dequeueMessage(AbstractManager.java:172)
at messaging.AbstractManager.run(AbstractManager.java:121)
at java.lang.Thread.run(Thread.java:619)
"CommandThread:JNA_User_0_0_6" prio=10 tid=0x08103800 nid=0x68b8 waiting on
condition [0xac9ad000..0xac9ae130]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at
execution.AbstractCommandThread.waitForCompletion(AbstractCommandThread.java:390)
at execution.AbstractCommandThread.run(AbstractCommandThread.java:555)
at java.lang.Thread.run(Thread.java:619)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
"CommandThread:JNA_User_0_0_5" prio=10 tid=0x08146800 nid=0x68b3 waiting on
condition [0xac9fe000..0xac9fef30]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae40a788> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)
at java.lang.Thread.run(Thread.java:619)
"JDWP Transport Listener: dt_socket" daemon prio=10 tid=0x080c9000 nid=0x6863
runnable [0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"TimerQueue" daemon prio=10 tid=0x083f9800 nid=0x6834 in Object.wait()
[0xacc80000..0xacc81030]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at javax.swing.TimerQueue.run(TimerQueue.java:236)
- locked <0xae3b38d8> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:619)
"AWT-EventQueue-0" prio=10 tid=0xad21b800 nid=0x682b in Object.wait()
[0xacd22000..0xacd230b0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.awt.EventQueue.getNextEvent(EventQueue.java:479)
- locked <0xae1e0b98> (a java.awt.EventQueue)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:245)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"AWT-Shutdown" prio=10 tid=0xad20c800 nid=0x682a in Object.wait()
[0xacd73000..0xacd74130]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xae1b83e8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:485)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0xae1b83e8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:619)
"AWT-XAWT" daemon prio=10 tid=0x08374400 nid=0x6829 runnable
[0xacdc4000..0xacdc4db0]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:585)
at sun.awt.X11.XToolkit.run(XToolkit.java:560)
at java.lang.Thread.run(Thread.java:619)
"Java2D Disposer" daemon prio=10 tid=0x08342c00 nid=0x6828 in Object.wait()
[0xace30000..0xace30e30]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0xae1b8410> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
"GUIManager" prio=10 tid=0xad20bc00 nid=0x6827 waiting on condition
[0xad1ad000..0xad1adeb0]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae1a1ef0> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at messaging.AbstractManager.dequeueMessage(AbstractManager.java:172)
at messaging.AbstractManager.run(AbstractManager.java:121)
at java.lang.Thread.run(Thread.java:619)
"ConnectionManager" prio=10 tid=0xad209000 nid=0x6826 waiting on condition
[0xad1fe000..0xad1fef30]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae1b8468> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at messaging.AbstractManager.dequeueMessage(AbstractManager.java:172)
at messaging.AbstractManager.run(AbstractManager.java:121)
at java.lang.Thread.run(Thread.java:619)
"NetworkManager" prio=10 tid=0xad4dbc00 nid=0x6825 waiting on condition
[0xad35c000..0xad35cfb0]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae1b8510> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at messaging.AbstractManager.dequeueMessage(AbstractManager.java:172)
at messaging.AbstractManager.run(AbstractManager.java:121)
at java.lang.Thread.run(Thread.java:619)
"ExecutionManager" prio=10 tid=0xad4fc400 nid=0x6824 waiting on condition
[0xad3ad000..0xad3ae030]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae1b85c8> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at messaging.AbstractManager.dequeueMessage(AbstractManager.java:172)
at messaging.AbstractManager.run(AbstractManager.java:121)
at java.lang.Thread.run(Thread.java:619)
"HSQLDB Timer @157b46f" daemon prio=10 tid=0xad4d0000 nid=0x6823 in
Object.wait() [0xad3fe000..0xad3ff0b0]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
- locked <0xae125e88> (a org.hsqldb.lib.HsqlTimer)
at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
"Low Memory Detector" daemon prio=10 tid=0x080d7c00 nid=0x6821 runnable
[0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x080d6400 nid=0x6820 waiting on condition
[0x00000000..0xad70e8c8]
java.lang.Thread.State: RUNNABLE
"JDWP Event Helper Thread" daemon prio=10 tid=0x080cb400 nid=0x681f runnable
[0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x080c1c00 nid=0x681d waiting on
condition [0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x080b2800 nid=0x681c in Object.wait()
[0xad852000..0xad853030]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0xae055588> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x080ae400 nid=0x681b in Object.wait()
[0xad8a3000..0xad8a40b0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0xae0555a8> (a java.lang.ref.Reference$Lock)
"main" prio=10 tid=0x0805f400 nid=0x6819 waiting on condition
[0xb7e18000..0xb7e19208]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xae070258> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at messaging.AbstractManager.dequeueMessage(AbstractManager.java:172)
at messaging.AbstractManager.run(AbstractManager.java:121)
at ui.gui.Main.main(Main.java:26)
"VM Thread" prio=10 tid=0x080ab000 nid=0x681a runnable
"VM Periodic Task Thread" prio=10 tid=0x080d9800 nid=0x6822 waiting on condition
JNI global references: 17474
Heap
def new generation total 960K, used 818K [0xadb50000, 0xadc50000, 0xae030000)
eden space 896K, 89% used [0xadb50000, 0xadc176b0, 0xadc30000)
from space 64K, 32% used [0xadc40000, 0xadc452a8, 0xadc50000)
to space 64K, 0% used [0xadc30000, 0xadc30000, 0xadc40000)
tenured generation total 7172K, used 4251K [0xae030000, 0xae731000,
0xb1b50000)
the space 7172K, 59% used [0xae030000, 0xae456f78, 0xae457000, 0xae731000)
compacting perm gen total 18688K, used 18577K [0xb1b50000, 0xb2d90000,
0xb5b50000)
the space 18688K, 99% used [0xb1b50000, 0xb2d74588, 0xb2d74600, 0xb2d90000)
No shared spaces configured.
--







