Code Monkey home page Code Monkey logo

crystite's Issues

Feature: Database repair/cleanup options

Add an option to periodically cleanup/reset the litedb database on certain conditions.
The ones I mostly care about are on startup, on repair flag set (due to database corruption detected on runtime).

ForcedPort doesnt work with idleRestartInterval or forcedRestartInterval

1:58:29 INF] World [LBF] Hangout has been idle for 300 seconds, restarting
[11:58:29 INF] SessionID set to S-U-1Nd55iGqZ3Q:lbfhangout. LastModifyingUser:
[11:58:29 ERR] [B]Bind exception: System.Net.Sockets.SocketException (98): Address already in use
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at LiteNetLib.NetManager.BindSocket(Socket socket, IPEndPoint ep), errorCode: AddressAlreadyInUse
   at System.Environment.get_StackTrace()
   at Elements.Core.UniLog.Error(String message, Boolean stackTrace)
   at FrooxEngine.LNL_Logger.WriteNet(NetLogLevel level, String str, Object[] args)
   at LiteNetLib.NetDebug.WriteLogic(NetLogLevel logLevel, String str, Object[] args)
   at LiteNetLib.NetDebug.WriteError(String str)
   at LiteNetLib.NetManager.BindSocket(Socket socket, IPEndPoint ep)
   at LiteNetLib.NetManager.Start(IPAddress addressIPv4, IPAddress addressIPv6, Int32 port, Boolean manualMode)
   at LiteNetLib.NetManager.Start(IPAddress addressIPv4, IPAddress addressIPv6, Int32 port)
   at LiteNetLib.NetManager.Start(Int32 port)
   at FrooxEngine.LNL_Listener..ctor(String appId, UInt16 port, World world)
   at FrooxEngine.LNL_Manager.CreateListener(UInt16 port, World world)
   at FrooxEngine.NetworkManager.RequestAllListeners(UInt16 port, World world)
   at FrooxEngine.Session.StartNew(UInt16 port)
   at FrooxEngine.Session.NewSession(World owner, UInt16 port)
   at FrooxEngine.World.StartSession(WorldManager manager, WorldAction init, UInt16 port, String forceSessionId, DataTreeNode load, Boolean unsafeMode)
   at FrooxEngine.WorldManager.StartSession(WorldAction init, UInt16 port, String forceSessionId, DataTreeDictionary load, Boolean unsafeMode)
   at FrooxEngine.Userspace.StartSession(WorldAction init, UInt16 port, String forceSessionId, DataTreeDictionary load, Boolean focusWhenReady, Boolean unsafeMode)
   at FrooxEngine.Userspace.OpenWorldInternal(WorldStartSettings startInfo)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at FrooxEngine.Userspace.OpenWorldInternal(WorldStartSettings startInfo)
   at FrooxEngine.Userspace.<>c__DisplayClass183_0.<<OpenWorld>b__0>d.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at FrooxEngine.Userspace.<>c__DisplayClass183_0.<OpenWorld>b__0()
   at FrooxEngine.CoroutineManager.StartTask[T](Func`1 task, IUpdatable updatable)
   at FrooxEngine.Worker.StartTask[T](Func`1 task)
   at FrooxEngine.Userspace.OpenWorld(WorldStartSettings startInfo)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at FrooxEngine.Userspace.OpenWorld(WorldStartSettings startInfo)
   at Crystite.Services.WorldService.StartWorldAsync(WorldStartupParameters startupParameters, CancellationToken ct)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Crystite.Services.WorldService.StartWorldAsync(WorldStartupParameters startupParameters, CancellationToken ct)
   at Crystite.Services.WorldService.SessionHandlerAsync(SessionWrapper wrapper, CancellationToken ct)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at FrooxEngine.CoroutineManager.ExecuteWorldQueue(Double deltaTime)
   at FrooxEngine.Engine.UpdateStep()
   at FrooxEngine.Engine.RunUpdateLoop()
   at Crystite.StandaloneFrooxEngineService.EngineLoopAsync(CancellationToken ct)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.PeriodicTimer.State.Signal(Boolean stopping, CancellationToken cancellationToken)
   at System.Threading.PeriodicTimer.<>c.<.ctor>b__2_0(Object s)
   at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
   at System.Threading.TimerQueue.FireNextTimers()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
