StrangeLoopGames / EcoIssues

131 stars 21 forks source link

[0.9.2 staging-1853] Server doesn't migrate #19451

Closed SlayksWood closed 3 years ago

SlayksWood commented 3 years ago

Try to migrate: https://drive.google.com/file/d/16UekkpGmwcQ3V1498r_JnLiF3qB_zafv/view?usp=sharing log_201124021518.log

IcedForge commented 3 years ago

Tried to migrate mishkas long term server and got a bunch of migrate and overall issues migrations.log log_201124121553.log

SlayksWood commented 3 years ago

Can't migrate any server now. This server is almost empty https://drive.google.com/file/d/1n8hmKzq3jee6qZvemHjLCavqCFq63nA_/view?usp=sharing log_201126120140.log

SlayksWood commented 3 years ago

Need to check #19468 and this #19469

MishkaFur commented 3 years ago

tried loading my world on 1856 and get the below/attached

Lemme know if anything else is needed :)

[16:41:10.701] [67] [Error] [Eco] Failed to load object of type 'EconomyManager'. It will be ignored, but may cause inconsistency and errors in other entities: System.Collections.Generic.KeyNotFoundException: The given key 'Eco.Core.Serialization.Migrations.DataMigrations.MemberDataInput' was not present in the dictionary. at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Eco.Core.Serialization.Migrations.DataMigrations.MigrationDataModification.GenerateOutput(MigrationContext context) at Eco.Core.Serialization.Migrations.DataMigrations.MemberDataModification.Apply(MigrationContext context) at Eco.Core.Serialization.Migrations.DataMigration.MigrateInstance(MigrationContext context) at Eco.Core.Serialization.Migrations.MigrationManager.MigrateInstanceInternal(MigrationContext context, IEnumerable1 migrations) at Eco.Core.Serialization.Migrations.MigrationManager.MigrateInstance(MigrationContext context) at Eco.Core.Serialization.Serializers.MigrationChainSerializer.DecodeObject(BinaryReader reader, Int32 objTypeID) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeReferenceable(BinaryReader reader) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeToMember(BinaryReader reader, Object instance, MemberInfo memberInfo) at Eco.Core.Serialization.Serializers.ClassMigrationSerializer1.DecodeToInstance(Object& instance, BinaryReader reader) at Eco.Core.Serialization.Serializers.ClassSerializer.DecodeInstance(BinaryReader reader) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeObject(BinaryReader reader, Int32 objTypeID) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeObject(BinaryReader reader, Int32 objTypeID) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeReferenceable(BinaryReader reader) at Eco.Core.Serialization.Serializers.DictionarySerializer3.DecodeReferenceableEntry(BinaryReader reader, Object instance) at Eco.Core.Serialization.Serializers.DictionarySerializer3.DecodeDictionary(BinaryReader reader, Object instance) at Eco.Core.Serialization.Serializers.DictionarySerializer3.Decode(BinaryReader reader, Object instance) at Eco.Core.Serialization.Serializers.ClassSerializer1.DecodeMember(MemberInfo member, Object& instance, BinaryReader reader) at Eco.Core.Serialization.Serializers.ClassMigrationSerializer1.DecodeToInstance(Object& instance, BinaryReader reader) at Eco.Core.Serialization.Serializers.ClassSerializer.DecodeInstance(BinaryReader reader) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeObject(BinaryReader reader, Int32 objTypeID) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeReferenceable(BinaryReader reader) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeToMember(BinaryReader reader, Object instance, MemberInfo memberInfo) at Eco.Core.Serialization.Serializers.ClassMigrationSerializer`1.DecodeToInstance(Object& instance, BinaryReader reader) at Eco.Core.Serialization.Serializers.ClassSerializer.DecodeInstance(BinaryReader reader) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeObject(BinaryReader reader, Int32 objTypeID) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeObject(BinaryReader reader, Int32 objTypeID) at Eco.Core.Serialization.Serializers.ObjectSerializer.DecodeReferenceable(BinaryReader reader) at Eco.Core.Serialization.Serializers.ObjectSerializer.Decode(BinaryReader reader) at Eco.Core.Serialization.SimpleSerializer.Deserialize(Stream stream) at Eco.Core.Serialization.DataStore.DeserializeSafe[T](Stream stream) migrations.log log_201126043438.log

mirasrael commented 3 years ago

Fixed migration. Tested with Mishka world. Was able to load it. In current version it performs Deed split very slow (I stopped it after 30 minutes). But it may be optimized (in local version I applied some optimization and split was finished in less than a minute). I informed @gzatravkin about the issue and asked to fix performance of split, but this is a different issue. With local optimization the world loaded and I was able to connect.

mirasrael commented 3 years ago

Deed split fixed here: https://github.com/StrangeLoopGames/Eco/pull/7298

SlayksWood commented 3 years ago

Steel can't migrate this world: https://drive.google.com/file/d/1DG6UpirOpwBpyGbtiVHZNSNFQJ6vYWL2/view?usp=sharing log_201207035738.log

Failed to load server, Exception was Exception: NullReferenceException
Message:Object reference not set to an instance of an object.
Source:Eco.Gameplay

System.NullReferenceException: Object reference not set to an instance of an object.
   at Eco.Gameplay.Items.WorkOrder.get_Product()
   at Eco.Gameplay.Items.WorkOrder.Eco.Core.Systems.IHasID.OnRemovingDueVerifyFailed()
   at Eco.Core.Systems.Registrar.Verify(IHasID entity)
   at Eco.Core.Systems.Registrar.Verify()
   at Eco.Core.Systems.Registrars.Init()
   at Eco.Core.Utils.Initializer.Initialize()
   at Eco.Server.PluginManager.PostCreateAsync(StartupInfo startupInfo)
   at Eco.Server.Startup.StartAsync(StartupInfo startupInfo)

[16:00:19.467] [1] [Error] [Eco] Unhandled errorSystem.NullReferenceException: Object reference not set to an instance of an object.
   at Eco.Gameplay.Items.WorkOrder.get_Product()
   at Eco.Gameplay.Items.WorkOrder.Eco.Core.Systems.IHasID.OnRemovingDueVerifyFailed()
   at Eco.Core.Systems.Registrar.Verify(IHasID entity)
   at Eco.Core.Systems.Registrar.Verify()
   at Eco.Core.Systems.Registrars.Init()
   at Eco.Core.Utils.Initializer.Initialize()
   at Eco.Server.PluginManager.PostCreateAsync(StartupInfo startupInfo)
   at Eco.Server.Startup.StartAsync(StartupInfo startupInfo)
   at Eco.Server.ApplicationHostedService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at Eco.Server.MainClass.Main(String[] args)

and this one too: https://drive.google.com/file/d/1kAqhxV0yHz8pduL4hf2ZS5Bh7xgSQRxr/view?usp=sharing

mirasrael commented 3 years ago

Migration is breaking now due to recent changes in Void Storage and OnRemovingDueVerifyFailed callback (https://github.com/StrangeLoopGames/Eco/pull/7319)

SlayksWood commented 3 years ago

migration and void storage work.