VCMI development build 0.94c (r3717)

I have prepared another development build — 0.94c

download.vcmi.eu/vcmi_094c.7z

Few new things here, basically several fixes over previous build.

I tried to fix some library dependency issues. Please let me know if it works fine. I believe I have fixed all the issues reported in the previous package.

Please let me know if you consider this build good enough to release 0.95 on Feb 1st or should we postpone the main release.
Unfortunately I currently have hardly any time for fixes or new features. Nevertheless, if there is something I should take care of, please let me know.

If by any chance you could resolve this issue, it would be great:

bugs.vcmi.eu/view.php?id=1599

I’m also hoping to add few simple fixes tommorow evening.

sorry, if I will anger someone, but I think it’s better to delay build to make it more stable. At least for a week-two.
I don’t say it’s nstable, but for example “Restart map” leads to crash.

I will commit to SVN in a few hours. This update will include mostly bugfixes related to campaigns.

I’m relatively without passion if we should release on 1st february or one month later. One thing should be fixed nevertheless, VCMI crashes a lot when I start maps (campaign scenarios) or complete them and start another map. It always complains about some mutexes. I will create a mantis issue if I receive the next crash (they are unpredictable)

not working. crash start
VCMI_client.exe_crashinfo.rar (79.7 KB)

Commited bugfixes! Perhaps it’s possible to fix the mantis points #1673 and #1672 (both are crashes).

Could you paste the client log outptut as well?

#1673 — I’ll check this later, maybe this weekend.

#1672 — It’s hard for me to correct a crash that is not reproducible.

Does #1672 indeed happens only when starting a new game? (ie. at the start of first turn)
At the game start there should be no path to display at all, and currentPath is (supposedly) initialized to nullptr.

Please check the variable values with debugger if that crash happens again.
It would be useful to see stacktraces of other threads as well.


VCMI_Client_log.txt (4.57 KB)

Please run the VCMI_Launcher, select the “Graphical” addon from the list and enable it.
This should fix the issue.

This bug is already fixed, it has barely missed this release, sorry for the trouble.

Tow, tnx understood.


I fully support Macron1. We/You must bring to mind the campaign at least, and then, and the new version. And would fix crashes.

vcmi crashed while loading Graal mission. part of server_log.txt

[0me[1;32mWe've accepted someone... 
e[0me[1;32mEstablished connection with VCMI 0.94c (client)
e[0me[1;32mGot connection!
e[0me[1;32mGamestate created!
e[0me[1;32m	Using random seed: 1391215540
e[0me[1;32mOpen campaign map file: 0
e[0me[1;33mSpellbook to MISC5 slot? Putting it spellbook place. AB format peculiarity ? (format 21)
e[0me[1;33mSpellbook to MISC5 slot? Putting it spellbook place. AB format peculiarity ? (format 21)
e[0me[1;33mSpellbook to MISC5 slot? Putting it spellbook place. AB format peculiarity ? (format 21)
e[0me[1;32mMap loaded!
e[0me[1;32m	Our checksum for the map: 2337321750
e[0me[1;32mSeed after init is 2004750442 (before was 1391215540)
e[0me[1;32mGamestate initialized!
e[0me[1;32mConnection 1 will handle 2 player: 6 255 
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 0info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 1info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 2info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 3info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 4info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 5info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 7info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 0info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 1info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 2info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 3info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 4info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 5info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 7info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 0info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 1info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 2info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 3info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 4info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 5info!
e[0me[1;31mconst PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 7info!
e[0me[1;31mCPack serialized... this should not happen!
e[0me[1;31mMessage cannot be applied, cannot find applier (unregistered type)!
e[0me[1;31mError: signal 11:
e[0me[1;31m/usr/games/vcmiserver(_Z17handleLinuxSignali+0x22) [0x4cbec2]
e[0me[1;31m/lib/x86_64-linux-gnu/libc.so.6(+0x36ff0) [0x7ffff6011ff0]
e[0me[1;31m/usr/games/vcmiserver(_ZN12CGameHandler16handleConnectionESt3setI11PlayerColorSt4lessIS1_ESaIS1_EER11CConnection+0x76a) [0x48867a]
e[0me[1;31m/usr/games/vcmiserver(_ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf2Iv12CGameHandlerSt3setI11PlayerColorSt4lessIS8_ESaIS8_EER11CConnectionEENS2_5list3INS2_5valueIPS6_EENSH_ISC_EENS_17reference_wrapperISD_EEEEEEE3runEv+0x158) [0x4a7738]
e[0me[1;31m/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.53.0(+0xb94a) [0x7ffff6ff194a]
e[0me[1;31m/lib/x86_64-linux-gnu/libpthread.so.0(+0x7f6e) [0x7ffff6dd0f6e]
e[0me[1;31m/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7ffff60d59cd]

also had crashes trying to open inventory.

beegee, is this the crash you’re referring to?
bugs.vcmi.eu/view.php?id=1677

Not sure what’s wrong here - either invalid campaign state or something with mutexes (unlocking unlocked mutex?)

I think I know what is wrong. Will try fixing.

I believe this has been fixed. Stupid bug, most likely has been present for years.
Apparently I needed some break from VCMI code to spot it.

**

Still, I think I won’t release 0.95 today. [unless both Ivan and Warmonger think I should :stuck_out_tongue: ]
Too many crashes in campaigns to make it useful. More issues are appearing after loading the save.
There’ll most likely 0.94d later today or tomorrow. The release will be out on time, just we won’t give it a new number and the usual promotion.

Prefereably I’d like to have all campaigns went through with “vcmisilmaril” before the official release and in two variants — right from the start and with save/load in the middle.

Tow, if possible, fix the bug bugs.vcmi.eu/view.php?id=1679 it is very common

in 0.94b and 0.94c

Tow,
1st March then? OK for me although I don’t like that we have such long time between releases.

I’m wondering how many of these campaign crash reports we have on Mantis right now are actually duplicates - with current trunk I was able to complete 4 campaigns using vcmisilmaril without any crashes. Including campaigns mentioned in some of bug reports.

Povelitel, once next build is out can you recheck you reports related to crashes on starting a mission in campaign? I think all of these were caused by two bugs, both of which should be fixed now.

Yeah, me is not hard to check them all. Waiting 0,94d

Well, there’s not much new (and working) for 0.95, also I don’t have time for coding yet :frowning:

Also, I believe we may change release policy. Now it takes too long between things are fixed or added and they are tested.
I suggest releasing development build every month (roughly), after any significant part is added or remade.

I feel the same.
Still, given the current sorry state of engine, I don’t like releasing it as-is even more.

You are right. It is one of the problems. Would you be willing to prepare and release such development builds?

There other issues as well:
— there’s little point in making often releases, if we aren’t able to properly handle bugreports we receive. We have over 350 open issues. They should be given a priority in focus over adding new features. We must stabilize.
— trunk gets destabilized too often. Bigger features should be developed on branches, and code known to be wrong/half-done should not go to trunk.
— some attention should be given to the savegames compatibility. Perhaps we should defer integrating save-breaking changes by better use of branches.

SVN doesn’t work with branches that well. I guess we’ll need to switch to git if we want to introduce the branch-based approach. But I guess it’s not a topic for a discussion here.

Unfortunately I am occupied with work and I’m unable to keep a grip on all things as I have done before. I rarely review the committed code and I don’t test the state of engine on the regular basis. Somehow it seems that when I don’t look, the stability of the engine goes crumbling down. So please take initiative and remind me when I should to check a particular issue or take some other action. Still, I won’t do any major rewrites/features soon and you should not write any code assuming I’ll fix it or its dependencies. :frowning: