Jump to content
Eternal Lands Official Forums
Wytter

Crash On Map Change

Recommended Posts

Hehe, you'll have to get the newest CVS to get a version that shouldn't have bugs...

Share this post


Link to post
Share on other sites
Hehe, you'll have to get the newest CVS to get a version that shouldn't have bugs...

yaa try best keep uptodate but tomoorow after updating with latest cvs source code then put exe in all el folders.

Share this post


Link to post
Share on other sites
Pavel, could you try catching that bug in a debugger?

About the CVS version crash. It crashes immediately after login in display_actors() trying to call ELglActiveTextureARB which is NULL (also ELglClientActiveTextureARB). I have no knowledge of OpenGL, but it looks like some verification of some extension initialization/existance was removed.

Share this post


Link to post
Share on other sites
Just so you know, I fixed the bug with the actor not being animated after switching directions.

 

Here's the problem with freeing an actor:

actor_scripts.c:292
                                                       switch(actors_list[i]->que[0]) {
                                                       case kill_me:
                                                               if(actors_list[i]->remapped_colors)
                                                                       glDeleteTextures(1,&actors_list[i]->texture_id);
                                                               free(actors_list[i]);
                                                               actors_list[i]=0;
                                                               break;

 

IEEEK!!

 

free(actors_list) isnt really a good idea, because actors_list is a list of a struct called actor.

 

And this struct contains at least 2 pointers which should be free'd too.

 

enhanced_actor *body_parts and

md2 *model_data

 

 

Happy memory consuming :D

 

Piper

Share this post


Link to post
Share on other sites

Pip: Indeed - I disabled that in -DPOSSIBLE_FIX as I think kill_me is obsolete - at least it looks like it is when looking through the server source, or inserting a printf where kill_me should be... However, if the data has been corrupted by some way we might enter that, which would eventually lead to a crash.

 

 

Pavel: Hmm, that is strange - it should be initiated in init_gl_extensions as a pointer to the glActiveTextureARB function in init_gl. Since it's NULL it means that you don't have multi-texturing - very strange that it tries using it? Was multi-texturing made a requirement?

Edited by Wytter

Share this post


Link to post
Share on other sites

I did some digging and found that it was added with shadow mapping:

 

http://cvs.berlios.de/cgi-bin/viewcvs.cgi/...r1=1.51&r2=1.52

 

I added an if(have_multitexture) in the appropriate places so now it should be possible to play on computers that don't support multi-texturing.

Share this post


Link to post
Share on other sites

OK, would be great if anyone could provide a Windows and/or a Linux build of this, so we can get people to test it - We really need to know if it's fixed, so 1.0.1 could be released with -DPOSSIBLE_FIX and -DOPTIMIZED_LOCKS, or if it needs even more work and it'd be status quo...

 

So, if anyone is capable of hosting a build on their site it'd be greatly appreciated. Remember compiling with:

-DPOSSIBLE_FIX -DOPTIMIZED_LOCKS

Share this post


Link to post
Share on other sites

Was online with 8 clients the last 4 hours with that client for stability testing and it seemed to be going allright. Before that I've done >2500 map changes on wytter (automated fortunately) and general testing. I _hope_ this is a sign that it's fixed but I am not 100% sure - so please give me as much feedback as you can...

Share this post


Link to post
Share on other sites

Still crashes on startup for me... I guess I'll have to download the CVS and debug it to find out whats wrong when it runs on my computer...

 

I guess I'll do that tomorrow... I want to play now, and I still have the client from the website.

Share this post


Link to post
Share on other sites

Would be great if you could do that Hammen :-)

 

Just cleaned up the patch in CVS and fixed a bug that could still cause the client to crash under special situations.

Share this post


Link to post
Share on other sites

Segmentation fault in latest CVS, using POSSIBLE_FIX and OPTIMIZED_LOCKS. Happened after a couple of hours playing, so may be hard to reproduce. Was in VotD, trying to find Molgor in the crowd, so lots of actors involved.

 

tail -20 of function_log.txt:

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

 

