0.2.8.0_rc4: Release process and bugs

Help test release candidates for the next release
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6712
Joined: Thu Dec 18, 2003 7:03 pm

Post by Tank Program »

z-man wrote:I was hit by Tank's crash as well today testing stuff on my work PC. For me, it's a compiler bug, on GCC 3.3.5 and AMD64 and -Os optimization, every exception throw crashes. I backported the GCC 3.3 detection and CFLAG replacement code used in the trunk, looks like that old GCC really can't handle -Os. Tank: could you verify this fixes it for you?

Code: Select all

CFLAGS="-O0" CXXFLAGS="-O0" ./configure
 && make -j3
No crashy.

Code: Select all

cc --version
gcc (GCC) 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)
Presistent buggy?

Sorry for mye -ys

Edit: It's an amd64 here too.
Image
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

I'll try gcc 3.4 and 4.0 when I'm back at work and will attempt to get alternatively compiled builds to complete here, so far the linker failed me every time.
Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: luke@dashjr.org

Post by Luke-Jr »

z-man wrote:Luke: you did not listen :) If a user with "obsolete" libxml builds the game, the DTD's won't be downloaded, so if we want old maps (and OLD here means using the beta3 dtd or earlier) to continue to work there, we have to include the old dtds exactly where the code wants them to be. Faced with the choice of extended compatibility vs. a tidy root resource directory, I choose the compatibility.
I thought ph already threw the screw in old libxml2 usage?
z-man wrote:I apparently did not make it clear enough that I *want* the default for catecory to be "unsorted". I reverted your change when I fixed the version (whoops).
The default category has never effectively been 'unsorted' nor does it make sense. Please fix the DTD to mirror current reality, and explain how putting unsorted resources into their own [sorted] directory makes any sense.
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

About the -Os crash: got it here at work (AMD64) with GCC 3.3, 3.4 and 4.0. I could not get 4.1 to compile. Therefore, -Os is replaced by -O2 for all GCC versions. I cooked down the failure to a single source file, investigate some more, and, since this time, recent versions are affected, send a bug report.

No, the old libxml still works fine. There was some hardcoding involved that relied on map-0.1.dtd being there and I fixed that. The one thing that won't work is the future proofing via Alternative since that relies on downloading DTDs, but the need for that only arises for clients in the future. The main reason for supporting the old libxml is to allow servers to run on old OS installations right now.
Luke-Jr wrote:The default category has never effectively been 'unsorted' nor does it make sense. Please fix the DTD to mirror current reality, and explain how putting unsorted resources into their own [sorted] directory makes any sense.
What current reality? As explained way back, unsorted does make perfect sense if set for the default. The default kicks in if the user does not give a category. And what are all items without a category? Right, they are unsorted. It protects users against putting stuff in their main directory, just like WE will avoid to put our DTDs into the main directory.
Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: luke@dashjr.org

Post by Luke-Jr »

z-man wrote:
Luke-Jr wrote:The default category has never effectively been 'unsorted' nor does it make sense. Please fix the DTD to mirror current reality, and explain how putting unsorted resources into their own [sorted] directory makes any sense.
What current reality?
All the code assumes no 'category' is "".
z-man wrote:As explained way back, unsorted does make perfect sense if set for the default. The default kicks in if the user does not give a category. And what are all items without a category? Right, they are unsorted.
Unsorted, not sorted as "unsorted". Unsorted stuff just doesn't go into a category.
z-man wrote:It protects users against putting stuff in their main directory, just like WE will avoid to put our DTDs into the main directory.
There is no reason to 'protect' against that, unless a user creates a ton of stuff of the same resource type, in which case it's their own fault for not anticipating needing categorization earlier. Sticking it in 'unsorted' doesn't help the matter. It might help to make it a required field for certain resources, but categorizing it as "unsorted' doesn't do much useful.
Note we decided to put our DTDs into our main directory (author="AATeam" category=""), and since DTDs won't be in an insane number, that should be fine.
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Luke-Jr wrote:All the code assumes no 'category' is "".
a) code follows design, design follows the requirements. Not the other way round.
b) what "All the code"? sortresources.py and gParser.cpp use an XML library that respects the DTD and automagically inserts the defaults, whatever they may be.
Luke-Jr wrote:Unsorted, not sorted as "unsorted". Unsorted stuff just doesn't go into a category.
Aha, interesting. So you have a desk drawer for office supplies, one for blank paper, one with electronic gadgets, one for manuals, one for CDs. And all the stuff that does not fit into a category you already have goes to your desk. Or the floor.
Luke-Jr wrote:...but categorizing it as "unsorted' doesn't do much useful.
Another one of those completely out-of-the-air proclamations. It does help to keep the user's main directory clean. Yes, we don't *have* to help our users to get at least a bit organized, but I *want* to.

