tcmalloc导致程序无法启动

启用tcmalloc编译后,在测试机上调试启动运行都没有问题,但是上了线上服务器后就无法启动,CPU占用还非常高,pstack看了下,死锁了,线程全部卡在spinlock下面,又折回去发现在我开发机上就不会走到SpinLock::SlowLock这个函数,没辙,老老实实自己折腾个内存池吧

Thread 5 (Thread 0x7f848c753700 (LWP 4197)):

#0  0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4

#1  0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4

#2  0x00007f8489a69065 in tcmalloc::CentralFreeList::Populate() () from /usr/local/lib/libtcmalloc.so.4

#3  0x00007f8489a692a0 in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /usr/local/lib/libtcmalloc.so.4

#4  0x00007f8489a69343 in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /usr/local/lib/libtcmalloc.so.4

#5  0x00007f8489a6d3e5 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) () from /usr/local/lib/libtcmalloc.so.4

#6  0x00007f8489a5c193 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4

#7  0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4

#8  0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6

#9  0x0000003f5309ddaa in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, unsigned long) () from /usr/lib64/libstdc++.so.6

#10 0x0000003f5309df6c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib64/libstdc++.so.6

#11 0x00007f848a4c4708 in ?? ()

#12 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f848bd52700 (LWP 4199)):

#0  0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4

#1  0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4

#2  0x00007f8489a6db63 in tcmalloc::ThreadCache::CreateCacheIfNecessary() () from /usr/local/lib/libtcmalloc.so.4

#3  0x00007f8489a5c2d6 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4

#4  0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4

#5  0x00007f848a4b641f in ?? ()

#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f848b351700 (LWP 4200)):

#0  0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4

#1  0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4

#2  0x00007f8489a69065 in tcmalloc::CentralFreeList::Populate() () from /usr/local/lib/libtcmalloc.so.4

#3  0x00007f8489a692a0 in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /usr/local/lib/libtcmalloc.so.4

#4  0x00007f8489a69343 in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /usr/local/lib/libtcmalloc.so.4

#5  0x00007f8489a6d3e5 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) () from /usr/local/lib/libtcmalloc.so.4

#6  0x00007f8489a5c193 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4

#7  0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4

#8  0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6

#9  0x0000003f5309ddaa in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, unsigned long) () from /usr/lib64/libstdc++.so.6

#10 0x0000003f5309df6c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib64/libstdc++.so.6

#11 0x00007f848a4fcfe3 in ?? ()

#12 0x6120726f6620257b in ?? ()

#13 0x6c6461206e692064 in ?? ()

Thread 1 (Thread 0x7f84a15f4700 (LWP 4026)):

#0  0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4

#1  0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4

#2  0x00007f8489a6db63 in tcmalloc::ThreadCache::CreateCacheIfNecessary() () from /usr/local/lib/libtcmalloc.so.4

#3  0x00007f8489a5c2d6 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4

#4  0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4

#5  0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6

#6  0x0000003f5309cde5 in ?? () from /usr/lib64/libstdc++.so.6

#7  0x0000003f5309cf33 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6

时间: 2024-11-08 17:01:12

tcmalloc导致程序无法启动的相关文章

Runtime.getRuntime.exec()执行linux脚本导致程序卡死有关问题

