Revert "Use a variable on the stack to not have a temporary in the call"
[ACE_TAO.git] / ACE / etc / purify.solaris2
blob84e97e6e8f34aa069cf81e7155f9804ead2ecb8a
1 #### To use:  create a symlink, named .purify, to this file in your home
2 #### directory:
3 ####   % ln -s $ACE_ROOT/env/purify.solaris2 ~/.purify
4 #### Please note the leading dot in .purify.
5 ####
6 #### I use these Purify options:
7 ####   -best-effort -cache-dir=/tmp/purifycache -chain-length=20 \
8 ####   -fds-inuse-at-exit=no -ignore-signals=SIGINT -inuse-at-exit \
9 ####   -max_threads=100
10 #### These options are hard-coded in ACE wrapper_macros.GNU.
12 ####
13 #### In addition to what's already in Purify's .purify.solaris2:
14 ####
15 suppress miu malloc; *alloc; thr_setspecific
16 suppress miu malloc; realloc; thr_keycreate
17 suppress mlk malloc; calloc; thr_setspecific
18 suppress plk malloc; *alloc; thr_setspecific
19 suppress miu malloc; realloc; putenv
21 ####
22 #### This looks like a minor problem in the g++ rx library or the Solaris 2.5
23 #### C library qsort.
24 ####
25 suppress umr qst; qsort; rx_compactify_nfa; rx_compile; re_compile_pattern; Regex::Regex(const char*,int,int,const char*); Regex::_GLOBAL_.I.(const Regex&)
27 ####
28 #### A problem in Solaris LWPs?  This shows up in the ACE Thread_Manager_Test.
29 ####
30 suppress umr _lwp_in_syscall; _thrp_suspend
32 ####
33 #### These look like benign UMRs in the threads library.
34 ####
35 suppress umr __sigprocmask; _thrp_exit; _t_cancel; _thr_exit_common
36 suppress umr __sigprocmask; _thrp_exit; _thr_exit_common; _age
38 ####
39 #### With Solaris 2.5.1, time (and other) functions apparently hold
40 #### on to memory for the duration of a process.  Not unexpected, but
41 #### the following suppress the Purify MIU reports.
42 ####
43 suppress miu malloc; calloc; _tzload; _ltzset_u; localtime_u; ctime
44 suppress miu malloc; calloc; _tzload; _ltzset_u; localtime_u; localtime_r; ctime_r
45 suppress miu malloc; strdup; _tzload; _ltzset_u; localtime_u; ctime
46 suppress miu malloc; strdup; _tzload; _ltzset_u; localtime_u; localtime_r; ctime_r
47 suppress miu malloc; tzcpy; getzname; _ltzset_u; localtime_u; ctime
48 suppress miu malloc; tzcpy; getzname; _ltzset_u; localtime_u; localtime_r; ctime_r
49 suppress miu malloc; strdup; getsystemTZ; _ltzset_u; localtime_u; localtime_r; ctime_r
50 suppress miu malloc; _atfork_append; _ld_concurrency; _init
51 suppress miu malloc; Balloc; _IO_dtoa; _IO_outfloat; ostream::operator <<(double)
53 ####
54 #### Another small leak, this doesn't look harmful.
55 ####
56 suppress miu malloc; process_nls_path; catopen; __STATIC_CONSTRUCTOR(void); _init
58 ####
59 #### Socket-related allocations, revealed by IOStream_Test or
60 #### SOCK_Connector_Test.
61 ####
62 suppress miu malloc; _nss_XbyY_buf_alloc; gethostbyaddr
63 suppress miu malloc; _nss_XbyY_buf_alloc; gethostbyname
64 suppress miu malloc; _s_alloc_bufs; _s_alloc; _s_socreate
65 suppress miu malloc; add_silink; _s_alloc; _s_socreate
66 suppress miu malloc; calloc; fgetnetconfig; getnetlist; setnetconfig
67 suppress miu malloc; getnetlist; setnetconfig
68 suppress miu malloc; *; getnetlist; setnetconfig
69 suppress miu malloc; *; *; getnetlist; setnetconfig
70 suppress miu malloc; realloc; rx_compactify_nfa
71 suppress miu malloc; strdup; __rpc_getconfip; gethostby*_r
72 suppress miu malloc; strdup; getlookups; fgetnetconfig; getnetlist
73 suppress miu malloc; *; _nsw_getoneconfig; do_getconfig
74 suppress miu malloc; add_concell; do_getconfig; __nsw_getconfig
76 ####
77 #### Allocations during OS accept call. Can be seen in the
78 #### Cached_Accept_Conn_Test and Cached_Conn_Test
79 ####
80 suppress mlk malloc; setnetconfig; _s_match_netconf; _s_socreate; __accept; accept
82 ####
83 #### With Sun C++ 4.2, there's an FMR within the ostream deletion.
84 ####
85 suppress fmr unsafe_ostream::flush(void); unsafe_ostream::~unsafe_ostream(void); ostream::~ostream(void); iostream::~iostream(void)
87 ####
88 #### Problem with FMR in thread-specific storage?  The Purify
89 #### trace doesn't show where the allocated storage was freed;
90 #### it usually does for FMRs.
91 ####
92 #### ****  Purify instrumented ./TSS_Test (pid 16650)  ****
93 #### FMR: Free memory read:
94 ####   * This is occurring while in thread 5:
95 ####    thr_getspecific [libthread.so.1]
96 ####    worker(void*)  [OS.i:3975]
97 ####    _thread_start  [libthread.so.1]
98 ####   * Reading 4 bytes from 0x7e8c8 in the heap.
99 ####   * Address 0x7e8c8 is 24 bytes into a freed  block at 0x7e8b0 of 32 bytes.
100 ####   * This block was allocated from thread 4:
101 ####    malloc         [rtlib.o]
102 ####    realloc        [rtlib.o]
103 ####    thr_keycreate  [libthread.so.1]
104 ####    ACE_OS::thr_keycreate(unsigned int*,void(*)(void*),void*) [OS.cpp:1938]
105 ####    worker(void*)  [TSS_Test.cpp:125]
106 ####    _thread_start  [libthread.so.1]
107 ####   * There have been 0 frees since this block was freed thread 4.
108 ####
109 #### ****  Purify instrumented ./TSS_Test (pid 16650)  ****
110 #### FMR: Free memory read:
111 ####   * This is occurring while in thread 5:
112 ####    thr_setspecific [libthread.so.1]
113 ####    ACE_OS::thr_setspecific(unsigned int,void*) [OS.cpp:1866]
114 ####    worker(void*)  [TSS_Test.cpp:98]
115 ####    _thread_start  [libthread.so.1]
116 ####   * Reading 4 bytes from 0x7e8c8 in the heap.
117 ####   * Address 0x7e8c8 is 24 bytes into a freed  block at 0x7e8b0 of 32 bytes.
118 ####   * This block was allocated from thread 4:
119 ####    malloc         [rtlib.o]
120 ####    realloc        [rtlib.o]
121 ####    thr_keycreate  [libthread.so.1]
122 ####    ACE_OS::thr_keycreate(unsigned int*,void(*)(void*),void*) [OS.cpp:1938]
123 ####    worker(void*)  [TSS_Test.cpp:125]
124 ####    _thread_start  [libthread.so.1]
125 ####   * There have been 0 frees since this block was freed thread 4.
126 ####
127 suppress fmr thr_getspecific
128 suppress fmr thr_setspecific
130 ####
131 #### Write of one byte beyond the stack in ::pthread_setcanceltype ().
132 #### This code fragment exhibits the BSW error:
133 ####   int result;
134 ####   return ::pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &result);
135 ####
136 suppress bsw pthread_setcanceltype
138 ####
139 #### TSS leaks:  on Solaris, TSS isn't cleaned up very well.
140 ####
141 suppress mlk malloc; __0OnWuI; operator new(unsigned int); ACE_TSS<*>::make_TSS_TYPE(void) const
143 # Don't seem to need these any more:
144 # suppress miu malloc; __bUiLtIn_nEw; __builtin_new; ACE_Task_Exit::instance ()
145 # suppress miu malloc; __bUiLtIn_nEw; __builtin_new; ACE_TSS<*>::make_TSS_TYPE () const
146 # suppress mlk malloc; __bUiLtIn_nEw; __builtin_new; ACE_TSS<*>::make_TSS_TYPE () const
147 # suppress plk malloc; __bUiLtIn_nEw; __builtin_new; ACE_TSS<*>::make_TSS_TYPE () const
149 ####
150 #### SunOS 5.7's thread library has these leaks.
151 ####
152 suppress miu malloc; _atfork_append; _t0init; _init
153 suppress miu malloc; _atfork_append; _ld_concurrency; _t0init; _init
155 suppress umr *; get_info_by_class; sched_getparam
156 suppress umr *; *; get_info_by_class; sched_getparam
157 suppress umr get_local_info; order_haddrlist; _get_hostserv_inetnetdir_byname; gethostbyname_r
159 #### EOF