Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - tomreyn

Pages: 1 2 [3] 4 5 6 7 ... 20
51
It would be nice if the techtree validator were to report an error when there are no factions in a given techtree.

Currently it produces the following output in this case:
Code: [Select]
$ ./megaglest --validate-techtrees=vbros_pack_1
====== Started Validation ======
Filtering techtrees and only looking for the following:
vbros_pack_1

---------------- Loading factions inside world ----------------
====== Finished Validation ======
$

52
Lyra (Windows 7-64), Titi (Linux-64) and I (hosting on atibox) were just playing two games on r3457. Both ended with a segmentation fault on the server.

Game (1):

Code: [Select]
megaglest v3.8.0-dev
Compiled using: GNUC: 40703 [64bit] on: Sep 24 2013 00:30:27 platform: Linux-X64 endianness: little
SVN: [Rev: 4567M] - using STREFLOP [SSE] - [no-denormals]
radeon: Acquired access to Hyper-Z.
[] *ERROR* SOCKET WRITE TIMEOUT In [/home/user1/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[..]
[] *ERROR* SOCKET WRITE TIMEOUT In [/home/user1/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 19
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
*TESTING*: START Waiting for lagging client playerIndex = 1 [lyra] clientLagCount = 11.000000 [0.000000]
*TESTING*: FINISHED Waiting for lagging client playerIndex = 1 [lyra]
In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
Error saved to logfile [/home/user1/.megaglest/error.log]
[] *ERROR* In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
] gameInitialized = 1, program = 0x2317570
[] *ERROR* In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/user1/SCM/megaglest-trunk/source/glest_game
/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x693ae7] line: 653
./megaglest() [0x693d5f]address [0x693d5f]
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f4f7f28c0b0] line: 0
./megaglest:Shared::Graphics::ParticleSystem::callParticleOwnerEnd(Shared::Graphics::ParticleSystem*)address [0x97c2cf] line: 145
./megaglest:Shared::Graphics::ParticleManager::cleanupParticleSystems(Shared::Graphics::ParticleSystem*)address [0x989ebf] line: 2228
./megaglest:Shared::Graphics::ParticleManager::cleanupParticleSystems(std::vector<Shared::Graphics::ParticleSystem*, std::allocator<Shared::Graphics::ParticleSystem*> >&)address [0x989fa3] line: 2235
./megaglest:Shared::Graphics::ParticleManager::update(int)address [0x98a697] line: 2192
./megaglest:Glest::Game::Game::update()address [0x5c498a] line: 2208
./megaglest:Glest::Game::Program::loopWorker()address [0x6bd430] line: 459
./megaglest:Glest::Game::glestMain(int, char**)address [0x6a1427] line: 5379
./megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x6a5016] line: 5626
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x6a51ae] line: 5698
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f4f7f276ea5] line: 0
./megaglest() [0x519a39]address [0x519a39]
]