Runtime.getRuntime.exec()执行linux脚本导致程序卡死问题问题: 在Java程序中,通过Runtime.getRuntime().exec()执行一个Linux脚本导致程序被挂住,而在终端上直接执行这个脚本则没有任何问题.原因: 先来看Java代码: public final static void process1(String[] cmdarray) {        Process p = null;        BufferedReader br = null

【转】Windows10下80端口被PID为4的System占用导致Apache无法启动的分析与解决方案

昨天刚更新了Windows10,总体上来说效果还是蛮不错的,然而今天在开启Apache服务器的时候却发现,Apache莫名其妙的打不开了,起初以为是权限的问题,于是使用管理员身份的控制台去调用命令net start Apache2.4,结果依然是无法打开.手动启动服务报错“Windows不能再本地计算机启动Apache,有关更多信息,查阅系统时间日志.如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1.”如下图所示: Windows不能再本地计算机启动Apache,有关

关于并行配置不正确,应用程序无法启动的问题

这二天的一个软件发布后,在自己的电脑与测试电脑上和虚拟机上运行都没有问题,当弄了一台新电脑,准备安装好软件,给客户用时,出现"应用程序无法启动,应用程序的并行配置不正确". 这回有点傻了,这个错误都没见过,在说,我程序编译时用的是静态库编译,如果没有库,也会报缺少**.DLL库啊,报个这个错,有点看不懂的感觉,其它的运行时库用的是多线程DLL(/MD)而不是多线程(/MT),因为用的是VC与C#混合编程,需要用到公共语言运行库(/CLR),没办法,找万能的狗哥,网页上大家都说是因为系统

浅谈导致电脑不能启动的系统文件

笔者前不久碰到了一个问题,就是同学的电脑开不了机了.具体情况是按下开机键后电脑没啥反应,我曾今也遇到过这个问题,解决方案也好像很少. 1.一般情况下,电脑开机会自检,如果可以,它会提示系统启动不了,这时可以选择安全模式启动让电脑进行修复,或者恢复到上一次正常时的情况.2.如果故障依旧,那就建议重装操作系统. 笔者是一个喜欢研究的人.于是乎,就上网查询了一些关于电脑开机启动了哪些文件啊,读取了啥文件等等,以便对电脑有更深了解,将来保不准会用到的.得到下面一些基本资料:电脑启动会加载很多重要文件(

解决Myeclipse中端口占用,导致tomcat无法启动的问题。(Linux)

本文出自:http://blog.csdn.net/svitter 引文:http://www.2cto.com/os/201305/209285.html { ubuntu查看占用某端口的程序 查看端口使用情况,使用netstat命令. 查看已经连接的服务端口(ESTABLISHED netstat -a 查看所有的服务端口(LISTEN,ESTABLISHED) netstat -ap 查看8080端口,则可以结合grep命令:netstat -ap | grep 8080 如查看8888端

Qt程序开机启动的怪现象————无法正常显示程序皮肤

事情很简单:最近公司项目在做即时通讯软件,类似QQ.该软件应该支持开机启动这样的常用功能.但是实际上开发该功能的时候碰到了个问题:开机启动程序无法正常加载皮肤文件. 这个问题让我头疼了很久啊.最终确定问题出现在程序的打包皮肤文件上.因为界面使用的是qt所以,皮肤等资源文件都是应该放在qrc文件中进行统一管理的.但是实际上该程序的资源文件却都是在外面的.这样的结果就是正常启动程序没有问题,开机启动就会加载不上皮肤文件. 下面就是我想到的解决方法: 方法一:修改qrc文件,将所有的资源文件都添加到q

MFC程序的启动过程,很清楚,但仍有待改进

原文出自:http://blog.csdn.net/yuvmen/article/details/5877271 了解MFC程序的启动过程,对于初学者来讲,了学习MFC很有帮助:对于不常用VC的人来说,过一段时间就会忘记.还是来记下来,方便以后查阅. 1.创建Application object对象theApp 程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构

应用程序无法启动的解决办法!

1.应用程序无法启动,因为应用程序的并行配置不正确.有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具. 出现该问题的原因是: 工程项目默认值:MFC的使用[在共享DLL中使用MFC]: A lib库: 设置的是 [使用标准Windows库]: B lib库: 设置的是[使用标准Windows库]: C lib库: 设置的是[在共享DLL中使用MFC]: 由于 A.B lib 与 工程 引起冲突. 导致该结果发生,从而应用程序无法启动! 解决方法: 将 A lib

Windows系统补丁KB2962872导致InstallShield无法启动

昨天InstallShield在中国区的代理商XLsoft China(世全软件)内部发现InstallShield 2012无法正常启动,查看具体错误如下: 经过技术工程师团团队排查,发现是7月份Windows系统补丁包升级所致,今天上午进一步确认为升级Windows系统补丁包(KB2962872)所致,一个IE累积性安全更新导致的. 目前解决的办法就是暂时先通过系统控制面板 -> 卸载程序 -> 查看已安装的更新,然后通过右上角搜索“KB2962872”,然后卸载并重启系统. 目前确认的影