Bug #19280 2014-02-07 23:02
jpd2014
Very slow operation in background
With CodeBlocks 13.12 On Ubuntu 13.10 / IA 64bits. The IDE is sometimes doing a background operation very very long (several minutes), blocking the IDE. Which I don't know. The first times, I thought it was a race condition with no end. So I killed the process. But one time I let the computer running and then the IDE was usable again. Here is the stack from gdb interrupt with Ctrl+C : 0x0000003c6f6bdd75 in __getdents (fd=31, buf=buf@entry=0x1b50a100 "K", <incomplete sequence \320>, nbytes=32768) at ../sysdeps/unix/sysv/linux/getdents.c:112 112 ../sysdeps/unix/sysv/linux/getdents.c: Aucun fichier ou dossier de ce type. (gdb) where #0 0x0000003c6f6bdd75 in __getdents (fd=31, buf=buf@entry=0x1b50a100 "K", <incomplete sequence \320>, nbytes=32768) at ../sysdeps/unix/sysv/linux/getdents.c:112 #1 0x0000003c6f6bd973 in __readdir (dirp=0x1b50a0d0) at ../sysdeps/posix/readdir.c:65 #2 0x0000003d73ac5d89 in wxDirData::Read(wxString*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #3 0x0000003d73a67900 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #4 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #5 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #6 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #7 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #8 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #9 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #10 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #11 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #12 0x00007fffddc4c864 in NativeParser::GetAllPathsByFilename (this=0x1c6b420, filename=...) at nativeparser.cpp:522 #13 0x00007fffddc1dcf2 in ClassBrowserBuilderThread::Init (this=0x2c7e6b0, np=<optimized out>, treeTop=<optimized out>, treeBottom=<optimized out>, active_filename=..., user_data=user_data@entry=0x4fa5e00, bo=..., tt=0xa003d30, idThreadEvent=idThreadEvent@entry=2142) at classbrowserbuilderthread.cpp:118 #14 0x00007fffddc1a687 in ClassBrowser::ThreadedBuildTree (this=0x216ce90, activeProject=0x4fa5e00) at classbrowser.cpp:897 #15 0x00007fffddc1a8df in ClassBrowser::UpdateClassBrowserView (this=0x216ce90, checkHeaderSwap=<optimized out>) at classbrowser.cpp:254 #16 0x00007fffddc4ced8 in NativeParser::OnParserEnd (this=0x1c6b420, event=...) at nativeparser.cpp:2585 #17 0x0000003d73ada756 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #18 0x0000003d73adaa7f in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #19 0x0000003d73adab32 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #20 0x00007fffddc6cf95 in Parser::ProcessParserEvent (this=this@entry=0x1ade6c50, state=ParserCommon::ptReparseFile, id=<optimized out>, info=...) at parser/parser.cpp:1194 #21 0x00007fffddc6d5d9 in Parser::OnAllThreadsDone (this=0x1ade6c50, event=...) at parser/parser.cpp:974 #22 0x0000003d73ada756 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #23 0x0000003d73adaa7f in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #24 0x0000003d73adab32 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #25 0x0000003d73ada6b8 in wxEvtHandler::ProcessPendingEvents() () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #26 0x0000003d73a581b1 in wxAppConsole::ProcessPendingEvents() () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #27 0x0000003de0447bae in wxAppBase::ProcessIdle() () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0 #28 0x0000003de03c2e11 in ?? () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0 #29 0x0000003044e483f6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #30 0x0000003044e48748 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #31 0x0000003044e48b4a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #32 0x0000003ddf72b2a7 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 #33 0x0000003de03d631a in wxEventLoop::Run() () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0 #34 0x0000003de04479ac in wxAppBase::MainLoop() () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0 #35 0x000000000045ad3b in CodeBlocksApp::OnRun (this=0x9f5d30) at app.cpp:809 #36 0x0000003d73a87e2d in wxEntry(int&, wchar_t**) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0 #37 0x000000000044e462 in main (argc=1, argv=<optimized out>) at app.cpp:276
- Category
- Application::Interface
- Group
- Status
- Open
- Close date
- Assigned to
History
The strange thing is there are some recursive calls, like:
#3 0x0000003d73a67900 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#4 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#5 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#6 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#7 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#8 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#9 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#10 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#11 0x0000003d73a679b1 in wxDir::Traverse(wxDirTraverser&, wxString const&, int) const () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
Anyway, I need a way to reproduce this bug, any further help? Thanks.
It seems to be linked to a garbage collection of memory.