Segmentation fault detected, analyzing...
[..]
Can't read pathname for load map: Eingabe-/Ausgabefehler.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fffef14f000
Core was generated by `./megaglest --starthost'.
Program terminated with signal 11, Segmentation fault.
#0  0x000000000097c2cf in Shared::Graphics::ParticleSystem::callParticleOwnerEnd (this=<optimized out>, particleSystem=0x1672a5a0) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:145
145            this->particleOwner->end(particleSystem);
#0  0x000000000097c2cf in Shared::Graphics::ParticleSystem::callParticleOwnerEnd (this=<optimized out>, particleSystem=0x1672a5a0) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:145
#1  0x0000000000989ebf in Shared::Graphics::ParticleManager::cleanupParticleSystems (this=this@entry=0x22ca340, ps=0x1672a5a0) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:2225
#2  0x0000000000989fa3 in Shared::Graphics::ParticleManager::cleanupParticleSystems (this=this@entry=0x22ca340, cleanupParticleSystemsList=std::vector of length 1, capacity 1 = {...}) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:2237
#3  0x000000000098a697 in Shared::Graphics::ParticleManager::update (this=0x22ca340, renderFps=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:2190
#4  0x0000000000628192 in Glest::Game::Renderer::updateParticleManager (this=<optimized out>, rs=rs@entry=Shared::Graphics::rsGame, renderFps=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/glest_game/graphics/renderer.cpp:981
#5  0x00000000005c498a in Glest::Game::Game::update (this=0x41acf40) at /home/user1/SCM/megaglest-trunk/source/glest_game/game/game.cpp:2207
#6  0x00000000006bd430 in Glest::Game::Program::loopWorker (this=0x2317570) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:458
#7  0x00000000006bf275 in Glest::Game::Program::loop (this=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#8  0x00000000006939ed in Glest::Game::ExceptionHandler::handleRuntimeError (msg=msg@entry=0x7fffef067b40 "In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:\n", getStackTraceString=getStackTraceString@entry=true) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:684
#9  0x0000000000693d5f in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5532
#10 <signal handler called>
#11 0x000000000097c2cf in Shared::Graphics::ParticleSystem::callParticleOwnerEnd (this=<optimized out>, particleSystem=0x1672a5a0) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:145
#12 0x0000000000989ebf in Shared::Graphics::ParticleManager::cleanupParticleSystems (this=this@entry=0x22ca340, ps=0x1672a5a0) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:2225
#13 0x0000000000989fa3 in Shared::Graphics::ParticleManager::cleanupParticleSystems (this=this@entry=0x22ca340, cleanupParticleSystemsList=std::vector of length 1, capacity 1 = {...}) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:2237
#14 0x000000000098a697 in Shared::Graphics::ParticleManager::update (this=0x22ca340, renderFps=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/shared_lib/sources/graphics/particle.cpp:2190
#15 0x0000000000628192 in Glest::Game::Renderer::updateParticleManager (this=<optimized out>, rs=rs@entry=Shared::Graphics::rsGame, renderFps=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/glest_game/graphics/renderer.cpp:981
#16 0x00000000005c498a in Glest::Game::Game::update (this=0x41acf40) at /home/user1/SCM/megaglest-trunk/source/glest_game/game/game.cpp:2207
#17 0x00000000006bd430 in Glest::Game::Program::loopWorker (this=this@entry=0x2317570) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:458
#18 0x00000000006bf275 in Glest::Game::Program::loop (this=this@entry=0x2317570) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#19 0x00000000006a1427 in Glest::Game::glestMain (argc=argc@entry=2, argv=argv@entry=0x7fffef075a98) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5379
#20 0x00000000006a5016 in Glest::Game::glestMainSEHWrapper (argc=argc@entry=2, argv=argv@entry=0x7fffef075a98) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5624
#21 0x00000000006a51ae in Glest::Game::glestMainWrapper (argc=2, argv=0x7fffef075a98) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5697
#22 0x00007f4f7f276ea5 in __libc_start_main (main=0x513060 <main(int, char**)>, argc=2, ubp_av=0x7fffef075a98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffef075a88) at libc-start.c:260
#23 0x0000000000519a39 in _start ()

53
We had two same-platform OOS on r4558 today. I was hosting both.

Game #1
In the first game, the clients were Filux, Lyra and Jammy (who also discussed this game here). Filux went OOS. I collected and uploaded all players debugCRCWorld log files (15 MB).

While comparing Filux's and my client logs of the first game, I noticed that his contains words in Polish. I assume this should not be the case, since it complicated log analysis. His language was set to Polish, techtree translation was disabled.

Game #2
For the second game, Filux switched his language to English. As such, all of us were using the English language.

In the second game (which Filux and I also discussed here), the clients were Filux and Lyra. This time Lyra went OOS. I collected and uploaded all players debugCRCWorld log files (21 MB).

Lyra later noticed that she had high latencies (1s ping to google.com) a while after the game, and wondered whether this may also have been the case during this game, and whether it could have triggered her OOS. We did, however, not receive any lag warnings before she went OOS.

54
With the 20 frames interval CRC checksumming, on an all Linux-64 bit game, we had Lyra run into a CRC mismatch (discussed separately). So she got disconnected, but there was a ~1 minute interval between her running into the CRC mismatch, and her actually getting disconnected (as reported on the host). In the meantime the game freezed for roughly 20 seconds (lasted until the disconnect). Probably prompted by this freeze, the other client, Filux, got a lag warning message as soon as the server was working again. Three seconds later, the server (I was running) went into the following:

Code: [Select]
megaglest v3.8.0-dev
Compiled using: GNUC: 40703 [64bit] on: Sep 21 2013 02:43:04 platform: Linux-X64 endianness: little
SVN: [Rev: 4558M] - using STREFLOP [SSE] - [no-denormals]
radeon: Acquired access to Hyper-Z.
[] *ERROR* SOCKET WRITE TIMEOUT In [/home/user1/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 16
[..]
[] *ERROR* SOCKET WRITE TIMEOUT In [/home/user1/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 19
Check save world CRC to log. isNetworkGame = 1 fileSuffix = _faction_3
Save to log debugCRCWorldLogFile = /home/user1/.megaglest/debugCRCWorld.log_faction_3
In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
Error saved to logfile [/home/user1/.megaglest/error.log]
[] *ERROR* In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
] gameInitialized = 1, program = 0x2db75f0
[] *ERROR* In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x68f857] line: 653
./megaglest() [0x68facf]address [0x68facf]
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7fa06bf470b0] line: 0
]

GDB output:
Code: [Select]
[..]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff7ef5b000
Core was generated by `./megaglest --starthost'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000000000 in ?? ()
#0  0x0000000000000000 in ?? ()
#1  0x000000000088271f in Glest::Game::Unit::updateTimedParticles (this=this@entry=0xb6d0c30) at /home/user1/SCM/megaglest-trunk/source/glest_game/type_instances/unit.cpp:2492
#2  0x000000000093812c in Glest::Game::UnitUpdater::updateUnit (this=this@entry=0x4c52700, unit=unit@entry=0xb6d0c30) at /home/user1/SCM/megaglest-trunk/source/glest_game/world/unit_updater.cpp:133
#3  0x0000000000958826 in Glest::Game::World::updateAllFactionUnits (this=this@entry=0x4c51f10) at /home/user1/SCM/megaglest-trunk/source/glest_game/world/world.cpp:707
#4  0x000000000095a1f0 in Glest::Game::World::update (this=this@entry=0x4c51f10) at /home/user1/SCM/megaglest-trunk/source/glest_game/world/world.cpp:863
#5  0x00000000005bf8b6 in Glest::Game::Game::update (this=0x4c51ed0) at /home/user1/SCM/megaglest-trunk/source/glest_game/game/game.cpp:2128
#6  0x00000000006b90f0 in Glest::Game::Program::loopWorker (this=0x2db75f0) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:458
#7  0x00000000006baf35 in Glest::Game::Program::loop (this=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#8  0x000000000068f75d in Glest::Game::ExceptionHandler::handleRuntimeError (msg=msg@entry=0x7fff7eedbc00 "In [/home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:\n", getStackTraceString=getStackTraceString@entry=true) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:684
#9  0x000000000068facf in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5532
#10 <signal handler called>
#11 0x0000000000000000 in ?? ()
#12 0x000000000088271f in Glest::Game::Unit::updateTimedParticles (this=this@entry=0xb6d0c30) at /home/user1/SCM/megaglest-trunk/source/glest_game/type_instances/unit.cpp:2492
#13 0x000000000093812c in Glest::Game::UnitUpdater::updateUnit (this=this@entry=0x4c52700, unit=unit@entry=0xb6d0c30) at /home/user1/SCM/megaglest-trunk/source/glest_game/world/unit_updater.cpp:133
#14 0x0000000000958826 in Glest::Game::World::updateAllFactionUnits (this=this@entry=0x4c51f10) at /home/user1/SCM/megaglest-trunk/source/glest_game/world/world.cpp:707
#15 0x000000000095a1f0 in Glest::Game::World::update (this=this@entry=0x4c51f10) at /home/user1/SCM/megaglest-trunk/source/glest_game/world/world.cpp:863
#16 0x00000000005bf8b6 in Glest::Game::Game::update (this=0x4c51ed0) at /home/user1/SCM/megaglest-trunk/source/glest_game/game/game.cpp:2128
#17 0x00000000006b90f0 in Glest::Game::Program::loopWorker (this=this@entry=0x2db75f0) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:458
#18 0x00000000006baf35 in Glest::Game::Program::loop (this=this@entry=0x2db75f0) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#19 0x000000000069d077 in Glest::Game::glestMain (argc=argc@entry=2, argv=argv@entry=0x7fff7eeee388) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5379
#20 0x00000000006a0c36 in Glest::Game::glestMainSEHWrapper (argc=argc@entry=2, argv=argv@entry=0x7fff7eeee388) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5624
#21 0x00000000006a0dce in Glest::Game::glestMainWrapper (argc=2, argv=0x7fff7eeee388) at /home/user1/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5697
#22 0x00007fa06bf31ea5 in __libc_start_main (main=0x5108f0 <main(int, char**)>, argc=2, ubp_av=0x7fff7eeee388, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff7eeee378) at libc-start.c:260
#23 0x00000000005172c9 in _start ()

55
Bug reports / r4558: Observing CPU
« on: 21 September 2013, 01:59:11 »
There's a bug where you can make a CPU an observer. I consider this a bug since I don't think this configuration makes much sense.

To reproduce:
  • Setup a custom game
  • Activate advanced options
  • Allow observers
  • Open a network slot
  • Set this network slot to *Observer*
  • Set this slot to a CPU player
This CPU player is now an *Observer*.

56
MegaGlest / Snapshot / development builds
« on: 20 September 2013, 13:33:22 »
You (Linux and Windows users) can now help testing a lot easier by making use of the snapshot builds we provide.
Here you can get the binary from our development version made  by our automated build system:

snapshots.megaglest.org

Please read more about it on the wiki.

57
Mods / Mod translation
« on: 17 September 2013, 15:57:56 »
At this time both techtrees and scenarios can be translated for use with MegaGlest 3.8.0 and later.

To make the translation process more convenient for translators, we've added two semi-official projects to Transifex where we take mod developers' and translators' requests to add new open source mods for translation. Currently these semi-official projects are managed by Filux and me, but we're looking for more support from people who have a general idea of how Transifex works or are happy to find out.

Techtrees

The semi-official project for translation of MegaGlest techtrees which are not part of the standard MegaGlest distribution lives at:
https://www.transifex.com/projects/p/megaglest-mods-techtrees/

Initial documentation (please help improvind it) is available at:
http://wiki.megaglest.org/Translations/Unofficial_Techtree_Translations

Techtrees can also be translated outside of Transifex, but be aware that this raises the bar for translators.
Manual mod translation is discussed at:
http://wiki.megaglest.org/Translations/Techtrees#Manual_translation

Scenarios

The semi-official project for translation of MegaGlest sceanrios which are not part of the standard MegaGlest distribution lives at:
https://www.transifex.com/projects/p/megaglest-mods-scenarios/

Documentation for scenario translation is not currently available, but you can take a look at the file structure used by the sceanarios included in the standard MegaGlest distribution which are already translated, such as the "Amazones" scenario.

58
While setting up a game, after activating the option to allow observers, I ran into this:

Code: [Select]
megaglest v3.8.0-beta2
Compiled using: GNUC: 40703 [64bit] on: Sep 12 2013 12:42:09 platform: Linux-X64 endianness: little
SVN: [Rev: 4529M] - using STREFLOP [SSE] - [no-denormals]
...
[] *ERROR* In [components.cpp::setSelectedItem Line: 457]
instanceName [listBoxFactions1] idx = 0 items[idx] = [Natulka]
[] *ERROR* In [components.cpp::setSelectedItem Line: 457]
instanceName [listBoxFactions1] idx = 1 items[idx] = [*Random*]
[] *ERROR* In [menu_state_custom_game.cpp::switchSetupForSlots Line: 2158] Error [Value not found in listbox name: [listBoxFactions1] value: *Observer*
Stack Trace:
./megaglest:Shared::Platform::megaglest_runtime_error::megaglest_runtime_error(std::string const&, bool)address [0xa35ab2] line: 237
./megaglest:Glest::Game::GraphicListBox::setSelectedItem(std::string, bool)address [0x55bfce] line: 462
./megaglest:Glest::Game::MenuStateCustomGame::switchSetupForSlots(Glest::Game::SwitchSetupRequest**, Glest::Game::ServerInterface*&, int, int, bool)address [0x76195e] line: 2140
./megaglest:Glest::Game::MenuStateCustomGame::update()address [0x77e92e] line: 2309
./megaglest:Glest::Game::Program::loopWorker()address [0x6b7a30] line: 459
./megaglest:Glest::Game::glestMain(int, char**)address [0x69b9b7] line: 5379
./megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x69f576] line: 5626
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x69f70e] line: 5698
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f053216dea5] line: 0
./megaglest() [0x516b69]address [0x516b69]
]

The game keeps working there, but I think this error should be fixed nonetheless. It's an old bug, I've run into it before but it doesn't seem to have been reported, yet (I guess I forgot).

59
I was a client (standard 3.8.0 beta1) on a game filux hosted on his (patched/modified) SVN build, and while the game continued for Filux and Nig (a Windows client), I ran into a SegF:

Code: [Select]
megaglest v3.8.0-beta1
Compiled using: GNUC: 40403 [64bit] on: Jun 25 2013 22:02:29 platform: Linux-X64 endianness: little
SVN: [Rev: 4514] - using STREFLOP [SSE] - [no-denormals]
radeon: Acquired access to Hyper-Z.
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
Error saved to logfile [/home/user1/.megaglest/error.log]
[2013-09-03 21:35:45] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
] gameInitialized = 1, program = 0x1976440
[2013-09-03 21:35:46] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x766f97] line: 653
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x76765f] line: 5533
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f236ef5b0b0] line: 0
]
Segmentation fault (core dumped)

So much, so little. And no DMP file.

But a core file. And this is the backtrace:

Code: [Select]
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000000000 in ?? ()
#0  0x0000000000000000 in ?? ()
#1  0x00000000009e9ad7 in Glest::Game::Unit::updateTimedParticles (this=0x1bf0de30) at /home/softcoder/Code/megaglest/trunk/source/glest_game/type_instances/unit.cpp:2466
#2  0x0000000000aaf055 in Glest::Game::UnitUpdater::updateUnit (this=0x309ada0, unit=0x1bf0de30) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/unit_updater.cpp:133
#3  0x0000000000a9413f in Glest::Game::World::updateAllFactionUnits (this=0x309a5b0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:707
#4  0x0000000000a95afc in Glest::Game::World::update (this=0x309a5b0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:863
#5  0x0000000000673006 in Glest::Game::Game::update (this=0x309a570) at /home/softcoder/Code/megaglest/trunk/source/glest_game/game/game.cpp:2094
#6  0x000000000079b4fb in Glest::Game::Program::loopWorker (this=0x1976440) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/program.cpp:458
#7  0x000000000076729d in Glest::Game::ExceptionHandler::handleRuntimeError (msg=<optimized out>, getStackTraceString=true) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:684
#8  0x000000000076765f in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5532
#9  <signal handler called>
#10 0x0000000000000000 in ?? ()
#11 0x00000000009e9ad7 in Glest::Game::Unit::updateTimedParticles (this=0x1bf0de30) at /home/softcoder/Code/megaglest/trunk/source/glest_game/type_instances/unit.cpp:2466
#12 0x0000000000aaf055 in Glest::Game::UnitUpdater::updateUnit (this=0x309ada0, unit=0x1bf0de30) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/unit_updater.cpp:133
#13 0x0000000000a9413f in Glest::Game::World::updateAllFactionUnits (this=0x309a5b0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:707
#14 0x0000000000a95afc in Glest::Game::World::update (this=0x309a5b0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:863
#15 0x0000000000673006 in Glest::Game::Game::update (this=0x309a570) at /home/softcoder/Code/megaglest/trunk/source/glest_game/game/game.cpp:2094
#16 0x000000000079b4fb in Glest::Game::Program::loopWorker (this=0x1976440) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/program.cpp:458
#17 0x000000000078e746 in Glest::Game::glestMain (argc=<optimized out>, argv=0x7fff809483c8) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5379
#18 0x0000000000792411 in Glest::Game::glestMainSEHWrapper (argc=1, argv=0x7fff809483c8) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5624
#19 0x00000000007925f8 in Glest::Game::glestMainWrapper (argc=1, argv=0x7fff809483c8) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5697
#20 0x00007f236ef45ea5 in __libc_start_main (main=0x7926b0 <main(int, char**)>, argc=1, ubp_av=0x7fff809483c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff809483b8) at libc-start.c:260
#21 0x00000000005ea339 in _start ()

Does it help?

60
As you know, one of the issues with broader adoption of MegaGlest is the lack of always-on / dedicated / headless servers. This is what made me play some mind games (and this is really all this is about, not a serious offer now or any time in the foreseeable future) about shipping pre-installed mini home servers to people with a reliable Internet connection who are willing to host network games.

Obviously someone would have to pay for (at least) the hardware there. Since the total donations MegaGlest received so far alot to 0.7 bitcoins + 8 USD those are not going to pay for it. So the other option is to provide added value by means of software running on such a home server (in addition to a MegaGlest server) and possibly simple remotely hosted services, convincing people to want such a gadget for their homes.

However, even then the price tag for the plain hardware (incl. enclosure) is still at ~100 USD incl. shipping. So I'm wondering which added features it would take for you to buy such a device.

Just to give you an idea what such a device could look like (and what size it is - what you see on the left are LAN and USB connectors):


61
Bug reports / 3.8.0 beta1: SegF on Linux host
« on: 28 August 2013, 23:13:47 »
I was hosting on 3.8.0 beta1 on atibox today, with several clients connected (both Linux and Windows). Sometime during the last quarter of the game the following happened on the host (I do not know what actually caused/triggered it):

Code: [Select]
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
Error saved to logfile [/home/user1/.megaglest/error.log]
[2013-08-28 21:04:39] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
] gameInitialized = 1, program = 0x1bd9440
[2013-08-28 21:04:42] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x766f97] line: 653
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x76765f] line: 5533
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f2dfc1d40b0] line: 0
./megaglest:Glest::Game::Map::findBestBuildApproach(Glest::Game::Unit const*, Shared::Graphics::Vec2<int>, Glest::Game::UnitType const*) constaddress [0xacd7a6] line: 1197
./megaglest:Glest::Game::UnitUpdater::updateRepair(Glest::Game::Unit*, int)address [0xaabe16] line: 1759
./megaglest() [0xaa2f84]address [0xaa2f84]
./megaglest:Glest::Game::UnitUpdater::updateUnit(Glest::Game::Unit*)address [0xaaf0bf] line: 161
./megaglest:Glest::Game::World::updateAllFactionUnits()address [0xa9413f] line: 707
./megaglest:Glest::Game::World::update()address [0xa95afc] line: 865
./megaglest:Glest::Game::Game::update()address [0x673006] line: 2095
./megaglest:Glest::Game::Program::loopWorker()address [0x79b4fb] line: 459
./megaglest:Glest::Game::glestMain(int, char**)address [0x78e746] line: 5379
./megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x792411] line: 5626
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x7925f8] line: 5698
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f2dfc1beea5] line: 0
./megaglest() [0x5ea339]address [0x5ea339]
]
Segmentation fault (core dumped)

Sadly the last line is misleading since I had an old core file there and a new one was not created. Nor was a DMP file.

