neo-project / neo

NEO Smart Economy
MIT License
3.47k stars 1.03k forks source link

RockDb FileNotFoundException #3419

Open vncoelho opened 2 months ago

vncoelho commented 2 months ago

Sometime ago I was able to run RocksDbStore normally.

Nowadays it is returning a crash

neo> FATAL [17:14:42.250]   System.IO.FileNotFoundException
Could not load file or assembly 'RocksDbSharp, Version=8.11.3.46984,  Culture=neutral,  PublicKeyToken=null'. The...ch()
   at  System.Thr...eadStart()
Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'RocksDbSharp, Version=8.11.3.46984, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'RocksDbSharp, Version=8.11.3.46984, Culture=neutral, PublicKeyToken=null'
   at Neo.Plugins.Storage.Store..ctor(String path)
   at Neo.Plugins.Storage.RocksDBStore.GetStore(String path)
   at Neo.NeoSystem..ctor(ProtocolSettings settings, IStoreProvider storageProvider, String storagePath) in /opt/neoLib/src/Neo/NeoSystem.cs:line 136
   at Neo.NeoSystem..ctor(ProtocolSettings settings, String storageProvider, String storagePath) in /opt/neoLib/src/Neo/NeoSystem.cs:line 120
   at Neo.CLI.MainService.Start(CommandLineOptions options) in /opt/neoLib/src/Neo.CLI/CLI/MainService.cs:line 380
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_1(Object state)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
/opt/start_node.sh: line 2:   103 Aborted                 (core dumped) dotnet neo-cli.dll

The only method I have now in master to run a node in a consensus is MemoryStore. The rest is all bugging.

The configuration I used is the same as before. I run all setup with Docker images. Build with mcr.microsoft.com/dotnet/sdk:8.0.303-jammy Run with mcr.microsoft.com/dotnet/aspnet:8.0.7-jammy

There is no change from previous setup that was successful.

cschuchardt88 commented 2 months ago

This has to do with running neo-cli as a dll. You have to call Plugins.Loaddlls manually.

vncoelho commented 2 months ago

This has to do with running neo-cli as a dll. You have to call Plugins.Loaddlls manually.

Since when? This was never a requirement before

cschuchardt88 commented 2 months ago

This has to do with running neo-cli as a dll. You have to call Plugins.Loaddlls manually.

Since when? This was never a requirement before

I think its a dotnet thing with static classes. I had to do this for new-cli. Because it wasn't loading plugins' store.

You maybe just need to copy the runtimes directory from RocksDBStore folder to neo-cli folder

Also PR #3372 seeks to fix all these issue with current neo-cli so please, i need your support.

image

cschuchardt88 commented 1 week ago

@vncoelho has problem been resolved?