I saved the full function log, so if you want more than the last 20 commands, let me know.

 

EDIT: damn, happened just a few seconds before new hour :D

 

EDIT2, just happened again.

 

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:324

actor_scripts.c.add_command_to_actor:600

actor_scripts.c.add_command_to_actor:670

multiplayer.c.process_message_from_server:348

multiplayer.c.process_message_from_server:439

map_io.c.load_map:297

map_io.c.destroy_map:9

lights.c.new_minute:607

map_io.c.load_map:418

multiplayer.c.process_message_from_server:495

multiplayer.c.process_message_from_server:657

 

Guess I got teleported out while I was harvesting. Was looking at the forums when it happened, so I don't have more information other than that I was harvesting in portland with a bunch of other people.

 

EDIT 4: if you don't receive further bug reports, please disregard this message, my laptop powered off by itself shortly after I wrote EDIT 3. Looks like it's having issues.

Edited by Grum

Share this post


Link to post
Share on other sites

Hmm, that is very strange. Your first log shows that it succesfully unlocked the actors list, hence the timer thread would either begin with the next command or move_to_next_frame... Since only the network part (and get_tmp_actor_data) of the main thread and timer threads access the given data changed by add_command_to_actor (the draw scene copies everything to a temporary structure inside the actors structure), that could simply not be the reason behind these crashes. And well, if we have a new bug on our hands one just might be able to catch it in gdb :D

 

Well, what can I say - I have no idea why you're getting these crashes as I've made over 3000 map changes with the current CVS client + long time testing (with 8 clients on at the same time in crowded places). Just can't reproduce it (I was able to reproduce the bug with map changes after ~5-20 minutes with the old client, teleporting between characters on large maps every second, but only if several actors were there).

 

Were you running with music?

Edited by Wytter

Share this post


Link to post
Share on other sites

Well, do bear in mind that my laptop is acting a bit weird atm. Hope I can fix it...

 

About the music: i think I hvae it enabled in the client, but I never bothered to download music or make a playlist, so it wasn't playing music.

Share this post


Link to post
Share on other sites

I see. What is your FPS normally at in those places?

 

If it crashes again, please check the error log as well.

Share this post


Link to post
Share on other sites

Well, well, well...

 

after playing with the latest CVS (yesterday) under both Linux and Windows, i found this:

 

Linux client crashes at startup. I can log in, but then it crashes sometimes immediately.

Then i found out that i didnt add the 2 new options to the makefile, recompiled, run it now with gdb and since 30 mins no crash.

 

Under windows, i added the 2 options to the makefile, had no crash for 3 hours but a lot of disconnects.

 

Thats all, so far.

 

Piper

Share this post


Link to post
Share on other sites

I had no problems during the last two days. Updated cvs sources once a day and recompiled. Btw. I'm atm compiling with all three possible *DEBUG and EXPENSIVE_CHECKING defined in the makefile. Hopefully this may not hide any possible bug

Share this post


Link to post
Share on other sites

I removed the EXPENSIVE_CHECKING target as it became obsolete in OPTIMIZED_LOCKS (there's simply no reason to lock the actors list in the rendering phase any more (except from in the beginning where it's getting the current frame/position/rotation of the actors, that will be rendered).

Share this post


Link to post
Share on other sites
Grum, can you run the client under GDB? or can you inspect the core to see where exactly it crashed?

Yes, when I find time to play agaoin, I'll recompile first and run it under gdb.I'm not an expert in gdb, but a backtrace should be possible :rolleyes:

 

Wytter: my FPS on this machine was around 5-6 in those places. (It's not the best of machines, but it works).

EDIT: I did check the error log. fontv.bmp, and particle[01].bmp missing. I'll try to find those particle bitmaps, though I suspect they're not the cause of the crash.

Edited by Grum

Share this post


Link to post
Share on other sites

Ran it in the debugger for a couple of hours, nothing new. Will post when it happens again.

Share this post


Link to post
Share on other sites

Did anyone experience problems with the latest fix? Otherwise I'll merge it into mainline...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×