62
Filux was hosting today, with a newer version of the Prax mod. After modifying it he increased the mods' version number, so that it is actually handled like a new mod.

So he was hosting on Linux with this "new mod" and Atze and I (both Linux) connected to him and downloaded it. Both Atze and I got a "techtree different" warning for the techtrees' single "Natulka" faction right after downloading. Then Atze and I disconnected and reconnected, but the warning remained.

Then Atze and I restarted our clients and reconnected, but the warning remained.

Then Filux restarted the server and Atze and I reconnected, but the warning remained. Interestingly this time, and before the Prax warning, I also got a warning about differences in the Aqua Pack techtree (probably the first in the list) which was not currently set (see screenshot). Also both warnings are about the Natulka faction which is not present in Aqua Pack.

Then all of us cleared ~/.megaglest/cache/ and restarted server and clients and reconnected, and only then the warning was gone.

So there still seems to be a difficult to find bug there somewhere.

Screenshot of when Atze and I reconnected after Filux restarted the server (cache yet untouched):


63
Today I was hosting a Prax (prax_0.5.4.1) game, the only client was Nevsky (who sadly has underpowered hardware). We were playing a (possibly too large) 128x128 map game against two CPU Ultra 2.0 with plenty of units on both sides. After playing for some 60 minutes (roughly) the game was close to coming to a (regular) end: we had just defeated the first CPU opponent and had almost defeated the second, too.

However, at this very moment, Nevsky ran into a situation which he described as "connection error or something" (and no error.log was written on his end, the one he had had an old timestamp) and I ran into a segmentation fault with the following output on screen and on command line:

Code: [Select]
$ ./start_megaglest --starthost
gamedir [/home/tomreyn/megaglest-3.8.0-beta1]
Looking for LDCONFIG []...
LDCONFIG environment variable is not set...
Found LDCONFIG using which [/sbin/ldconfig]...
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libopenal.so.1] was found in [/usr/lib/x86_64-linux-gnu/libopenal.so.1]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libdirectfb-1.2.so.0] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/x86_64-linux-gnu/libdirectfb-1.2.so.9] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libdirectfb-1.2.so.0]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libfusion-1.2.so.0] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/x86_64-linux-gnu/libfusion-1.2.so.9] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libfusion-1.2.so.0]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libdirect-1.2.so.0] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/x86_64-linux-gnu/libdirect-1.2.so.9] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libdirect-1.2.so.0]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libjpeg.so.62] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/x86_64-linux-gnu/libjpeg.so.8] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libjpeg.so.62]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libpng15.so.15] is missing, attempting to find and link to a newer version if available...
new library link [/lib/x86_64-linux-gnu/libpng12.so.0] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libpng15.so.15]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libcurl.so.4] was found in [/usr/lib/x86_64-linux-gnu/libcurl.so.4]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libxerces-c-3.1.so] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/libxerces-c.so.28] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libxerces-c-3.1.so]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libicudata.so.40] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/x86_64-linux-gnu/libicudata.so.48] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libicudata.so.40]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libicuuc.so.40] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/x86_64-linux-gnu/libicuuc.so.48] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libicuuc.so.40]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libGLEW.so.1.5] is missing, attempting to find and link to a newer version if available...
new library link [/usr/lib/x86_64-linux-gnu/libGLEW.so.1.8] pointed to from [/home/tomreyn/megaglest-3.8.0-beta1/lib/libGLEW.so.1.5]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libGLEW.so.1.5] is missing, attempting to find and link to a newer version if available...
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libogg.so.0] was found in [/usr/lib/x86_64-linux-gnu/libogg.so.0]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libvorbis.so.0] was found in [/usr/lib/x86_64-linux-gnu/libvorbis.so.0]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libvorbisfile.so.3] was found in [/usr/lib/x86_64-linux-gnu/libvorbisfile.so.3]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libfontconfig.so.1] was found in [/usr/lib/x86_64-linux-gnu/libfontconfig.so.1]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libfreetype.so.6] was found in [/usr/lib/x86_64-linux-gnu/libfreetype.so.6]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libgnutls.so.26] was found in [/usr/lib/x86_64-linux-gnu/libgnutls.so.26]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libldap_r-2.4.so.2] was found in [/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libresolv.so.2] was found in [/lib/x86_64-linux-gnu/libresolv.so.2]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/liblua5.1.so.0] was found in [/usr/lib/x86_64-linux-gnu/liblua5.1.so.0]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libftgl.so.2] was found in [/usr/lib/libftgl.so.2]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libircclient.so.1] was found in [/usr/lib/libircclient.so.1]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libdl.so.2] was found in [/lib/x86_64-linux-gnu/libdl.so.2]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libvlccore.so.5] was found in [/usr/lib/libvlccore.so.5]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libvlc.so.5] was found in [/usr/lib/libvlc.so.5]
default library [/home/tomreyn/megaglest-3.8.0-beta1/lib/libgcrypt.so.11] was found in [/lib/x86_64-linux-gnu/libgcrypt.so.11]
megaglest v3.8.0-beta1
Compiled using: GNUC: 40403 [64bit] on: Jun 25 2013 22:02:29 platform: Linux-X64 endianness: little
SVN: [Rev: 4514] - using STREFLOP [SSE] - [no-denormals]
radeon: Acquired access to Hyper-Z.
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:04:13] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
[2013-07-07 15:07:08] *ERROR* SOCKET WRITE TIMEOUT In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/platform/posix/socket.cpp::isWritable Line: 1756] i = 0 sock = 17
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
Error saved to logfile [/home/tomreyn/.megaglest/error.log]
[2013-07-07 16:14:51] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
] gameInitialized = 1, program = 0x1a86de0
[2013-07-07 16:14:52] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x766f97] line: 653
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x76765f] line: 5533
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f5ea8a490b0] line: 0
]
Segmentation fault (core dumped)

