revenz / Fenrus

A personal home page for quick access to all your personal apps/sites.
MIT License
505 stars 29 forks source link

Fenrus will not save uploaded icons #210

Open pathwayx99 opened 9 months ago

pathwayx99 commented 9 months ago

I installed Fenrus in a docker image a couple of days ago (like what I see!) and proceeded to build my custom dashboard. I have a multi-user setup, so I created some system groups and some user groups and populated my dashboard. All good.

However, as of today (I fiddled a lot with new icons etc), any item I try to change/add with a custom icon (uploaded via the "browse" functionality) will not work. The icon is uploaded normally, I can save out of the item, but when I try to save the group it does nothing. The UI continues to appear responsive from that moment on (ie overlays etc work), but any clicks do nothing. I have to reload the page. If I do, either the new item doesn't exist, or if it was a change, the old icon remains.

Note this does not happen if I choose an icon from the built-in list.

Zoldex commented 9 months ago

The same happens to me. Single-user setup, it happens anytime I add an icon and try to save Group. This is the log coming from docker:

warn: Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer[100]
      Unhandled exception rendering component: LiteDB ENSURE: request page must be less or equals lastest page in data file
      System.Exception: LiteDB ENSURE: request page must be less or equals lastest page in data file
         at LiteDB.Constants.ENSURE(Boolean conditional, String message)
         at LiteDB.Engine.Snapshot.GetPage[T](UInt32 pageID, FileOrigin& origin, Int64& position, Int32& walVersion)
         at LiteDB.Engine.Snapshot.GetPage[T](UInt32 pageID)
         at LiteDB.Engine.Snapshot.AddFreeList[T](T page, UInt32& startPageID)
         at LiteDB.Engine.Snapshot.AddOrRemoveFreeDataList(DataPage page)
         at LiteDB.Engine.DataService.<>c__DisplayClass3_0.<<Insert>g__source|0>d.MoveNext()
         at LiteDB.Engine.BufferWriter..ctor(IEnumerable`1 source)
         at LiteDB.Engine.DataService.Insert(BsonDocument doc)
         at LiteDB.Engine.LiteEngine.InsertDocument(Snapshot snapshot, BsonDocument doc, BsonAutoId autoId, IndexService indexer, DataService data)
         at LiteDB.Engine.LiteEngine.<>c__DisplayClass7_0.<Insert>b__0(TransactionService transaction)
         at LiteDB.Engine.LiteEngine.AutoTransaction[T](Func`2 fn)
         at LiteDB.Engine.LiteEngine.Insert(String collection, IEnumerable`1 docs, BsonAutoId autoId)
         at LiteDB.LiteCollection`1.Insert(T entity)
         at LiteDB.LiteFileStream`1.WriteChunks(Boolean flush)
         at LiteDB.LiteFileStream`1.Flush()
         at LiteDB.LiteFileStream`1.Dispose(Boolean disposing)
         at System.IO.Stream.Close()
         at LiteDB.LiteStorage`1.Upload(TFileId id, String filename, Stream stream, BsonDocument metadata)
         at Fenrus.Helpers.ImageHelper.SaveImageFromBase64(String base64) in /app/Helpers/ImageHelper.cs:line 49
         at Fenrus.Components.PageGroup.Save() in /app/Components/Pages/PageGroup/PageGroup.razor.cs:line 124
         at Fenrus.Components.PageGroup.<BuildRenderTree>b__39_4() in /app/Components/Pages/PageGroup/PageGroup.razor:line 14
         at Microsoft.AspNetCore.Components.EventCallbackWorkItem.InvokeAsync[T](MulticastDelegate delegate, T arg)
         at Microsoft.AspNetCore.Components.ComponentBase.Microsoft.AspNetCore.Components.IHandleEvent.HandleEventAsync(EventCallbackWorkItem callback, Object arg)
         at Microsoft.AspNetCore.Components.RenderTree.Renderer.DispatchEventAsync(UInt64 eventHandlerId, EventFieldInfo fieldInfo, EventArgs eventArgs)
fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
      Unhandled exception in circuit '_Dwz6g2JA7Oev4TxFAIjRc5t0zu7Fg11I0KAby7bNbw'.
      System.Exception: LiteDB ENSURE: request page must be less or equals lastest page in data file
         at LiteDB.Constants.ENSURE(Boolean conditional, String message)
         at LiteDB.Engine.Snapshot.GetPage[T](UInt32 pageID, FileOrigin& origin, Int64& position, Int32& walVersion)
         at LiteDB.Engine.Snapshot.GetPage[T](UInt32 pageID)
         at LiteDB.Engine.Snapshot.AddFreeList[T](T page, UInt32& startPageID)
         at LiteDB.Engine.Snapshot.AddOrRemoveFreeDataList(DataPage page)
         at LiteDB.Engine.DataService.<>c__DisplayClass3_0.<<Insert>g__source|0>d.MoveNext()
         at LiteDB.Engine.BufferWriter..ctor(IEnumerable`1 source)
         at LiteDB.Engine.DataService.Insert(BsonDocument doc)
         at LiteDB.Engine.LiteEngine.InsertDocument(Snapshot snapshot, BsonDocument doc, BsonAutoId autoId, IndexService indexer, DataService data)
         at LiteDB.Engine.LiteEngine.<>c__DisplayClass7_0.<Insert>b__0(TransactionService transaction)
         at LiteDB.Engine.LiteEngine.AutoTransaction[T](Func`2 fn)
         at LiteDB.Engine.LiteEngine.Insert(String collection, IEnumerable`1 docs, BsonAutoId autoId)
         at LiteDB.LiteCollection`1.Insert(T entity)
         at LiteDB.LiteFileStream`1.WriteChunks(Boolean flush)
         at LiteDB.LiteFileStream`1.Flush()
         at LiteDB.LiteFileStream`1.Dispose(Boolean disposing)
         at System.IO.Stream.Close()
         at LiteDB.LiteStorage`1.Upload(TFileId id, String filename, Stream stream, BsonDocument metadata)
         at Fenrus.Helpers.ImageHelper.SaveImageFromBase64(String base64) in /app/Helpers/ImageHelper.cs:line 49
         at Fenrus.Components.PageGroup.Save() in /app/Components/Pages/PageGroup/PageGroup.razor.cs:line 124
         at Fenrus.Components.PageGroup.<BuildRenderTree>b__39_4() in /app/Components/Pages/PageGroup/PageGroup.razor:line 14
         at Microsoft.AspNetCore.Components.EventCallbackWorkItem.InvokeAsync[T](MulticastDelegate delegate, T arg)
         at Microsoft.AspNetCore.Components.ComponentBase.Microsoft.AspNetCore.Components.IHandleEvent.HandleEventAsync(EventCallbackWorkItem callback, Object arg)
         at Microsoft.AspNetCore.Components.RenderTree.Renderer.DispatchEventAsync(UInt64 eventHandlerId, EventFieldInfo fieldInfo, EventArgs eventArgs)