[11:58:29 ERR] Failed to start listener
   at System.Environment.get_StackTrace()
   at Elements.Core.UniLog.Error(String message, Boolean stackTrace)
   at FrooxEngine.LNL_Listener..ctor(String appId, UInt16 port, World world)
   at FrooxEngine.LNL_Manager.CreateListener(UInt16 port, World world)
   at FrooxEngine.NetworkManager.RequestAllListeners(UInt16 port, World world)
   at FrooxEngine.Session.StartNew(UInt16 port)
   at FrooxEngine.Session.NewSession(World owner, UInt16 port)
   at FrooxEngine.World.StartSession(WorldManager manager, WorldAction init, UInt16 port, String forceSessionId, DataTreeNode load, Boolean unsafeMode)
   at FrooxEngine.WorldManager.StartSession(WorldAction init, UInt16 port, String forceSessionId, DataTreeDictionary load, Boolean unsafeMode)
   at FrooxEngine.Userspace.StartSession(WorldAction init, UInt16 port, String forceSessionId, DataTreeDictionary load, Boolean focusWhenReady, Boolean unsafeMode)
   at FrooxEngine.Userspace.OpenWorldInternal(WorldStartSettings startInfo)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at FrooxEngine.Userspace.OpenWorldInternal(WorldStartSettings startInfo)
   at FrooxEngine.Userspace.<>c__DisplayClass183_0.<<OpenWorld>b__0>d.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at FrooxEngine.Userspace.<>c__DisplayClass183_0.<OpenWorld>b__0()
   at FrooxEngine.CoroutineManager.StartTask[T](Func`1 task, IUpdatable updatable)
   at FrooxEngine.Worker.StartTask[T](Func`1 task)
   at FrooxEngine.Userspace.OpenWorld(WorldStartSettings startInfo)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at FrooxEngine.Userspace.OpenWorld(WorldStartSettings startInfo)
   at Crystite.Services.WorldService.StartWorldAsync(WorldStartupParameters startupParameters, CancellationToken ct)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Crystite.Services.WorldService.StartWorldAsync(WorldStartupParameters startupParameters, CancellationToken ct)
   at Crystite.Services.WorldService.SessionHandlerAsync(SessionWrapper wrapper, CancellationToken ct)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at FrooxEngine.CoroutineManager.ExecuteWorldQueue(Double deltaTime)
   at FrooxEngine.Engine.UpdateStep()
   at FrooxEngine.Engine.RunUpdateLoop()
   at Crystite.StandaloneFrooxEngineService.EngineLoopAsync(CancellationToken ct)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.PeriodicTimer.State.Signal(Boolean stopping, CancellationToken cancellationToken)
   at System.Threading.PeriodicTimer.<>c.<.ctor>b__2_0(Object s)
   at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
   at System.Threading.TimerQueue.FireNextTimers()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

Docker support

Title says it all, but basically docker is pretty much the standard of deploying things on servers, so it would be nice if Crystite had docker support.

Debian package out of date and broken

I tried to update Crystite server today but encountered this error:

The installed Resonite version (2024.2.5.848) does not match the version Crystite was compiled with (2024.1.3.1265)

There is no newer package

crystite is already the newest version (1.0.0+deb11~preview33).

The README recommends using the Debian repository at https://repo.algiz.nu/crystite, but it looks like this repo's latest version is preview33 which is behind the latest preview41

If I manually ping the server with this, there appears to be nothing greater than preview33

curl -H 'User-Agent: Debian APT-HTTP/1.3' https://repo.algiz.nu/crystite/dists/bullseye/main/binary-amd64/Packages  | grep Version

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.