Code: ("gdb -q -n -ex "bt" -batch megaglest core") [Select]
Core was generated by `./megaglest --starthost'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000000000 in ?? ()
#0  0x0000000000000000 in ?? ()
#1  0x00000000009e9ad7 in Glest::Game::Unit::updateTimedParticles (this=0xe451a10) at /home/softcoder/Code/megaglest/trunk/source/glest_game/type_instances/unit.cpp:2466
#2  0x0000000000aaf055 in Glest::Game::UnitUpdater::updateUnit (this=0x365e710, unit=0xe451a10) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/unit_updater.cpp:133
#3  0x0000000000a9413f in Glest::Game::World::updateAllFactionUnits (this=0x365df20) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:707
#4  0x0000000000a95afc in Glest::Game::World::update (this=0x365df20) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:863
#5  0x0000000000673006 in Glest::Game::Game::update (this=0x365dee0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/game/game.cpp:2094
#6  0x000000000079b4fb in Glest::Game::Program::loopWorker (this=0x1a86de0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/program.cpp:458
#7  0x000000000076729d in Glest::Game::ExceptionHandler::handleRuntimeError (msg=<optimized out>, getStackTraceString=true) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:684
#8  0x000000000076765f in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5532
#9  <signal handler called>
#10 0x0000000000000000 in ?? ()
#11 0x00000000009e9ad7 in Glest::Game::Unit::updateTimedParticles (this=0xe451a10) at /home/softcoder/Code/megaglest/trunk/source/glest_game/type_instances/unit.cpp:2466
#12 0x0000000000aaf055 in Glest::Game::UnitUpdater::updateUnit (this=0x365e710, unit=0xe451a10) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/unit_updater.cpp:133
#13 0x0000000000a9413f in Glest::Game::World::updateAllFactionUnits (this=0x365df20) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:707
#14 0x0000000000a95afc in Glest::Game::World::update (this=0x365df20) at /home/softcoder/Code/megaglest/trunk/source/glest_game/world/world.cpp:863
#15 0x0000000000673006 in Glest::Game::Game::update (this=0x365dee0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/game/game.cpp:2094
#16 0x000000000079b4fb in Glest::Game::Program::loopWorker (this=0x1a86de0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/program.cpp:458
#17 0x000000000078e746 in Glest::Game::glestMain (argc=<optimized out>, argv=0x7fff9a964638) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5379
#18 0x0000000000792411 in Glest::Game::glestMainSEHWrapper (argc=2, argv=0x7fff9a964638) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5624
#19 0x00000000007925f8 in Glest::Game::glestMainWrapper (argc=2, argv=0x7fff9a964638) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:5697
#20 0x00007f5ea8a33ea5 in __libc_start_main (main=0x7926b0 <main(int, char**)>, argc=2, ubp_av=0x7fff9a964638, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff9a964628) at libc-start.c:260
#21 0x00000000005ea339 in _start ()

Also worth mentioning here seem the fact that no DMP file was created by this "official" build (the beta release). Is this because it is not linked against google breakpad or because of some other issue?

64
Some INI parsers seem to consider ? to be an invalid character in keys (left side of equals character), so I think it would be better to omit or replace it by Prompt, Question, Query, Q, or similar.

65
On a headless server, the controlling player (admin), like all other players, is unable to tick the "Translated techtrees" option. As such, it cannot currently be used on headless servers.

66
The Desert4 tileset was recently moved from OS user specific UserData_Root to the global storage location. However, doing this seems to change the checksum (why?), and the old checksum was not removed.

We were able to verify this as follows:

Yesterday when I started MegaGlest, the Desert4 tileset I had in UserData_Root was automatically renamed to desert4_custom.

Test 1:
I was hosting a game with Desert4 set, Titi and two of his sons were connected to my server. The server reported that Titi's tileset did not match, however, for his two sons, there was no such message (i.e. same tileset as the server). Titi then cleared out his checksum cache, restarted MegaGlest and reconnected to the server, but the message was repeated - according to the server he still had a different tileset. He restarted MG and connected to the server again with the same effect.

Titi said he did not modify his copy of the tileset. We checked the XML files' MD5 and they matched between Titi's computer and the server.

Test 2:
So this time I deleted my checksum cache, restarted MG and hosted the same game again, and all the players from the last game connected to my server again. This time, Titi's two sons' clients reported a tileset mismatch on Desert4, while none was reported for Titi.

So it would seem that checksums need to be recalculated when a mod (or maybe just a tileset?) is moved from system user to global system scope.

67
While initializing a game with lots of titi*'s on a game I was hosting I ran into this while pressing Alt-Enter:

Code: [Select]
[2013-06-22 21:55:44] *ERROR* In [model.cpp::loadMeshTexture Line: 736] Error v4 model is missing texture [/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner/../castle/models/muzzleflash.tga] textureFlags = 1 meshIndex = 10 textureIndex = 0 modelFile [/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner/../castle/models/taketaba_teppo_death.g3d]
In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
Error saved to logfile [/home/tomreyn/.megaglest/error.log]
[2013-06-22 21:55:44] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:
] gameInitialized = 1, program = 0x18da100
[2013-06-22 21:55:46] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x68ab37] line: 653
./megaglest() [0x68adaf]address [0x68adaf]
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f5e487060b0] line: 0
./megaglest:Shared::Graphics::Model::autoJoinMeshFrames()address [0x99d315] line: 1569
./megaglest:Shared::Graphics::Model::loadG3d(std::string const&, bool, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >*, std::string)address [0x9a5417] line: 1302
./megaglest:Shared::Graphics::Model::load(std::string const&, bool, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >*, std::string*)address [0x9a6c35] line: 1144
./megaglest:Glest::Game::SkillType::load(Shared::Xml::XmlNode const*, Shared::Xml::XmlNode const*, std::string const&, Glest::Game::TechTree const*, Glest::Game::FactionType const*, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >&, std::string)address [0x8ba84a] line: 426
./megaglest:Glest::Game::DieSkillType::load(Shared::Xml::XmlNode const*, Shared::Xml::XmlNode const*, std::string const&, Glest::Game::TechTree const*, Glest::Game::FactionType const*, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >&, std::string)address [0x8bcdf4] line: 1124
./megaglest:Glest::Game::UnitType::loaddd(int, std::string const&, Glest::Game::TechTree const*, std::string const&, Glest::Game::FactionType const*, Shared::Util::Checksum*, Shared::Util::Checksum*, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >&)address [0x8cdb3a] line: 625
./megaglest:Glest::Game::FactionType::load(std::string const&, Glest::Game::TechTree const*, Shared::Util::Checksum*, Shared::Util::Checksum*, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >&)address [0x8dbdd0] line: 167
./megaglest:Glest::Game::TechTree::load(std::string const&, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&, Shared::Util::Checksum*, Shared::Util::Checksum*, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >&)address [0x8ea82c] line: 278
./megaglest:Glest::Game::TechTree::loadTech(std::string const&, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&, Shared::Util::Checksum*, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >&)address [0x8ec4a8] line: 115
./megaglest:Glest::Game::World::loadTech(std::vector<std::string, std::allocator<std::string> >, std::string const&, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&, Shared::Util::Checksum*, std::map<std::string, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > > > >&)address [0x9492db] line: 464
./megaglest:Glest::Game::Game::load(int)address [0x5b6aad] line: 1100
./megaglest:Glest::Game::Program::setState(Glest::Game::ProgramState*, bool)address [0x6b06d1] line: 625
./megaglest:Glest::Game::MenuStateCustomGame::PlayNow(bool)address [0x773fcc] line: 1715
./megaglest:Glest::Game::MenuStateCustomGame::mouseClick(int, int, Shared::Platform::MouseButton)address [0x780e13] line: 984
./megaglest:Glest::Game::MainWindow::eventMouseDown(int, int, Shared::Platform::MouseButton)address [0x68be0e] line: 890
./megaglest:Shared::Platform::Window::handleMouseDown(SDL_Event)address [0xa29484] line: 681
./megaglest:Shared::Platform::Window::handleEvent()address [0xa2a285] line: 162
./megaglest:Glest::Game::glestMain(int, char**)address [0x698335] line: 5292
./megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x69bf16] line: 5626
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x69c0ae] line: 5698
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f5e486f0ea5] line: 0
]

Code: [Select]
Core was generated by `./megaglest --starthost'.
Program terminated with signal 11, Segmentation fault.
#0  0x000000000061f580 in Glest::Game::Renderer::loadGameCameraMatrix (this=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/graphics/renderer.cpp:1158
1158            glRotatef(gameCamera->getVAng(), -1, 0, 0);
#0  0x000000000061f580 in Glest::Game::Renderer::loadGameCameraMatrix (this=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/graphics/renderer.cpp:1158
#1  0x000000000059bcc3 in Glest::Game::Game::render3d (this=this@entry=0x37aa6a0) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:4934
#2  0x00000000005acb6d in Glest::Game::Game::renderWorker (this=this@entry=0x37aa6a0) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:3118
#3  0x00000000005b3108 in Glest::Game::Game::render (this=0x37aa6a0) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:3048
#4  0x00000000006b32c4 in Glest::Game::Program::loopWorker (this=0x18da100) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:422
#5  0x00000000006b61d5 in Glest::Game::Program::loop (this=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#6  0x000000000068aa3d in Glest::Game::ExceptionHandler::handleRuntimeError (msg=msg@entry=0x7ffff8859440 "In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5528] Error detected: signal 11:\n", getStackTraceString=getStackTraceString@entry=true) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:684
#7  0x000000000068adaf in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5532
#8  <signal handler called>
#9  0x000000000099d315 in Shared::Graphics::Model::autoJoinMeshFrames (this=this@entry=0x92c7ad0) at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/graphics/model.cpp:1569
#10 0x00000000009a5417 in Shared::Graphics::Model::loadG3d (this=this@entry=0x92c7ad0, path="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner/../castle/models/taketaba_teppo_death.g3d", deletePixMapAfterLoad=deletePixMapAfterLoad@entry=false, loadedFileList=loadedFileList@entry=0x7ffff886afe0, sourceLoader="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner/taketaba_gunner.xml") at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/graphics/model.cpp:1302
#11 0x00000000009a6c35 in Shared::Graphics::Model::load (this=0x92c7ad0, path="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner/../castle/models/taketaba_teppo_death.g3d", deletePixMapAfterLoad=deletePixMapAfterLoad@entry=false, loadedFileList=loadedFileList@entry=0x7ffff886afe0, sourceLoader=sourceLoader@entry=0x7ffff88601b0) at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/graphics/model.cpp:1144
Python Exception <type 'exceptions.IndexError'> list index out of range:
#12 0x00000000008ba84a in Glest::Game::SkillType::load (this=this@entry=0x92c9d20, sn=sn@entry=0x81377c0, attackBoostsNode=attackBoostsNode@entry=0x0, dir="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner", tt=0x2ca5de0, ft=0x2393a50, loadedFileList=std::map with 796 elements, parentLoader="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner/taketaba_gunner.xml") at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/types/skill_type.cpp:424
Python Exception <type 'exceptions.IndexError'> list index out of range:
#13 0x00000000008bcdf4 in Glest::Game::DieSkillType::load (this=this@entry=0x92c9d20, sn=sn@entry=0x81377c0, attackBoostsNode=attackBoostsNode@entry=0x0, dir="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner", tt=tt@entry=0x2ca5de0, ft=ft@entry=0x2393a50, loadedFileList=std::map with 796 elements, parentLoader="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner/taketaba_gunner.xml") at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/types/skill_type.cpp:1124
Python Exception <type 'exceptions.IndexError'> list index out of range:
#14 0x00000000008cdb3a in Glest::Game::UnitType::loaddd (this=<optimized out>, id=id@entry=18, dir="/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/taketaba_gunner", techTree=techTree@entry=0x2ca5de0, techTreePath="/home/tomreyn/.megaglest/techs/japanese/", factionType=factionType@entry=0x2393a50, checksum=checksum@entry=0x37abec0, techtreeChecksum=techtreeChecksum@entry=0x2ca5e78, loadedFileList=std::map with 796 elements) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/types/unit_type.cpp:625
Python Exception <type 'exceptions.IndexError'> list index out of range:
#15 0x00000000008dbdd0 in Glest::Game::FactionType::load (this=0x2393a50, factionName="japanese", techTree=techTree@entry=0x2ca5de0, checksum=checksum@entry=0x37abec0, techtreeChecksum=techtreeChecksum@entry=0x2ca5e78, loadedFileList=std::map with 796 elements) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/types/faction_type.cpp:166
Python Exception <type 'exceptions.IndexError'> list index out of range:
Python Exception <type 'exceptions.IndexError'> list index out of range:
#16 0x00000000008ea82c in Glest::Game::TechTree::load (this=this@entry=0x2ca5de0, dir=<Fehler beim Lesen der Variable: Cannot access memory at address 0x7fff00000000>, factions=std::set with 1 elements, checksum=checksum@entry=0x37abec0, techtreeChecksum=techtreeChecksum@entry=0x7ffff886a8c0, loadedFileList=std::map with 796 elements) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/types/tech_tree.cpp:275
Python Exception <type 'exceptions.IndexError'> list index out of range:
Python Exception <type 'exceptions.IndexError'> list index out of range:
#17 0x00000000008ec4a8 in Glest::Game::TechTree::loadTech (this=0x2ca5de0, techName="japanese", factions=std::set with 1 elements, checksum=checksum@entry=0x37abec0, loadedFileList=std::map with 796 elements) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/types/tech_tree.cpp:110
Python Exception <type 'exceptions.IndexError'> list index out of range:
Python Exception <type 'exceptions.IndexError'> list index out of range:
#18 0x00000000009492db in Glest::Game::World::loadTech (this=this@entry=0x37aa6e0, pathList=std::vector of length 2, capacity 2 = {...}, techName="japanese", factions=std::set with 1 elements, checksum=checksum@entry=0x37abec0, loadedFileList=std::map with 796 elements) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/world/world.cpp:464
#19 0x00000000005b6aad in Glest::Game::Game::load (this=0x37aa6a0, loadTypes=31) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:1100
#20 0x00000000006b06d1 in Glest::Game::Program::setState (this=0x18da100, programStateNew=programStateNew@entry=0x37aa6a0, cleanupOldState=cleanupOldState@entry=true) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:623
#21 0x0000000000773fcc in Glest::Game::MenuStateCustomGame::PlayNow (this=this@entry=0x2a9fbb0, saveGame=saveGame@entry=true) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/menu/menu_state_custom_game.cpp:1715
#22 0x0000000000780e13 in Glest::Game::MenuStateCustomGame::mouseClick (this=0x2a9fbb0, x=675, y=188, mouseButton=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/menu/menu_state_custom_game.cpp:984
#23 0x000000000068be0e in Glest::Game::MainWindow::eventMouseDown (this=0x18db560, x=<optimized out>, y=<optimized out>, mouseButton=Shared::Platform::mbLeft) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:889
#24 0x0000000000a29484 in Shared::Platform::Window::handleMouseDown (this=0x18db560, event=...) at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/sdl/window.cpp:679
#25 0x0000000000a2a285 in Shared::Platform::Window::handleEvent () at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/sdl/window.cpp:161
#26 0x0000000000698335 in Glest::Game::glestMain (argc=argc@entry=2, argv=argv@entry=0x7ffff887c9c8) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5292
#27 0x000000000069bf16 in Glest::Game::glestMainSEHWrapper (argc=argc@entry=2, argv=argv@entry=0x7ffff887c9c8) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5624
#28 0x000000000069c0ae in Glest::Game::glestMainWrapper (argc=2, argv=0x7ffff887c9c8) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5697
#29 0x00007f5e486f0ea5 in __libc_start_main (main=0x50f090 <main(int, char**)>, argc=2, ubp_av=0x7ffff887c9c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffff887c9b8) at libc-start.c:260
#30 0x0000000000515a69 in _start ()

