Hi,
We are having problems with that horde doesn’t seem to expire artefacts as intended. We have hade our Horde server running on docker in linux now for about a year now, and we have recently run out of disk-space multiple times the last few weeks. We have had problems with it before, but then when we cleaned up some diskspace, it seemed to start working again.
I noticed that it’s the directory data/Storage/artifacts/step-output/ that grows more than I should. I made a script that checked how much of our diskspace was used by files that’s older that 3 days in there, and it stated 1.2TB of our 1.4TB drive.
I thought it was this issue: [Content removed] and I have applied the fix in there. But it still grows.
I have setup grafan to monitor the space left, and I notice that it’s sinking regularly, so it seems like it’s not completely broken.
I searched in the logs for exceptions, and what I found was entries like these:
[11:19:24 err] An unhandled exception has occurred while executing the request.
MongoDB.Driver.MongoCommandException: Command findAndModify failed: Plan executor error during findAndModify :: caused by :: E11000 duplicate key error collection: Horde.Storage.Blobs index: ns_1_blob_1 dup key: { ns: "horde-artifacts", blob: "step-output/ride-release-1.2/16771/compile-editor/69b93833b818c8b595bc28d1/7d2bbd6509e343b5ad2e4f2a52263a9b_1" }.
at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage)
at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Operations.CommandOperationBase`1.ExecuteProtocolAsync(IChannelSource channelSource, ICoreSessionHandle session, ReadPreference readPreference, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Operations.WriteCommandOperation`1.ExecuteAsync(IWriteBinding binding, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Operations.FindAndModifyOperationBase`1.ExecuteAttemptAsync(RetryableWriteContext context, Int32 attempt, Nullable`1 transactionNumber, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Operations.RetryableWriteOperationExecutor.ExecuteAsync[TResult](IRetryableWriteOperation`1 operation, RetryableWriteContext context, CancellationToken cancellationToken)
...
[11:19:28 dbg] HTTP PUT /api/v1/storage/horde-artifacts/blobs/step-output/ride-release-1.2/16771/compile-editor/69b93833b818c8b595bc28d1/7d2bbd6509e343b5ad2e4f2a52263a9b_1 responded 500 in 4681.9101 ms
Searching for “Garbage collection queue for namespace horde-artifacts” had these entries as our latest entries.
12:01:45 inf] Garbage collection queue for namespace horde-artifacts (storage:horde-artifacts:check) has 0 entries
Line 14885: [12:11:45 inf] Garbage collection queue for namespace horde-artifacts (storage:horde-artifacts:check) has 0 entries
Line 17544: [12:21:45 inf] Garbage collection queue for namespace horde-artifacts (storage:horde-artifacts:check) has 8 entries
Line 22293: [12:31:45 inf] Garbage collection queue for namespace horde-artifacts (storage:horde-artifacts:check) has 8 entries
Line 26945: [12:41:45 inf] Garbage collection queue for namespace horde-artifacts (storage:horde-artifacts:check) has 32 entries
It feels like when I have cleaned up storage to the growing data/Storage/artifacts/step-output/ folder I must have managed to desynced the DB someway. Any help trying to get the database back in order would be appreciated (yes, I have tried turning it off and on again ;))
Cheers,
Markus
[Attachment Removed]