Update to omni-bot 0.86/ Fix ETL linux 64 bit
Update to latest OmniBot 0.86:
- update the archive file on server (checkout from assembla, use new 0.86 lib from 2018-02-25),
- check and apply changes in our codebase implementation (stable branch of github.com/jswigart/, 0.83 repo)
- remove possibly deprecated hack on our codebase (see bazooka changes of early 2016)
- don’t hardcode checksum in installer so we can update the OB files easily between releases
- Fix 64bit linux install
game: fixed function GetEntityOwner returned dead player after gold was dropped and taken by another player
game: fixed entities of multiple MG42s at the same position (on baserace map)
#3 Updated by Spyhawk about 1 year ago
I get a crash when starting a localhost game with the new OB (new libs on mirror.etlegacy.com, 0.86 rev 3369):
Game Initialization completed in 0.21 seconds. Omni-bot: Looking for /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so, found. Omni-bot: Found Omni-bot: /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so, Attempting to Initialize tty] Thread 1 "etl" received signal SIGSEGV, Segmentation fault. 0x00007fff7f506ab1 in gmCodeTreeNode::Create(gmCodeTreeNodeType, int, int, int) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so (gdb) bt #0 0x00007fff7f506ab1 in gmCodeTreeNode::Create(gmCodeTreeNodeType, int, int, int) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #1 0x00007fff7f50c443 in gmparse() () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #2 0x00007fff7f50623e in gmCodeTree::Lock(char const*, gmLog*) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #3 0x00007fff7f40462e in gmMachine::ExecuteString(char const*, int*, bool, char const*, gmVariable*) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #4 0x00007fff7f45aae5 in ScriptManager::ExecuteFile(filePath const&, int&, gmVariable*) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #5 0x00007fff7f484947 in WeaponDatabase::LoadDefaultWeapon() () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #6 0x00007fff7f4859b3 in WeaponDatabase::LoadWeaponDefinitions(bool) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #7 0x00007fff7f48d873 in IGame::Init() () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #8 0x00007fff7f3fb733 in ET_Game::Init() () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #9 0x00007fff7f4b82db in IGameManager::CreateGame(IEngineInterface*, int) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #10 0x00007fff7f4b89b4 in BotInitialise(IEngineInterface*, int) () from /usr/lib/etlegacy/legacy/omni-bot/omnibot_et.x86_64.so #11 0x00007fff64c33c56 in Omnibot_LoadLibrary (version=17, lib=0x7fff64c544f8 "omnibot_et", path=0x7fff657d7e00 <Omnibot_FixPath(char const*)::pathstr> "/home/remy/.etlegacy") at /home/remy/code/dev/etlegacy/src/Omnibot/Common/BotLoadLibrary.cpp:359 #12 0x00007fff64c207f6 in Bot_Interface_Init () at /home/remy/code/dev/etlegacy/src/game/g_etbot_interface.cpp:6289 #13 0x00007fff64b8d366 in vmMain (command=0, arg0=0, arg1=4924, arg2=0, arg3=1, arg4=4294967571, arg5=4294965959, arg6=93825017844784) at /home/remy/code/dev/etlegacy/src/game/g_main.c:699 #14 0x00005555555d2186 in VM_CallFunc (vm=0x555556dc1430 <vmTable>, callNum=0) at /home/remy/code/dev/etlegacy/src/qcommon/vm.c:758 #15 0x00005555555e1061 in SV_InitGameVM (restart=qfalse) at /home/remy/code/dev/etlegacy/src/server/sv_game.c:742 #16 0x00005555555e10f3 in SV_InitGameProgs () at /home/remy/code/dev/etlegacy/src/server/sv_game.c:791 #17 0x00005555555e277a in SV_SpawnServer (server=0x7fffffffd5b0 "goldrush") at /home/remy/code/dev/etlegacy/src/server/sv_init.c:775 #18 0x00005555555d5874 in SV_Map_f () at /home/remy/code/dev/etlegacy/src/server/sv_ccmds.c:146 #19 0x000055555559f2fb in Cmd_ExecuteString (text=0x7fffffffd670 " map goldrush") at /home/remy/code/dev/etlegacy/src/qcommon/cmd.c:999 #20 0x000055555559f76b in Cbuf_Execute () at /home/remy/code/dev/etlegacy/src/qcommon/cmd.c:278 #21 0x00005555555a727d in Com_Frame () at /home/remy/code/dev/etlegacy/src/qcommon/common.c:3377 #22 0x00005555556314a3 in Sys_GameLoop () at /home/remy/code/dev/etlegacy/src/sys/sys_main.c:994 #23 0x00005555556315a2 in main (argc=1, argv=0x7fffffffe048) at /home/remy/code/dev/etlegacy/src/sys/sys_main.c:1102
#4 Updated by IR4T4 about 1 year ago
I can’t confirm with latest ETL master & OB install from update-omnibot.sh @ mirror.etlegacy.com (Omni-bot revision is 3369).
Game Initialization completed in 0.05 seconds. Omni-bot: Looking for legacy/omni-bot/omnibot_et.so, found. Omni-bot: Found Omni-bot: legacy/omni-bot/omnibot_et.so, Attempting to Initialize ET autoexec script executed. Loaded Waypoints. Omni-bot 0.86 initialized in 0.15 seconds. Omni-bot: Omni-bot Loaded Successfully Omni-Bot Initialization completed in 0.12 seconds. Setting Allied autospawn to Allied Camp Setting Axis autospawn to Old City 147 Goals Loaded, 23 Goals Deferred, 0 Goals could not load. elapsed time: 0.05 seconds Omni-Bot : Feb 25 2018 18:24:48 Version : 0.86 Interface # : 17
#7 Updated by palota about 1 year ago
I haven’t found any problems, but I tested only ETL 2.75. Are you sure there are no bugs in the latest ETL ? I can see from your stack trace that crash happened very early at the first memory allocation in GameMonkey. It looks like the memory heap was already damaged.
#9 Updated by IR4T4 about 1 year ago
- Subject changed from Update to omni-bot 0.86 to Update to omni-bot 0.86/ Fix ETL linux 64 bit
- Category changed from Mod generic to General
- % Done changed from 0 to 10
- OS set to Linux
It’s not only Omnibot. The 64 bit linux build definately has issues. Built from easybuild.sh -64 (release build) the UI doesn’t even start:
#0 0x0000555555622472 in PC_Directive_define.part.5 () #1 0x0000555555621a13 in PC_ReadDirective () #2 0x0000555555621f1e in PC_ReadToken () #3 0x0000555555623133 in PC_ReadTokenHandle () #4 0x000055555560b4d3 in CL_UISystemCalls () #5 0x00005555555cf3d0 in VM_DllSyscall () #6 0x00007fffcc302d86 in ?? () from /home/cia/.etlegacy/legacy/ui.mp.x86_64.so #7 0x00007fffcc2e526e in ?? () from /home/cia/.etlegacy/legacy/ui.mp.x86_64.so #8 0x00007fffcc2e5488 in ?? () from /home/cia/.etlegacy/legacy/ui.mp.x86_64.so #9 0x00007fffcc2e89ff in ?? () from /home/cia/.etlegacy/legacy/ui.mp.x86_64.so #10 0x00007fffcc2e9391 in vmMain () from /home/cia/.etlegacy/legacy/ui.mp.x86_64.so #11 0x00005555555d02bd in VM_CallFunc () #12 0x00005555555a185d in Com_Init () #13 0x000055555558d842 in main ()
With debug build it shows the above output from spyhawk"gmCodeTreeNode::Create(..." but UI is starting.
Note: OB has been updated on our server. This is the latest files from assembla + latest binaries, minus the WIP nav files.
I see this in my OB log:
—————- Log begins on Thu Dec 20 21:41:39 2018 —————
I 12/20 21:41:39 Error Mounting legacy/omni-bot/et/incomplete_navs : File not found
I 12/20 21:41:39 Error Mounting legacy/omni-bot/et/incomplete_navs/priority_maps : File not found
I 12/20 21:41:39 Error Mounting legacy/omni-bot/et/incomplete_navs/with_script : File not found
I 12/20 21:41:39 Error Mounting legacy/omni-bot/et/incomplete_navs/no_script : File not found
12/20 21:41:39 +- Begin block: IGameManager::CreateGame
We should actually not remove these directories (I guess the path is hardcoded?) (Edit: done, now shipping all files regardless of their status)
For the record: The issue seems related to the toolchain, rather than a bug from our side.
Works when built on CentOS with older GCC (4.9, 5.3), and seems a freshly installed stable Debian works too (GCC 6.3?). IR4’s debian doesn’t (GCC6.3), however. No much luck on Arch with GCC 8.2.1 on my side either.
This might also be something with headers (devel libs) available on the system or the available options enabled during compiling.
Just to update with more info - my builds were done on CentOS7 with GCC6.3.1. I also had working build compiled with GCC8.2.1 on Fedora which was intentionally skipped for anything else than the test due to compatibility with other distros (such as Debian).