Giter Club home page Giter Club logo

ut2004-mutbesttimes's People

Contributors

eliotvu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

china77

ut2004-mutbesttimes's Issues

Server crashes when collecting garbage

Servers running MutBestTimes are experiencing random crashes when the server is collecting garbage especially during a server travel.

This happens regardless of whether new ghosts or records were set.

The following is a crash when after the server saved new ghost data files:

Socket shut down
Collecting garbage
Signal: SIGSEGV [segmentation fault]
Aborting.


Crash information will be saved to your logfile.

Developer Backtrace:
[ 1]  ./ucc-bin() [0x86329f9]
...
Unreal Call Stack: UObject::GetFullName <- TestReach <- TArray<< <- UModel::Serialize <- TestReach <- ULevel::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UObject::Serialize <- AActor::Serialize <- TestReach <- UStruct::SerializeBin <- UClass::Serialize <- TestReach <- SerializeExpr <- SerializeExpr <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::Serialize <- UFunction::Serialize <- TestReach <- UField::Serialize <- UStruct::S
Exiting.

The next log occurs when no new ghost data files are made:
Collecting garbage
Purging garbage
Signal: SIGSEGV [segmentation fault]
Aborting.


Crash information will be saved to your logfile.

Developer Backtrace:
[ 1]  ./ucc-bin() [0x86329f9]
...
[13]  ./ucc-bin(__strtod_internal+0x32ad) [0x804d32d]
[14]  /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf7) [0xf74cc637]
[15]  ./ucc-bin(readdir+0x91) [0x804a9f1]
Unreal Call Stack: UObject::GetPathName <- UObject::GetPathName <- UObject::GetPathName <- UObject::GetFullName <- DispatchDestroy <- DispatchDestroys <- UObject::PurgeGarbage <- UObject::CollectGarbage <- Cleanup <- UGameEngine::LoadMap <- LocalMapURL <- UGameEngine::Browse <- ServerTravel <- UGameEngine::Tick <- UpdateWorld <- UServerCommandlet::Main
Exiting.

Regardless it is not evident whether this is an issue related to MutBestTimes.

Ghosts GhostRecorders are lost on GTR maps for everyone but the instigator

As it currently stands only the final objective instigator will have a recorded ghost with movements data, this is probably due the fact that pressing the final objective will kills its instigator; as the instigator dies the TrialGroup mod will kill the remaining team mates before BTimes gets a chance to save their ghosts movements data.

get rid of BTGhostSaver.Tick

in past versions this was used because of a performance issue caused by the array used to store the ghost frames being resized for every frame to be saved

i only skimmed over the new code but this seems to be fixed now (maybe by accident) by setting the length of the array in advance so there shouldnt be a need for queueing frames anymore
in an older version that i had patched this resulted in near instantaneous ghost saves even for hour long ghosts and prevented broken ghosts / server crashes on map change so i thought you might wanna give it a shot

Ghosts are sometimes not being saved

If a player sets a new record when player has already an active ghost playing then the new ghost will never finish the saving process.

Probable cause is that a new ghost data file will logically have lesser movement keys than the old ghost data file and thus never reaching a threshold.

Another crash case (only since the last GhostManager related update):

Another crash case (only since the last GhostManager related update):

Collecting garbage
Purging garbage
Unhashed name 'BTGhost_STR-JaNyShiT-01-Industry_e9a915bde9c6ccd6ff26fc3a97fd42'
Executing UObject::StaticShutdownAfterError
Unhashed name 'BTGhost_STR-JaNyShiT-01-Industry_e9a915bde9c6ccd6ff26fc3a97fd42'



History: 

Exiting due to error
Exiting.

And yet another case:

*** ServerTraveling ***
Moving '../Saves/Save.tmp' to '../Saves/BTGhost_GTR-GeometricAbsolution_2e216ede3cf7a275764b04b5ccdd005d.uvx'
Save=23.167877
Moving '../Saves/Save.tmp' to '../Saves/BTGhost_GTR-GeometricAbsolution_d1be5996b0a81ef2193ce5d422b91800.uvx'
ProcessServerTravel: ?restart
...
Collecting garbage
Purging garbage
Unhashed name 'BTGhost_GTR-GeometricAbsolution_2e216ede3cf7a275764b04b5ccdd005'
Executing UObject::StaticShutdownAfterError
Unhashed name 'BTGhost_GTR-GeometricAbsolution_2e216ede3cf7a275764b04b5ccdd005'

What's interesting here is that the latter is missing a d after 005.

Originally posted by @EliotVU in #7 (comment)

BTimes Map Checkpoints are not intiutive

It is not clear how a player can disable a map checkpoint once it is set.
A solution to this would be to disable the checkpoint as soon as the player dies by a "suicide", a checkpoint should only remain active if its instigator death was due the environment.

The only downside to this is the fact that deaths caused by crushing movers are recognized as a "suicide".

Compilation

Hello @EliotVU ,
Nice work here.

Having some issues to get it to work correctly
For the compilation of the mutator,
Shouldn't there be the .u files?

Or if there is any .readme for the installation somewhere?

Thanks you very much
Regards,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.