The 'General' headless server froze again. I'm not sure whether the __lll_lock_* state is indicative for this, but searching on the forums will show that we've seen similar freezes on several servers going back to at least v3.5.1.
This is what gdb -q -n -ex "bt" -batch megaglest `pidof megaglest` reports:
#0 __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95
#1 0x00007f70be1e8b6d in _L_lock_49 () at malloc.c:5151
#2 0x00007f70be1e161c in ptmalloc_lock_all () at arena.c:248
#3 0x00007f70be2248e2 in __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/x86_64/../fork.c:95
#4 0x00007f70be1d39e1 in _IO_new_proc_open (fp=fp@entry=0x2a58400, command=command@entry=0x7fffaf23c0c0 "addr2line -C -e /home/megaglest/megaglest-3.9.1/megaglest -f -i 0x7a7117", mode=<optimized out>, mode@entry=0xea65e7 "r") at iopopen.c:183
#5 0x00007f70be1d3d37 in _IO_new_popen (command=0x7fffaf23c0c0 "addr2line -C -e /home/megaglest/megaglest-3.9.1/megaglest -f -i 0x7a7117", mode=0xea65e7 "r") at iopopen.c:301
#6 0x0000000000c0552d in getFileAndLine (flen=<optimized out>, file=<optimized out>, address=<optimized out>, function=<optimized out>) at /home/softcoder/Code/megaglest/git/source/shared_lib/sources/platform/sdl/platform_util.cpp:131
#7 Shared::Platform::PlatformExceptionHandler::getStackTrace () at /home/softcoder/Code/megaglest/git/source/shared_lib/sources/platform/sdl/platform_util.cpp:289
#8 0x00000000007a7117 in Glest::Game::ExceptionHandler::handleRuntimeError (msg=<optimized out>, getStackTraceString=true) at /home/softcoder/Code/megaglest/git/source/glest_game/main/main.cpp:638
#9 0x00000000007a780f in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/main/main.cpp:5606
#10 <signal handler called>
#11 malloc_consolidate (av=av@entry=0x7f7090000020) at malloc.c:4086
#12 0x00007f70be1e37e8 in _int_free (av=0x7f7090000020, p=0x7f7090076ca0, have_lock=0) at malloc.c:3994
#13 0x0000000000b1b225 in deallocate (this=<optimized out>, __p=<optimized out>) at /usr/include/c++/4.4/ext/new_allocator.h:95
#14 _M_deallocate (__p=<optimized out>, this=<optimized out>, __n=<optimized out>) at /usr/include/c++/4.4/bits/stl_vector.h:146
#15 ~_Vector_base (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_vector.h:132
#16 ~vector (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_vector.h:313
#17 ~UnitRangeCellsLookupItem (this=<optimized out>, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/world/unit_updater.h:47
#18 ~pair (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_pair.h:68
#19 destroy (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/ext/new_allocator.h:115
#20 _M_destroy_node (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:383
#21 std::_Rb_tree<int, std::pair<int const, Glest::Game::UnitRangeCellsLookupItem>, std::_Select1st<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> >, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > >::_M_erase (this=0x7f709006ac48, __x=0x7f709006ac80) at /usr/include/c++/4.4/bits/stl_tree.h:972
#22 0x0000000000b1b504 in _M_erase (__x=0x7f70941ddaf0, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:970
#23 ~_Rb_tree (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:614
#24 ~map (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_map.h:87
#25 ~pair (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_pair.h:68
#26 destroy (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/ext/new_allocator.h:115
#27 _M_destroy_node (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:383
#28 std::_Rb_tree<int, std::pair<int const, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > > >, std::_Select1st<std::pair<int const, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > > > >, std::less<int>, std::allocator<std::pair<int const, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > > > > >::_M_erase (this=0x7f7090053bf8, __x=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:972
#29 0x0000000000b1b679 in ~_Rb_tree (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:614
#30 ~map (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_map.h:87
#31 ~pair (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_pair.h:68
#32 destroy (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/ext/new_allocator.h:115
#33 _M_destroy_node (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:383
#34 _M_erase (__x=0x0, this=0x2a2b8c0) at /usr/include/c++/4.4/bits/stl_tree.h:972
#35 _M_erase (__x=0x2da11e0, this=0x2a2b8c0) at /usr/include/c++/4.4/bits/stl_tree.h:970
#36 _M_erase (__x=<optimized out>, this=0x2a2b8c0) at /usr/include/c++/4.4/bits/stl_tree.h:970
#37 _M_erase (__x=<optimized out>, this=0x2a2b8c0) at /usr/include/c++/4.4/bits/stl_tree.h:970
#38 _M_erase (__x=<optimized out>, this=0x2a2b8c0) at /usr/include/c++/4.4/bits/stl_tree.h:970
#39 _M_erase (__x=<optimized out>, this=0x2a2b8c0) at /usr/include/c++/4.4/bits/stl_tree.h:970
#40 std::_Rb_tree<Shared::Graphics::Vec2<int>, std::pair<Shared::Graphics::Vec2<int> const, std::map<int, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > >, std::less<int>, std::allocator<std::pair<int const, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > > > > > >, std::_Select1st<std::pair<Shared::Graphics::Vec2<int> const, std::map<int, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > >, std::less<int>, std::allocator<std::pair<int const, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > > > > > > >, std::less<Shared::Graphics::Vec2<int> >, std::allocator<std::pair<Shared::Graphics::Vec2<int> const, std::map<int, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > >, std::less<int>, std::allocator<std::pair<int const, std::map<int, Glest::Game::UnitRangeCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::UnitRangeCellsLookupItem> > > > > > > > >::_M_erase (this=0x2a2b8c0, __x=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:970
#41 0x0000000000b091c6 in ~_Rb_tree (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:614
#42 ~map (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_map.h:87
#43 Glest::Game::UnitUpdater::~UnitUpdater (this=0x2a2b850, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/world/unit_updater.cpp:113
#44 0x0000000000af1235 in Glest::Game::World::~World (this=0x2a2b038, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/world/world.cpp:148
#45 0x000000000068144b in Glest::Game::Game::~Game (this=0x2a2aff0, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/game/game.cpp:471
#46 0x0000000000795319 in Glest::Game::BattleEnd::~BattleEnd (this=0x96ec510, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/main/battle_end.cpp:103
#47 0x00000000007e2e93 in Glest::Game::Program::~Program (this=0x29e4470, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/main/program.cpp:283
#48 0x00000000007a251f in Glest::Game::MainWindow::~MainWindow (this=0x29e4a60, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/git/source/glest_game/main/main.cpp:813
#49 0x00000000007cc0f7 in Glest::Game::glestMain (argc=0, argv=0x2a54000) at /home/softcoder/Code/megaglest/git/source/glest_game/main/main.cpp:5570
#50 0x00000000007d45c1 in Glest::Game::glestMainSEHWrapper (argc=4, argv=0x7fffaf248f38) at /home/softcoder/Code/megaglest/git/source/glest_game/main/main.cpp:5697
#51 0x00007f70be184de5 in __libc_start_main (main=0x7d46d0 <main(int, char**)>, argc=4, ubp_av=0x7fffaf248f38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffaf248f28) at libc-start.c:260
#52 0x00000000005eddd9 in _start ()