Now, Luke, I'd like to say the following and I hope it does not arrive to rude: I don't consider convincing you that something is a good idea to be mandatory for actually doing it. See, with every other team member, I know that the amount of work he puts into arguing against something is directly proportional to the importance times the perceived badness of the idea. And the constant of proportionality is moderate; if anyone else argues for one forum page against, say, dropping support for OSX, I know it is really important and that he thinks it's a bad idea of the bungee jumping without cord caliber. You, however, can fight for pages and pages against changing the default color of those little up and down arrows that appear in the menus to yellow. Maybe all those little things really are that important to you, maybe you just have fun arguing, but your constant kicking and screaming only achieved one thing: I don't trust your judgement. First, not your judgement of importance, and that casts a shadow over the rest.

Release process is rolling. Sources are tagged, builds are building. Upload probably tomorrow. Source tarball attached.
You do not have the required permissions to view the files attached to this post.
User avatar
joda.bot
Match Winner
Posts: 421
Joined: Sun Jun 20, 2004 11:00 am
Location: Germany
Contact:

Post by joda.bot »

CVS of SDL 1.2 got quite some updates since 29th of January 2006.
(fixes for AMD64 etc.)

Might be worth a try ?
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Yes, maybe, but the AMD64 fixes won't be of use to us :) The Windows build is still 32 bit only, and the Unix builds use the system supplied SDL.

32 bit builds are up on aabeta and SourceForge as usual.
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

If you got the map at a wrong path and type "armagetronad-dedicated" you get an error message, ok.

If you use the starter script from init.d, the server gets half started and then hangs. Bad thing about that is, it almost blocks the console because everything gets REALLY slow... it takes too much CPU load.

I got my map settings changed now, but would have been nice if it would have been mentioned somewhere before someone tries to start with the script first...

I consider that "hang" when using wrong map locations a bug that should be fixed so other people who have or will get the same problem do not stand there with an almost frozen system. Either its the script or in the binary itself.

Oh, and its not the path alone, the file name MUST HAVE the ending ".aamap.xml" or it doesn't work either. Just though I'd mention it here.

If any of the settings aren't right, the script should kill the server or the server should kill itself so it doesn't hang half way through start.
Last edited by belenus on Sat Mar 04, 2006 1:46 pm, edited 2 times in total.
- bel
Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: luke@dashjr.org

Post by Luke-Jr »

z-man wrote:
Luke-Jr wrote:All the code assumes no 'category' is "".
a) code follows design, design follows the requirements. Not the other way round.
The [original] design did not include a non-null default value for 'category'.
z-man wrote:b) what "All the code"? sortresources.py and gParser.cpp use an XML library that respects the DTD and automagically inserts the defaults, whatever they may be.
I wasn't aware of the DTD automatic stuff... how about the filepath validator?
z-man wrote:
Luke-Jr wrote:Unsorted, not sorted as "unsorted". Unsorted stuff just doesn't go into a category.
Aha, interesting. So you have a desk drawer for office supplies, one for blank paper, one with electronic gadgets, one for manuals, one for CDs. And all the stuff that does not fit into a category you already have goes to your desk. Or the floor.
Buggy analogy. These are abstract items, like numbers. Just because 9.2 doesn't fit in either "integers/prime" nor even "integers" does not mean it should go under "unsorted". That might make sense in a single-level categorization, but not in a tree. In a tree, something that doesn't fit in a sub-category goes right where it is. Why should we have/encourage a category="unsorted", but not do the same for "polygon/regular/unsorted" and just append "unsorted" to any category to exist? Because there can always be sub-categories, which makes anything not under them 'unsorted'...
z-man wrote:
Luke-Jr wrote:...but categorizing it as "unsorted' doesn't do much useful.
Another one of those completely out-of-the-air proclamations. It does help to keep the user's main directory clean. Yes, we don't *have* to help our users to get at least a bit organized, but I *want* to.
There is nothing useful about keeping the author's main directory "clean". Putting clutter in an "unsorted" category is just as messy as putting it in their root. If you want to force authors to be organized, make it a *required* field.
z-man wrote:You, however, can fight for pages and pages against changing the default color of those little up and down arrows that appear in the menus to yellow.
What?!?! They're not yellow already?!?! When didn't that change?!?!
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Belenus: Check your logs in /usr/local/var/games/armagetronad-dedicated/var/armagetronad.log or so. There should be some error message there. Probably about a map being at the wrong place. Sorry for the inconvenience, but that check is absolutely required to avoid file collisions in the clients' caches.
I'll try to adapt the script so it can react to fatal errors.

