Status: Started
Owner: [EMAIL PROTECTED]
Labels: Type-Bug Pri-2 OS-All Area-Misc

New issue 5108 by [EMAIL PROTECTED]: unit_tests.exe - purify reports  
occasional memory leak in setlocale
http://code.google.com/p/chromium/issues/detail?id=5108

This leak appears to show up non-deterministically (but frequently) in a
couple of unit tests.  It started showing up a few weeks ago.  It's unclear
what changed to cause it to start happening.  Most commonly, it appears in
the BookmarkContextMenu test, but occasionally shows up in one of the IPC
tests (hard to say which).

Here's a stack from the BookmarkContextMenu version:

[W] MLK: Memory leak of 216 bytes from 1 block allocated in setlocale
[unit_tests.exe]
         Distribution of leaked blocks
                216 bytes from 1 block of 216 bytes (0x0a91ab20)
         Allocation location
             calloc_crt
[f:\sp\vctools\crt_bld\self_x86\crt\src\crtheap.c:54]
             setlocale
[f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.c:808]
             std::_Locinfo::_Locinfo_dtor(_Locinfo::std *)
[f:\sp\vctools\crt_bld\self_x86\crt\src\locale0.cpp:203]
             std::_Locinfo::~_Locinfo(void)
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\xlocinfo.:93]
             std::numpunct<char>::numpunct<char>(UINT)
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\xlocnum.:91]
             std::numpunct<char>::_Getcat(facet::locale::std const* *)
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\xlocnum.:103]
             [EMAIL PROTECTED]@[EMAIL PROTECTED]@@@std@@YAABV?
[EMAIL PROTECTED]@[EMAIL PROTECTED]@0@@Z
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\xlocale.:478]

std::num_put<char,ostreambuf_iterator<char,char_traits<char>::std>::std>::_
Iput(ostreambuf_iterator<char,char_traits<char>::std>::std,ios_base::std&,c
har,char *,UINT)const
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\xlocnum.:1267]

std::num_put<char,ostreambuf_iterator<char,char_traits<char>::std>::std>::d
o_put(ostreambuf_iterator<char,char_traits<char>::std>::std,ios_base::std&,
char,long)const
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\xlocnum.:967]

std::num_put<char,ostreambuf_iterator<char,char_traits<char>::std>::std>::p
ut(ostreambuf_iterator<char,char_traits<char>::std>::std,ios_base::std&,cha
r,long)const
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\xlocnum.:888]
             std::basic_ostream<char,char_traits<char>::std>::<<(int)
[c:\b\slave\pc\build\src\third_party\platformsdk_vista_6_0\files\vc\include
\ostream.:283]
             logging::LogMessage::Init(char const*,int)
[c:\b\slave\pc\build\src\base\logging.cc:390]
             logging::LogMessage::LogMessage(char const*,int)
[c:\b\slave\pc\build\src\base\logging.cc:352]
...


and a simplified stack from the IPC example:
Memory Leak: (216 bytes, 1 blocks) setlocale [unit_tests.exe]
Alloc Location
    ...
    chrome/common/ipc_channel.cc:105  IPC::Channel::PipeName(class
std::basic_string const &)const
    chrome/common/ipc_channel.cc:113  IPC::Channel::CreatePipe(class
std::basic_string const &,enum IPC::Channel::Mode)
    chrome/common/ipc_channel.cc:42  IPC::Channel::Channel(class
std::basic_string const &,enum Channel::Channel::Mode,class
Channel::Channel::Listener *)
    chrome/common/ipc_channel_proxy.cc:30
IPC::ChannelProxy::Context::CreateChannel(class std::basic_string const
&,enum IPC::Channel::Mode const &)
    chrome/common/ipc_channel_proxy.cc:217  IPC::ChannelProxy::Init(class
std::basic_string const &,enum IPC::Channel::Mode,class MessageLoop *,bool)
    chrome/common/ipc_channel_proxy.cc:207
IPC::ChannelProxy::ChannelProxy(class std::basic_string const &,enum
ChannelProxy::Channel::Mode,class MessageLoop *,class
ChannelProxy::ChannelProxy::Context *,bool)
    chrome/common/ipc_sync_channel.cc:382
IPC::SyncChannel::SyncChannel(class std::basic_string const &,enum
SyncChannel::Channel::Mode,class SyncChannel::Mode::Listener *,class
SyncChannel::ChannelProxy::MessageFilter *,class MessageLoop *,bool,void *)
    chrome/common/ipc_sync_channel_unittest.cc:174  Worker::OnStart(void)
    base/tuple.h:383  [EMAIL PROTECTED]@?
A0x29e2b86d@@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@@@Z
    ^^^

The line in ipc_channel.cc is another case using the << operator on an
ostream, so presumably the omitted part of the stack is similar to the
previous Bookmark example.



-- 
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Chromium-bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/chromium-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to