views:

37

answers:

2

I am working in multithreading application, application is facing some problem while processing the request. When i kept load on multithreaded application,it is working fine up to some time.After some time it is not able to process any request.At this situation when type this command,

ps -eLF | grep multithread

all threads are showing like this,I want to understand this "13:45 ?" what this question mark(?) actually mean?

root 15818 8838 15833 0 1036 2731192 137308 4 13:45 ? 00:00:02 multithread
root 15818 8838 15834 0 1036 2731192 137308 4 13:45 ? 00:00:02 multithread
root 15818 8838 15835 0 1036 2731192 137308 4 13:45 ? 00:00:01 multithread
root 15818 8838 15836 0 1036 2731192 137308 4 13:45 ? 00:00:00 multithread
root 15818 8838 15837 0 1036 2731192 137308 1 13:45 ? 00:00:11 multithread
root 15818 8838 15838 0 1036 2731192 137308 2 13:45 ? 00:00:00 multithread
root 15818 8838 15839 0 1036 2731192 137308 3 13:45 ? 00:00:00 multithread
root 15818 8838 15840 0 1036 2731192 137308 2 13:45 ? 00:00:10 multithread
root 15818 8838 15841 0 1036 2731192 137308 2 13:45 ? 00:00:12 multithread
root 15818 8838 15842 0 1036 2731192 137308 3 13:45 ? 00:00:06 multithread
root 15818 8838 15843 0 1036 2731192 137308 2 13:45 ? 00:00:01 multithread
root 15818 8838 15844 0 1036 2731192 137308 4 13:45 ? 00:00:02 multithread
root 15818 8838 15845 0 1036 2731192 137308 5 13:45 ? 00:00:13 multithread
root 15818 8838 15846 0 1036 2731192 137308 4 13:45 ? 00:00:01 multithread
root 15818 8838 15847 0 1036 2731192 137308 4 13:45 ? 00:00:00 multithread
root 15818 8838 15848 0 1036 2731192 137308 4 13:45 ? 00:00:01 multithread
root 15818 8838 15849 0 1036 2731192 137308 4 13:45 ? 00:00:07 multithread
root 15818 8838 15850 0 1036 2731192 137308 2 13:45 ? 00:00:00 multithread
root 15818 8838 15851 0 1036 2731192 137308 4 13:45 ? 00:00:03 multithread
root 15818 8838 15852 0 1036 2731192 137308 2 13:45 ? 00:00:06 multithread

A: 

The "?" just means that the processes do not have a "controlling TTY", which just means that they're running as daemons, basically.

Since you don't way anything about what your program is, what language it's written in, or what it's supposed to do, it's kind-of hard to provide much more assistance :-)

Pointy
It is written in C multithreaded program in RHEL-5 using POSIX threads,Our process creates a new thread for handling each request.
Chandu
A: 

Build with debugging symbols on (-g), then use gdb to attach to the process id, for example:

gdb multithread
att 15818

In gdb, you can then use "thread apply all where" to get a backtrace of where every thread is. That should tell you what they are waiting for.

David Gelhar