Luke: The user *can* still put things into his root directory by setting an empty category. The default is only for the case when the user does not even begin to think about where to put his files. You have some points about the hierarchy stuff. If the default turns out to be sub-optimal or we find that 99.9% of the maps will have category set, we can adapt things *in future DTDs* and yes, making the field required is a better solution than setting the default to empty.

Yes, the validator also uses libxml2, it's much easier than loading the file by hand :)
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

I already got it running Z... just wanted to mention it here. Other people might encounter the same problem because there are so many requirements now until a map finally it works.

Btw, would be nice to have a wiki entry about map requirement and file naming, path settings that have to be met because with the changes now, one little mistake and the script makes the server almost freeze...

Basically it now HAS TO be this

resources/included/[creator]/[category]/[name]-[version number].aamap.xml

where [creator] is the name mentioned as creator
where [category] is the category mentioned inside the file
where [name] is your own map file description
where [version number] is the same as mentioned inside the file
with the ending .aamap.xml

Hope I didnt forget anything...?


Thinking about empty categories... to explain the upper stuff it would be easier to put all maps that have an empty category or got the category "unsorted" into the directory "unsorted".
Thats easier than to say that with an empty category the file path is the same as above, you just have to remove the "/[category]" from it.
- bel
User avatar
Lucifer
Project Developer
Posts: 8742
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Luke-Jr wrote: Buggy analogy. These are abstract items, like numbers. Just because 9.2 doesn't fit in either "integers/prime" nor even "integers" does not mean it should go under "unsorted".
Buggy counter. In order to understand where to put 9.2 you have to look at it and understand what it is. Now, you and I can look at it and know that it is rational and should be sorted as such, but what does the computer have to do to determine how to categorize it? That's the purpose of defaults. The computer doesn't have any way to look at something as complex as a map and determine how to sort it in its existing setup (unless you get into Bayesian filtering and stuff, but that's trying to hunt rabbits with nuclear weapons).

So, without being able to look at the nature of a thing, how do you categorize it?
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: luke@dashjr.org

Post by Luke-Jr »

belenus wrote:I already got it running Z... just wanted to mention it here. Other people might encounter the same problem because there are so many requirements now until a map finally it works.

Btw, would be nice to have a wiki entry about map requirement and file naming, path settings that have to be met because with the changes now, one little mistake and the script makes the server almost freeze...
Yes, RTFWiki. It's in there. If people would read it, it would solve a lot of annoyances.
belenus wrote:Basically it now HAS TO be this

resources/included/[creator]/[category]/[name]-[version number].aamap.xml
NO! If you put something under 'included', I will start a poll to ban you from random servers. Resources that you design or download go directly under 'resources/[filepath]', where [filepath] is '[author]/[category]/[name]-[version].[filetype].xml', just as it has always been since before the resource system was written. There is nothing new here, except that the file must end with '.xml'
belenus wrote:Hope I didnt forget anything...?
'resources/included/[filepath]' is used only for resources included with the game. 'resources/automatic/[filepath]' is used only for resources downloaded by the game, as a cache.
Lucifer wrote:So, without being able to look at the nature of a thing, how do you categorize it?
The author is responsible for categorizing it. The resource should go under the most specific category that makes sense. If there is nothing more specific possible for categorization beyond author, it belongs simply under author.
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Luke-Jr wrote:Yes, RTFWiki. It's in there. If people would read it, it would solve a lot of annoyances.
The Wiki does not say anything about the filepath correlation to the <Resource> tag elements, IIRC, and it does not give this little, useful info:
Just run the included sortresources.py script inside your resource folder and it will automatically sort the files where they belong.
And the Wiki, by its nature, is constantly changing. You can't expect everyone to read everything there on every release.

Meriton's bug is a rare variant of the already fixed one, it is caused on the server side. When it happened to meriton, almost all other clients were disconnected as well and there was a lot of cursing when everybody came back :) The cause of the bug is that IDs of objects that get deleted on the client (players only) get recycled before the object is deleted on the server and before the deletion info has been sent out to all connected clients, so they think the recycled ID is already taken. It's a very rare bug, but also easy to fix, so it would be both safe to fix it for 0.2.8.0 without another RC and to fix it only for 0.2.8.1 (which I already did.)

Edit:
Tank, could you update the webpage for the release?
Luke, could you include the resources in the repository?
Post Reply