Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Process crashes when POOL_FLAG_EXIT_SELF option given on thread pool with No Lazy stack attribute: (2 Items)
   
Process crashes when POOL_FLAG_EXIT_SELF option given on thread pool with No Lazy stack attribute  
Hi,
I have a thread which creates a resource manager and a thread pool( with Low Water of 5 & max water of 10). The thread 
which creates the thread pool has NOT LAZY stack set (so it has 128K of stack). The thread_pool_create function takes 
POOL_FLAG_EXIT_SELF as its 2nd argument.

The thread pool also takes the PTHREAD_STACK_NOTLAZY attribute.

If I pass POOL_FLAG_EXIT_SELF argument with NOT LAZY stack attribute on the thread pool, the process crashes. But with 
POOL_FLAG_USE_SELF argument there is no problem.

So, Is there any limitation on using POOL_FLAG_EXIT_SELF argument with NOT LAZY stack attribute on the thread pool?

Regards,
Manas

Below is is the crash summary:
  Process Started. (Build Nov 18 2013  09:14:46)

Shutdown[0,0] S/C/F=5/4/3 C/D=0021d214/002a114c state(d0)= now lock exit
QNX Version 6.5.0 Release 2010/07/09-14:35:59EDT
[0]PID-TID=585750-6? P/T FL=00002000/04820000 "usr/bin/sdi"
ppcbe context[03ff7ed0]:
0000: 00000002 03ff7f80 002a5a74 03fe2040 20004035 20004035 00000001 00000000
0020: 9000800b 03fe2040 00000000 03fe2040 00000000 002a7668 00000000 02fcd6a8
0040: 00001032 00000000 00000000 00000000 002a0000 00000000 00000000 002a1148
0060: 00008000 00000000 00000000 00000000 fe3393f4 00000000 03ad9010 02fcd3b0
0080: 0029912c 0025bb40 00029032 0025bbb0 40000004 20000000 00000000 00000000
00a0: fe3393f4
instruction[0025bbb0] (nano_signal@2242):
48 00 00 08 1f 03 08 c2 80 1f 00 28 60 00 01 00 90 1f 00 28 80 01 00 14 7c 08
stack[03ff7f80]:
0000: 03ff7f90 0025bb40 800b010b 02fcd3b0 03ff7fe0 0025bcd4 02fcd6a8 02fcd3b0
0020: 03ff7fe0 0023ed8c 02fcd6a8 02fcd3b0 03ff7ff0 0025d9b4 00000005 03fe93b0
0040: 03ff7fd0 002595d4 03fe96b4 002a1148 00000000 00000000 02fcd6a8 02fcd3b0
0060: 04820100 0029913c 02fcd6a8 02fcd3b0 03ad9010 00000000 800b010b 0


Re: Process crashes when POOL_FLAG_EXIT_SELF option given on thread pool with No Lazy stack attribute  
The sequence to reproduce the shutdown of the system while using POOL_FLAG_EXIT_SELF with No Lazy stack in thread pool:

1) The main() creates a thread  with No lazy stack attribute
2) the thread creates a resource manager with a thread pool of min 5 & max 10 threads.
3) The thread pool is assigned with No Lazy stack option
4) the thread pool create function takes POOL_FLAG_EXIT_SELF argument.
5) The main() does not return. So a while(1) at the end of main() before return.

After all of these, once the process starts, I see a crash. No core files for process generated.

See if this helps in reproducing the problem. The Test file is attached.

Regards,
Manas
Attachment: Text Test.cc 3.45 KB