[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference clt::cma

Title:DECthreads Conference
Moderator:PTHRED::MARYSTEON
Created:Mon May 14 1990
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:1553
Total number of notes:9541

1527.0. "hung up waiting for malloc mutex()" by HYDRA::BRYANT () Wed Apr 16 1997 15:20

This is from our friends at Software.com.  Does anything stand out here?  They
are running DU V4.0b.
THanks.
Pat Bryant
Software Partner Engineering
-------------------------------------------------------------------------------
One of our servers (named IDD) got hung up waiting for the malloc mutex().  I
>went through all the thread stack traces, and there was one that stood
>out.  I have included the output of "show thread" and the particular
>thread's stack trace below.
>
>Can you tell us anything about what vpInCritical() means?  It looks like
>the call to free() is stuck in this function, and this has prevented the
>application from making any further progress.  The threads in "cond
>wait" are waiting for other threads to finish before they proceed, and
>the threads in "mutex wait" are all waiting for malloc() or free() to
>complete.
>
>Thread State      Substate        Policy     Priority Name
>------ ---------- --------------- ---------- -------- -------------
>>*  -3 running                    idle        0       null thread for VP 0x2
>     1 blocked    timed cond wait throughput  8       default thread
>    -1 running                    idle        0       null thread for VP
>0x0
>    -2 ready                      idle        0       null thread for VP
>0x1
>    -4 running                    idle        0       null thread for VP
>0x3
>    -5 blocked    kernel          fifo       32       manager thread
>     3 blocked    cond wait       throughput  9       <anonymous>
>     4 blocked    kernel          throughput  8       <anonymous>
>     5 blocked    timed cond wait throughput  8       <anonymous>
>     6 blocked    timed cond wait throughput  8       <anonymous>
>     8 blocked    mutex wait      throughput  8       <anonymous>
>     9 blocked    kernel          throughput 13       <anonymous>
>    10 blocked    cond wait       throughput 13       <anonymous>
>    11 blocked    mutex wait      throughput 13       <anonymous>
>    12 blocked    mutex wait      throughput 13       <anonymous>
>    13 blocked    mutex wait      throughput 13       <anonymous>
>    14 blocked    cond wait       throughput 13       <anonymous>
>    15 blocked    cond wait       throughput 13       <anonymous>
>    16 blocked    cond wait       throughput 13       <anonymous>
>    17 blocked    cond wait       throughput 13       <anonymous>
>    18 blocked    cond wait       throughput 13       <anonymous>
>    19 blocked    mutex wait      throughput 13       <anonymous>
>    20 blocked    mutex wait      throughput 13       <anonymous>
>    21 blocked    mutex wait      throughput 13       <anonymous>
>    22 blocked    cond wait       throughput 13       <anonymous>
>    23 blocked    cond wait       throughput 13       <anonymous>
>    24 blocked    cond wait       throughput 13       <anonymous>
>    25 blocked    cond wait       throughput 13       <anonymous>
>    26 running                    throughput 13       <anonymous>
>    27 blocked    mutex wait      throughput 13       <anonymous>
>    28 blocked    mutex wait      throughput 13       <anonymous>
>    29 blocked    cond wait       throughput 13       <anonymous>
>    30 blocked    mutex wait      throughput 13       <anonymous>
>    31 blocked    cond wait       throughput 13       <anonymous>
>    32 blocked    cond wait       throughput 13       <anonymous>
>    33 blocked    mutex wait      throughput 13       <anonymous>
>    34 blocked    cond wait       throughput 13       <anonymous>
>    35 blocked    mutex wait      throughput 13       <anonymous>
>    36 blocked    cond wait       throughput 13       <anonymous>
>    37 blocked    cond wait       throughput 13       <anonymous>
>    38 blocked    cond wait       throughput 13       <anonymous>
>    39 blocked    mutex wait      throughput 13       <anonymous>
>    40 blocked    mutex wait      throughput 13       <anonymous>
>    41 blocked    mutex wait      throughput 13       <anonymous>
>    42 blocked    mutex wait      throughput 13       <anonymous>
>    43 blocked    cond wait       throughput 13       <anonymous>
>    44 blocked    cond wait       throughput 13       <anonymous>
>    45 blocked    mutex wait      throughput 13       <anonymous>
>    46 blocked    mutex wait      throughput 13       <anonymous>
>    47 blocked    mutex wait      throughput 13       <anonymous>
>    48 blocked    mutex wait      throughput 13       <anonymous>
>    49 blocked    cond wait       throughput 13       <anonymous>
>    50 blocked    cond wait       throughput 13       <anonymous>
>    51 blocked    cond wait       throughput 13       <anonymous>
>    52 blocked    cond wait       throughput 13       <anonymous>
>    53 blocked    cond wait       throughput 13       <anonymous>
>    54 blocked    cond wait       throughput 13       <anonymous>
>    55 blocked    cond wait       throughput 13       <anonymous>
>    56 blocked    mutex wait      throughput 13       <anonymous>
>    57 blocked    cond wait       throughput 13       <anonymous>
>    58 blocked    cond wait       throughput 13       <anonymous>
>    59 blocked    cond wait       throughput 13       <anonymous>
>    60 blocked    mutex wait      throughput 13       <anonymous>
>    61 blocked    mutex wait      throughput 13       <anonymous>
>    62 blocked    cond wait       throughput 13       <anonymous>
>    63 blocked    mutex wait      throughput 13       <anonymous>
>    64 blocked    cond wait       throughput 13       <anonymous>
>    65 blocked    cond wait       throughput 13       <anonymous>
>    66 blocked    cond wait       throughput 13       <anonymous>
>    67 blocked    mutex wait      throughput 13       <anonymous>
>    68 blocked    mutex wait      throughput 13       <anonymous>
>    69 blocked    cond wait       throughput 13       <anonymous>
>    70 blocked    mutex wait      throughput 13       <anonymous>
>    71 blocked    cond wait       throughput 13       <anonymous>
>    72 blocked    cond wait       throughput 13       <anonymous>
>    73 blocked    cond wait       throughput 13       <anonymous>
>    74 blocked    cond wait       throughput 13       <anonymous>
>    75 blocked    cond wait       throughput 13       <anonymous>
>    76 blocked    mutex wait      throughput 13       <anonymous>
>    77 blocked    cond wait       throughput 13       <anonymous>
>    78 blocked    cond wait       throughput 13       <anonymous>
>    79 blocked    mutex wait      throughput 13       <anonymous>
>    80 blocked    mutex wait      throughput 13       <anonymous>
>    81 blocked    cond wait       throughput 13       <anonymous>
>    82 blocked    cond wait       throughput 13       <anonymous>
>    83 blocked    cond wait       throughput 13       <anonymous>
>    84 blocked    mutex wait      throughput 13       <anonymous>
>    85 blocked    mutex wait      throughput 13       <anonymous>
>    86 blocked    cond wait       throughput 13       <anonymous>
>    87 blocked    mutex wait      throughput 13       <anonymous>
>    88 blocked    cond wait       throughput 13       <anonymous>
>    89 blocked    cond wait       throughput 13       <anonymous>
>    90 blocked    mutex wait      throughput 13       <anonymous>
>    91 blocked    cond wait       throughput 13       <anonymous>
>    92 blocked    mutex wait      throughput 13       <anonymous>
>    93 blocked    mutex wait      throughput 13       <anonymous>
>    94 blocked    cond wait       throughput 13       <anonymous>
>    95 blocked    cond wait       throughput 13       <anonymous>
>    96 blocked    mutex wait      throughput 13       <anonymous>
>    97 blocked    mutex wait      throughput 13       <anonymous>
>    98 blocked    cond wait       throughput 13       <anonymous>
>    99 blocked    mutex wait      throughput 13       <anonymous>
>   100 blocked    cond wait       throughput 13       <anonymous>
>   101 blocked    cond wait       throughput 13       <anonymous>
>   102 blocked    cond wait       throughput 13       <anonymous>
>   103 blocked    mutex wait      throughput 13       <anonymous>
>   104 blocked    cond wait       throughput 13       <anonymous>
>   105 blocked    cond wait       throughput 13       <anonymous>
>   106 blocked    mutex wait      throughput 13       <anonymous>
>   107 blocked    mutex wait      throughput 13       <anonymous>
>   108 blocked    mutex wait      throughput 13       <anonymous>
>   109 blocked    cond wait       throughput 13       <anonymous>
>   110 blocked    mutex wait      throughput 13       <anonymous>
>   111 blocked    cond wait       throughput 13       <anonymous>
>   112 blocked    cond wait       throughput 13       <anonymous>
>   113 blocked    mutex wait      throughput 13       <anonymous>
>   114 blocked    cond wait       throughput 13       <anonymous>
>   115 blocked    cond wait       throughput 13       <anonymous>
>   116 blocked    mutex wait      throughput 13       <anonymous>
>   117 blocked    cond wait       throughput 13       <anonymous>
>   118 blocked    cond wait       throughput 13       <anonymous>
>   119 blocked    cond wait       throughput 13       <anonymous>
>   120 blocked    mutex wait      throughput 13       <anonymous>
>   121 blocked    mutex wait      throughput 13       <anonymous>
>   122 blocked    cond wait       throughput 13       <anonymous>
>   123 blocked    cond wait       throughput 13       <anonymous>
>   124 blocked    mutex wait      throughput 13       <anonymous>
>   125 blocked    mutex wait      throughput 13       <anonymous>
>   126 blocked    mutex wait      throughput 13       <anonymous>
>   127 blocked    mutex wait      throughput 13       <anonymous>
>   128 blocked    cond wait       throughput 13       <anonymous>
>   129 blocked    mutex wait      throughput 13       <anonymous>
>   130 blocked    mutex wait      throughput 13       <anonymous>
>   131 blocked    mutex wait      throughput 13       <anonymous>
>   132 blocked    cond wait       throughput 13       <anonymous>
>   133 blocked    cond wait       throughput 13       <anonymous>
>   134 blocked    cond wait       throughput 13       <anonymous>
>
>
>
>Stack trace for thread 26
>#0  0x3ff805672a0 in vpInCritical(tcb=0x1402b0030)
>/usr/users/portante/sb/v40/src/usr/ccs/lib/libpthread/alpha/thd_vp_os.h:381
>#1  0x3ff80568664 in pthread_mutex_unblock(mutex=0x3ffc0802770)
>../../../../../src/usr/ccs/lib/libpthread/COMMON/thd_mutex.c:273
>#2  0x3ff8057bd78 in __pthread_mutex_unlock()
>../../../../../src/usr/ccs/lib/libpthread/alpha/thd_assem.s:702
>#3  0x3ff80575564 in tsMutexUnlock(mutex=0x1402b0030)
>../../../../../src/usr/ccs/lib/libpthread/COMMON/thd_tis_sup.c:558
>#4  0x3ff8085209c in free(0x3ff808520a0, 0x14188b1c0, 0x3ff81d350a8,
>0x14188b1d8, 0x140300908, 0x0) DebugInformationStrippedFromFile138
>#5  0x3ff81d350a4 in operator delete(0x3ff81d350a8, 0x14188b1d8,
>0x140300908, 0x0, 0x300000516b8, 0x140300b00)
>DebugInformationStrippedFromFile2
>#6  0x300000516b4 in _Free(0x140300908, 0x0, 0x300000516b8, 0x140300b00,
>0x30000051c10, 0x14188b1d8) DebugInformationStrippedFromFile0
>#7  0x30000051c0c in operator =(0x30000051c10, 0x14188b1d8,
>0x3000008e33c, 0x140300b00, 0x140300908, 0x140300858)
>DebugInformationStrippedFromFile0
>#8  0x3000008e338 in Add(0x140300b00, 0x14188b1c0, 0xd, 0xc, 0xb,
>0x140300908) DebugInformationStrippedFromFile22
>#9  0x3000005cd74 in operator [](0x6, 0xc, 0x0, 0x140300af8,
>0x141004ec0, 0x140300af8) DebugInformationStrippedFromFile8
>#10 0x3000005db9c in operator >>(0x1413259e0, 0xd, 0x3fc9033544f2b,
>0x141e853e0, 0x140300980, 0x800100000000)
>DebugInformationStrippedFromFile8
>#11 0x300000603bc in Read(0x120066188, 0x140300ae0, 0x2, 0x140300ad8,
>0x1200673b8, 0x14115e2a0) DebugInformationStrippedFromFile9
>#12 0x120066184 in ((SControl*)0x140300ae0)->Read()
>/scratch/clintn/src.im/post.office.att/code/include/SMessage.h:334
>#13 0x1200673c4 in ((MsgMaker*)0x140299800)->processMessage()
>msgmaker.cxx:196
>#14 0x12006cf54 in ((PoolThread*)0x140299800)->threadmain() pool.cxx:192
>#15 0x3ffbffa5938 in Thread::start(arg=0x140299800) thread.cxx:620
>#16 0x3ff80574220 in thdBase(tcb=0x0)
>../../../../../src/usr/ccs/lib/libpthread/COMMON/thd_thread.c:2900
>
T.RTitleUserPersonal
Name
DateLines
1527.1.0 set hidden because it referred to unreleased patch codePTHRED::PORTANTEPeter Portante, DTN 381-2261, (603)881-2261, MS ZKO2-3/Q18Wed Apr 16 1997 16:109
Folks,

.0 was hidden because it was referring to a problem in code a test version of an
upcoming patch.  The team felt that this would cause more confusion that it was
worth.

Thanks,

-Peter