68
When the filesystem where MG tries to create a savegame has run full, MG will run into a segmentation fault. It would be nicer to handle this situation gracefully (display a message box).

Ideally the same should happen for other file output operations (logfiles) where it doesn't impact performance (I assume it does not since it should be sufficient to handle the error when it occurs, i.e. there should be no need to check whether the next packet will writable before it is actually written).



Update:

To ease testing, this should also be reproducible when pointing --data-dir or UserData_Root to a location which is readable but not writable, such as a small filesystem created on a partitioned (e.g. using GNU parted + partprobe) USB key using, e.g.:
Code: [Select]
sudo mkfs.ext4 -L MegaGlest /dev/DEVICENAME
sudo mount -o users /dev/DEVICENAME /mnt/
# now copy files to /mnt/ as needed, then make it read-only ro prepare for testing
mount --remount,ro /mnt/

Or, possibly even easier, use a loop device, see the example in losetup(8) (no need for encryption, though).

69
I was just taking part in a game (as a client, using atibox) on "klicki", one of the computer of the Titi* family. When the game started my client segfaulted with this:

Code: [Select]
megaglest v3.8-dev
Compiled using: GNUC: 40703 [64bit] on: Jun 20 2013 11:17:46 platform: Linux-X64 endianness: little
SVN: [Rev: 4474M] - using STREFLOP [SSE] - [no-denormals]
radeon: Acquired access to Hyper-Z.
In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:
Error saved to logfile [/home/tomreyn/.megaglest/error.log]
[2013-06-20 20:07:34] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:
] gameInitialized = 1, program = 0x1f9ba10
[2013-06-20 20:07:34] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x688507] line: 653
./megaglest() [0x68877f]address [0x68877f]
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f9d5acf60b0] line: 0
[0x7f9d44f621a2]address [0x7f9d44f621a2] line: 0
]

Segmentation fault detected, analyzing...

