Splamy / TS3AudioBot

Advanced Musicbot for Teamspeak 3
https://splamy.de/TSAudioBot/Home
Open Software License 3.0
682 stars 138 forks source link

System.IO.IOException: No space left on device... Even though there is enough disk space #1025

Open FlorianPanten opened 1 year ago

FlorianPanten commented 1 year ago

Hey today I just saw my bot crashed. I tried to restart it but it won't start and keeps crashing on startup.

Log on crash:

2022-11-14 00:59:12.8206| INFO|Core|Setup.LogHeader [============ TS3AudioBot started =============]
2022-11-14 00:59:12.9413| INFO|Core|Setup.LogHeader [ Date: Monday, 14 November 2022 00:59:12
2022-11-14 00:59:13.1029| INFO|Core|Setup.LogHeader [ Version: 0.12.0/master/768c1867
2022-11-14 00:59:13.1034| INFO|Core|Setup.LogHeader [ Build: Release
2022-11-14 00:59:13.1034| INFO|Core|Setup.LogHeader [ Platform: Ubuntu 22.04.1 LTS (Jammy Jellyfish) (64bit)
2022-11-14 00:59:13.1034| INFO|Core|Setup.LogHeader [ Runtime: .NET Framework 3.1.13 ServerGC:True GC:SustainedLowLatency
2022-11-14 00:59:13.1034| INFO|Core|Setup.LogHeader [ Opus: libopus 1.3.1 (x64)
2022-11-14 00:59:13.1034| INFO|Core|Setup.LogHeader [==============================================]
...
2023-03-11 19:28:20.4761|FATAL|0|Core.UnhandledExceptionHandler Critical program failure!
System.IO.IOException: No space left on device
   at System.IO.FileStream.WriteNative(ReadOnlySpan`1 source)
   at System.IO.FileStream.WriteSpan(ReadOnlySpan`1 source)
   at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count)
   at LiteDB.FileDiskService.WriteJournal(ICollection`1 pages, UInt32 lastPageID)
   at LiteDB.TransactionService.PersistDirtyPages()
   at LiteDB.LiteEngine.Transaction[T](String collection, Boolean addIfNotExists, Func`2 action)
   at LiteDB.LiteCollection`1.Upsert(T document)
   at TS3AudioBot.Environment.Stats.TrackPoint() in C:\projects\ts3audiobot\TS3AudioBot\Environment\Stats.cs:line 160
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_1(Object state)
   at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)
   at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state)
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
2023-03-11 19:28:21.5658| INFO|0|Core.StopAsync TS3AudioBot shutting down.
2023-03-11 19:28:21.6614| INFO|0|Bot.Stop Bot (0) disconnecting.

Log on startup:

##########:~$ ./TS3AudioBot
03:12:54.0234| INFO|Core| [============ TS3AudioBot started =============]
03:12:54.2433| INFO|Core| [ Date: Sunday, 12 March 2023 03:12:54
03:12:54.8136| INFO|Core| [ Version: 0.12.0/master/768c1867
03:12:54.8136| INFO|Core| [ Build: Release
03:12:54.8153| INFO|Core| [ Platform: Ubuntu 22.04.2 LTS (Jammy Jellyfish) (64bit)
03:12:54.8153| INFO|Core| [ Runtime: .NET Framework 3.1.13 ServerGC:True GC:SustainedLowLatency
03:12:54.8214| INFO|Core| [ Opus: libopus 1.3.1 (x64)
03:12:54.8214| INFO|Core| [==============================================]
03:12:56.1303|FATAL|Core| Critical program failure!
03:12:56.4125| INFO|Core| TS3AudioBot shutting down.
03:12:56.4187| INFO|Core| WebServer is closing
03:12:56.4214| INFO|Core| Bye
Unhandled exception. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.IO.IOException: No space left on device
   at System.IO.FileStream.WriteNative(ReadOnlySpan`1 source)
   at System.IO.FileStream.WriteSpan(ReadOnlySpan`1 source)
   at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count)
   at LiteDB.FileDiskService.WriteJournal(ICollection`1 pages, UInt32 lastPageID)
   at LiteDB.TransactionService.PersistDirtyPages()
   at LiteDB.LiteEngine.Transaction[T](String collection, Boolean addIfNotExists, Func`2 action)
   at LiteDB.LiteEngine.EnsureIndex(String collection, String field, String expression, Boolean unique)
   at LiteDB.LiteCollection`1.EnsureIndex(String field, String expression, Boolean unique)
   at LiteDB.LiteCollection`1.EnsureIndex[K](Expression`1 property, String expression, Boolean unique)
   at LiteDB.LiteCollection`1.EnsureIndex[K](Expression`1 property, Boolean unique)
   at TS3AudioBot.Environment.Stats..ctor(ConfRoot conf, DbStore database, BotManager botManager, DedicatedTaskScheduler scheduler) in C:\projects\ts3audiobot\TS3AudioBot\Environment\Stats.cs:line 72
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at TS3AudioBot.Dependency.InjectorExtensions.TryCreate(IInjector injector, Type type, Object& obj) in C:\projects\ts3audiobot\TS3AudioBot\Dependency\InjectorExtensions.cs:line 69
   at TS3AudioBot.Dependency.DependencyBuilder.Build() in C:\projects\ts3audiobot\TS3AudioBot\Dependency\DependencyBuilder.cs:line 95
   at TS3AudioBot.Core.Run(ParameterData setup) in C:\projects\ts3audiobot\TS3AudioBot\Core.cs:line 71
   at TS3AudioBot.Setup.StartBot(ParameterData setup) in C:\projects\ts3audiobot\TS3AudioBot\Setup.cs:line 92
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_1(Object state)
   at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)
   at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state)
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Aborted

I am very sure that I have enough disk space. I checked my whole server size with du -a / and it has not reached its limit by far. I even tested to upload a 500mb file on it with no problems and deleted it and tried to start the bot again. I dont know why but it sais no space left on device

Flakebi commented 1 year ago

Can you paste the output of df -h please? It could be another partition that filled up (like /tmp).