warning: [New LWP 24006]
[New LWP 24010]
[New LWP 24008]
[New LWP 24013]
[New LWP 24017]
[New LWP 24012]
[New LWP 24024]
[New LWP 24049]
[New LWP 24015]
[New LWP 24021]
[New LWP 24051]
[New LWP 24050]
[New LWP 24048]
[New LWP 24053]
[New LWP 24052]
[New LWP 24016]
[New LWP 24054]
Can't read pathname for load map: Eingabe-/Ausgabefehler.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fffc3d95000
121    ../../../../../src/mesa/vbo/vbo_exec_array.c: Datei oder Verzeichnis nicht gefunden.
Core was generated by `./megaglest'.
Program terminated with signal 11, Segmentation fault.
#0  vbo_get_minmax_index (count=378, max_index=<synthetischer Zeiger>, min_index=<synthetischer Zeiger>, ib=0x7fffc3c27cd0, ctx=0x242a520, prim=<optimized out>) at ../../../../../src/mesa/vbo/vbo_exec_array.c:121
#0  vbo_get_minmax_index (count=378, max_index=<synthetischer Zeiger>, min_index=<synthetischer Zeiger>, ib=0x7fffc3c27cd0, ctx=0x242a520, prim=<optimized out>) at ../../../../../src/mesa/vbo/vbo_exec_array.c:121
#1  vbo_get_minmax_indices (ctx=ctx@entry=0x242a520, prims=prims@entry=0x7fffc3c27cf0, ib=ib@entry=0x7fffc3c27cd0, min_index=min_index@entry=0x7fffc3c2760c, max_index=max_index@entry=0x7fffc3c27ca0, nr_prims=nr_prims@entry=1) at ../../../../../src/mesa/vbo/vbo_exec_array.c:212
#2  0x00007f9d4f62a603 in st_feedback_draw_vbo (ctx=0x242a520, prims=0x7fffc3c27cf0, nr_prims=1, ib=0x7fffc3c27cd0, index_bounds_valid=<optimized out>, min_index=4294967295, max_index=0, tfb_vertcount=0x0) at ../../../../../src/mesa/state_tracker/st_draw_feedback.c:120
#3  0x00007f9d4fc2326a in vbo_handle_primitive_restart (ctx=ctx@entry=0x242a520, prim=prim@entry=0x7fffc3c27cf0, nr_prims=nr_prims@entry=1, ib=ib@entry=0x7fffc3c27cd0, index_bounds_valid=index_bounds_valid@entry=0 '\000', min_index=min_index@entry=4294967295, max_index=max_index@entry=4294967295) at ../../../../../src/mesa/vbo/vbo_exec_array.c:544
#4  0x00007f9d4fc24184 in vbo_validated_drawrangeelements (ctx=ctx@entry=0x242a520, mode=mode@entry=4, index_bounds_valid=index_bounds_valid@entry=0 '\000', start=start@entry=4294967295, end=end@entry=4294967295, count=count@entry=378, type=type@entry=5125, indices=indices@entry=0x136dd7e0, basevertex=basevertex@entry=0, numInstances=numInstances@entry=1, baseInstance=baseInstance@entry=0) at ../../../../../src/mesa/vbo/vbo_exec_array.c:841
#5  0x00007f9d4fc244f4 in vbo_exec_DrawElements (mode=4, count=378, type=5125, indices=0x136dd7e0) at ../../../../../src/mesa/vbo/vbo_exec_array.c:971
#6  0x0000000000620b95 in Glest::Game::Renderer::MapRenderer::Layer::renderVisibleLayer (this=0xd505a80) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/graphics/renderer.cpp:3970
#7  0x000000000064365c in Glest::Game::Renderer::MapRenderer::renderVisibleLayers (this=0xe7e8c0 <Glest::Game::Renderer::getInstance()::renderer+1376>, map=0xe7e41c <Glest::Game::Renderer::getInstance()::renderer+188>, coordStep=0, qCache=...) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/graphics/renderer.cpp:4104
#8  0x0000000000643a24 in Glest::Game::Renderer::renderSurface (this=0xe7e360 <Glest::Game::Renderer::getInstance()::renderer>, renderFps=33558272) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/graphics/renderer.cpp:4221
#9  0x000000000059a261 in Glest::Game::Game::render3d (this=this@entry=0x3986dc0) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:4975
#10 0x00000000005ab02d in Glest::Game::Game::renderWorker (this=this@entry=0x3986dc0) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:3131
#11 0x00000000005b15b8 in Glest::Game::Game::render (this=0x3986dc0) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:3061
#12 0x00000000006b0ee4 in Glest::Game::Program::loopWorker (this=0x1f9ba10) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:422
#13 0x00000000006b3df5 in Glest::Game::Program::loop (this=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#14 0x000000000068840d in Glest::Game::ExceptionHandler::handleRuntimeError (msg=msg@entry=0x7fffc3c2af80 "In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:\n", getStackTraceString=getStackTraceString@entry=true) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:684
#15 0x000000000068877f in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5533
#16 <signal handler called>
#17 0x00007f9d44f621a2 in ?? ()
#18 0x0000000002491e10 in ?? ()
#19 0x00000000024821d0 in ?? ()
#20 0x00007fffc3c2d530 in ?? ()
#21 0x0000000000000000 in ?? ()

Note that my game was (accidentially) set to selectbuf, which doesn't actually work on this system. Still I don't think it should be crashing. VBO support should be implemented on this r300 driver by now, though.

70
MegaGlest / Graphics performance just (r4474) increased by 66%
« on: 20 June 2013, 09:50:10 »
Thanks to the work of Softcoder, Will, JohnDH and Silnarm (listed in reverse chronological order ;) ), r4474 renders faster by a magnitude of two thirds (+66%) compared to 3.7.1.

We will yet need to verify that this happens without loosing anything important regarding unit, structure and tileset animations, but during initial tests I could not observe any such issues.

So this seems to be a major achievement, especially for us users plagued with slow graphics performance (due to slow graphics hardware).

Quoting my updated table from this thread, running the "benchmark" scenario using...

Code: [Select]
./megaglest --load-scenario=benchmark --fullscreen=true
...and unmodified INIs on my atibox (specs below):

Game versionUpdateFPSRenderFPS
3.7.14030
r44093929
r44143930
r44303930
r44704030
r44744049

Sadly this doesn't make a difference for intelbox:

Game versionUpdateFPSRenderFPS
3.5.03918
3.5.24017
3.6.0.33918
3.7.14018
r43623919
r44703919
r44744019

My configuration files on these systems are the same with a single exception, based on --show-ini-settings output: intelbox uses the selectbuf selection mode, while atibox uses color picking.
Switching intelbox to color picking makes no difference to selectbuf on this system running r4474.
Switching atibox to selectbuf (which breaks unit selection there) makes quite the difference on this system running r4474: UpdateFPS 40, RenderFPS: 29.

So apparently whether the recent improvements are noticeable to you is very much a matter of which hardware and driver you are using, as well as your choice of the selection method.

71
Closed bug reports / [fixed] r4462: SegF after timeout
« on: 18 June 2013, 21:50:27 »
Tonight we played a 3 player game on Atze's server with Prax. Pizza90 (Windows 7-64) and I (atibox) were clients.

During heavy fighting I received a message saying "timeout waiting for server" in the game console. Then the game continued for about 5 seconds (where I could give orders), and I got the "Connection lost to server" (or similar) message box which usually follows up on the earlier message. Once I confirmed this second message, MegaGlest went into a segmentation fault.

Code: [Select]
megaglest v3.8-dev
Compiled using: GNUC: 40703 [64bit] on: Jun 18 2013 22:55:04 platform: Linux-X64 endianness: little
SVN: [Rev: 4462] - using STREFLOP [SSE] - [no-denormals]
radeon: Acquired access to Hyper-Z.
[2013-06-18 23:38:18] *ERROR* In [network_interface.cpp::DisplayErrorMessage Line: 145] sErr [Timeout waiting for message.]
In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:
Error saved to logfile [/home/tomreyn/.megaglest/error.log]
[2013-06-18 23:38:38] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:
] gameInitialized = 1, program = 0x2e27920
[2013-06-18 23:38:38] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x688487] line: 653
./megaglest() [0x6886ff]address [0x6886ff]
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f4e38a5a0b0] line: 0
[0x1143e200]address [0x1143e200] line: 0
]
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
megaglest: ../../src/xcb_io.c:179: dequeue_pending_request: Zusicherung »!xcb_xlib_unknown_req_in_deq« nicht erfüllt.

======= In MinidumpCallback...

***ERROR details captured:
Crash minidump folder: /home/tomreyn/.megaglest/
file: /home/tomreyn/.megaglest//1b2a4931-1712-292c-6bc99c40-003030a0.dmp
Succeeded: 1
******************************************************
    An unhandled error was detected.

A crash dump file has been created in the folder:
/home/tomreyn/.megaglest/
Crash dump filename is: /home/tomreyn/.megaglest//1b2a4931-1712-292c-6bc99c40-003030a0.dmp
******************************************************

Segmentation fault detected, analyzing...

warning: [New LWP 23774]
[New LWP 23819]
[New LWP 23816]
[New LWP 23765]
[New LWP 23818]
[New LWP 23815]
[New LWP 23754]
[New LWP 23817]
[New LWP 23814]
[New LWP 23812]
[New LWP 23756]
[New LWP 23758]
[New LWP 23760]
[New LWP 23813]
[New LWP 23763]
[New LWP 23761]
[New LWP 23764]
[New LWP 23771]
Can't read pathname for load map: Eingabe-/Ausgabefehler.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff569c1000
56    ../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
Core was generated by `./megaglest'.
Program terminated with signal 6, Aborted.
#0  0x00007f4e38a5a037 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#0  0x00007f4e38a5a037 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f4e38a5d698 in __GI_abort () at abort.c:90
#2  0x00007f4e38a52e03 in __assert_fail_base (fmt=0x7f4e297c2dc2 <Address 0x7f4e297c2dc2 out of bounds>, assertion=assertion@entry=0x7f4e3be70ea5 "!xcb_xlib_unknown_req_in_deq", file=file@entry=0x7f4e3be70e92 "../../src/xcb_io.c", line=line@entry=179, function=function@entry=0x7f4e3be70fa0 "dequeue_pending_request") at assert.c:92
#3  0x00007f4e38a52eb2 in __GI___assert_fail (assertion=0x7f4e3be70ea5 "!xcb_xlib_unknown_req_in_deq", file=0x7f4e3be70e92 "../../src/xcb_io.c", line=179, function=0x7f4e3be70fa0 "dequeue_pending_request") at assert.c:101
#4  0x00007f4e3bdff33c in ?? () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007f4e3be0041b in _XReply () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00007f4e3bdfbd5d in XSync () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#7  0x00007f4e3c13a061 in dri2XcbSwapBuffers (remainder=<optimized out>, divisor=0, target_msc=0, dpy=<optimized out>, pdraw=<optimized out>) at dri2_glx.c:788
#8  dri2SwapBuffers (pdraw=0x32fcd40, target_msc=0, divisor=0, remainder=<optimized out>, flush=<optimized out>) at dri2_glx.c:846
#9  0x00000000006a2ae8 in Glest::Game::BattleEnd::render (this=0xded1d40) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/battle_end.cpp:757
#10 0x00000000006b0e64 in Glest::Game::Program::loopWorker (this=0x2e27920) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:422
#11 0x00000000006b3d75 in Glest::Game::Program::loop (this=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#12 0x000000000068838d in Glest::Game::ExceptionHandler::handleRuntimeError (msg=msg@entry=0x7f4e16ff7900 "In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5529] Error detected: signal 11:\n", getStackTraceString=getStackTraceString@entry=true) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:684
#13 0x00000000006886ff in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5533
#14 <signal handler called>
#15 0x000000001143e200 in ?? ()
#16 0x0000000000a2e83f in cleanupPendingThreads (this=0x7f4e04027c10) at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/sdl/thread.cpp:43
#17 Shared::Platform::ThreadGarbageCollector::execute (this=0x7f4e04027c10) at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/sdl/thread.cpp:61
#18 0x0000000000a2e10a in Shared::Platform::Thread::beginExecution (data=0x7f4e04027c10) at /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/sdl/thread.cpp:183
#19 0x00007f4e3c804196 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#20 0x00007f4e3c844e49 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#21 0x00007f4e3c5dbf8e in start_thread (arg=0x7f4e16ffc700) at pthread_create.c:311
#22 0x00007f4e38b1ce1d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

72
Mandate Engine / Compiling on Linux (2bdc01f)
« on: 18 June 2013, 19:53:09 »
Based on this post I assume you'd like someone to try compiling Mandate on Linux and to report back on it. So I tried to compile it on my atibox (see below for specifications).

I prepared as follows:
Code: [Select]
cd /home/tomreyn/SCM/mandate
git pull

... made sure I hav the latest code
Code: [Select]
$ git show -s --format=%H
2bdc01fd50caf7f602285760d03e44d286fac9cb

... and built
Code: [Select]
rm -rf build; mkdir build; cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='' ..
make -j4

cmake returned this:
http://paste.debian.net/11170/

make returned this:
http://pastebin.com/hPhNx3sa

73
The techtree validator currently outputs the following for Megapack:
Quote
Duplicates 28.59 MB (373) in files

However, it is my understanding that Titi thinks these files are actually needed. As such (and if this is so), these seem to be false reports and the deduplication mechanism of the techtree validator needs to be adjusted.

74
While trying to connect to Atze's server (with rejoin enabled) I ran into this message:

Code: [Select]
[2013-06-07 01:31:48] *ERROR* In [network_interface.cpp::DisplayErrorMessage Line: 143] sErr [client_interface.cpp::updateLobby Unexpected network message: 15]
It was also displayed on screen. The connection to the server was reset and I ended up on the server list again.

A second attempt to connect succeeded, so I'm not sure how to reproduce this, also because I do not know what this code (15) stands for.

Possibly related, I keep having trouble connecting to my in-progress game on localhost occasionally. This seem to be influenced by whether or not the this game is listed on the masterserver and how fast I try to connect. Trying to connect early when the game has just started usually results in a timeout of the client while connecting to the server lobby.

75
When the game loads the main menu for the first time, and after displaying it for 3 seconds, RenderFPS is <= 55, it should display a warning message indicating that the combination of hardware and software the game is running on may be insufficient and which counter measures are available. It should also offer to set some defaults which are known to improve performance. It should also point out that this message is displayed only once and achieve this by setting an option in glestuser.ini.

Example message:

Quote
Experience warning

The environment (hardware, drivers, operating system, configuration of all of these) MegaGlest operates in may not provide sufficient performance to allow you to fully enjoy the game. Read more about this at http://faq.megaglest.org/.
It is recommended that you configure MegaGlest to a low performance profile. Would you like this done?
[OK]    [Cancel]

If this is confirmed, another message indicating that a restart is necessary should be displayed.
Quote
Restart needed

The low performance profile has been configured.

You should now restart MegaGlest to apply these changes.
[OK]

Maybe the FirstTime INI setting which is currently set to false in glest.ini (not sure why we did this) can be reused here.

If the first prompt is confirmed, the following options should be set in glestuser.ini:
Code: [Select]
AnimatedTilesetObjects=50
EnableVideos=0
Filter=Bilinear
FilterMaxAnisotropy=1
FogOfWarSmoothing=false
FogOfWarSmoothingFrameSkip=5
MaxLights=4
No2DMouseRendering=1
RainEffect=0
Shadows=Disabled
ShadowTextureSize=256
Textures3D=false
TilesetParticles=false
UnitParticles=false

Pages: 1 2 [3] 4 5 6 7 ... 20