Orphan Files in s3 and Cleanup

Nextcloud version: 29.0.4
Operating system and version: Ubuntu 24.04 (Arm)
Apache or nginx version (eg, Apache 2.4.25): ??? (on snap, couldn’t find this quickly)
PHP version (eg, 8.3): 8.2.20

The issue you are facing:
Orphaned 300MB file in s3

Is this the first time you’ve seen this error?: Y

Steps to replicate it:

  1. Copy big file into nextcloud
  2. Kill mysql at some point during the upload

So I know this is a me problem for causing the issue, my sever had too little RAM it seemed (900MB isn’t enough, 1.8GB is running sooooo much better)

I reconciled what was in s3 with what was in the oc_filecache table, and found a single orphan (In this case, I mean a file that is in S3 but has no cooresponding record in oc_filecache). It’s pretty obvious what happened via the log below, mysql died.

Is there a method or administrative script that can reconcile the oc_filecache with the storage location and print files needing to be purged, and possibly files that are striaght up missing?

This would be helpful to have a first party way of identifying these things.

Lastly, my guess is it is safe for me to just aws s3 rm this file, since it unknown to nextcloud (It was a test file anyway, confirming my cloud based hosting solution before onboarding my family to it).

The output of your Nextcloud log in Admin > Logging:

{
  "reqId": "MoyEI9r5VfoQMKm43cVv",
  "level": 3,
  "time": "2024-08-31T16:44:00+00:00",
  "remoteAddr": "a.b.c.d",
  "user": "hardingt",
  "app": "objectstore",
  "method": "PUT",
  "url": "/remote.php/dav/uploads/hardingt/3397290417/00001",
  "message": "Could not create object urn:oid:1983 for uploads/3397290417/00001",
  "userAgent": "Mozilla/5.0 (Windows) mirall/3.13.23.12-Win64 (build 20240708) (Nextcloud, windows-10.0.19045 ClientArchitecture: x86_64 OsArchitecture: x86_64)",
  "version": "29.0.4.1",
  "exception": {
    "Exception": "Doctrine\\DBAL\\Exception\\ConnectionLost",
    "Message": "An exception occurred while executing a query: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away",
    "Code": 2006,
    "Trace": [
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connection.php",
        "line": 1943,
        "function": "convert",
        "class": "Doctrine\\DBAL\\Driver\\API\\MySQL\\ExceptionConverter",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connection.php",
        "line": 1885,
        "function": "handleDriverException",
        "class": "Doctrine\\DBAL\\Connection",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connection.php",
        "line": 1213,
        "function": "convertExceptionDuringQuery",
        "class": "Doctrine\\DBAL\\Connection",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php",
        "line": 292,
        "function": "executeStatement",
        "class": "Doctrine\\DBAL\\Connection",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/lib/private/DB/Connection.php",
        "line": 373,
        "function": "executeStatement",
        "class": "Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 393,
        "function": "executeStatement",
        "class": "OC\\DB\\Connection",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 280,
        "function": "execute",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Cache/Cache.php",
        "line": 386,
        "function": "execute",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
        "line": 532,
        "function": "update",
        "class": "OC\\Files\\Cache\\Cache",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "function": "OC\\Files\\ObjectStore\\{closure}",
        "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/icewind/streams/src/CountWrapper.php",
        "line": 100,
        "function": "call_user_func"
      },
      {
        "function": "stream_close",
        "class": "Icewind\\Streams\\CountWrapper",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
        "line": 539,
        "function": "fclose",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Storage/Wrapper/Wrapper.php",
        "line": 653,
        "function": "writeStream",
        "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Storage/Wrapper/Wrapper.php",
        "line": 653,
        "function": "writeStream",
        "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Connector/Sabre/File.php",
        "line": 250,
        "function": "writeStream",
        "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Connector/Sabre/Directory.php",
        "line": 148,
        "function": "put",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Upload/UploadFolder.php",
        "line": 51,
        "function": "createFile",
        "class": "OCA\\DAV\\Connector\\Sabre\\Directory",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 1098,
        "function": "createFile",
        "class": "OCA\\DAV\\Upload\\UploadFolder",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
        "line": 504,
        "function": "createFile",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
        "line": 89,
        "function": "httpPut",
        "class": "Sabre\\DAV\\CorePlugin",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 472,
        "function": "emit",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 253,
        "function": "invokeMethod",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 321,
        "function": "start",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Server.php",
        "line": 383,
        "function": "exec",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/apps/dav/appinfo/v2/remote.php",
        "line": 35,
        "function": "exec",
        "class": "OCA\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/snap/nextcloud/43563/htdocs/remote.php",
        "line": 172,
        "args": [
          "/snap/nextcloud/43563/htdocs/apps/dav/appinfo/v2/remote.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php",
    "Line": 104,
    "Previous": {
      "Exception": "Doctrine\\DBAL\\Driver\\PDO\\Exception",
      "Message": "SQLSTATE[HY000]: General error: 2006 MySQL server has gone away",
      "Code": 2006,
      "Trace": [
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php",
          "line": 132,
          "function": "new",
          "class": "Doctrine\\DBAL\\Driver\\PDO\\Exception",
          "type": "::"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connection.php",
          "line": 1207,
          "function": "execute",
          "class": "Doctrine\\DBAL\\Driver\\PDO\\Statement",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php",
          "line": 292,
          "function": "executeStatement",
          "class": "Doctrine\\DBAL\\Connection",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/lib/private/DB/Connection.php",
          "line": 373,
          "function": "executeStatement",
          "class": "Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
          "line": 393,
          "function": "executeStatement",
          "class": "OC\\DB\\Connection",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/lib/private/DB/QueryBuilder/QueryBuilder.php",
          "line": 280,
          "function": "execute",
          "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Cache/Cache.php",
          "line": 386,
          "function": "execute",
          "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
          "line": 532,
          "function": "update",
          "class": "OC\\Files\\Cache\\Cache",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "function": "OC\\Files\\ObjectStore\\{closure}",
          "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/icewind/streams/src/CountWrapper.php",
          "line": 100,
          "function": "call_user_func"
        },
        {
          "function": "stream_close",
          "class": "Icewind\\Streams\\CountWrapper",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
          "line": 539,
          "function": "fclose",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Storage/Wrapper/Wrapper.php",
          "line": 653,
          "function": "writeStream",
          "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Storage/Wrapper/Wrapper.php",
          "line": 653,
          "function": "writeStream",
          "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Connector/Sabre/File.php",
          "line": 250,
          "function": "writeStream",
          "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Connector/Sabre/Directory.php",
          "line": 148,
          "function": "put",
          "class": "OCA\\DAV\\Connector\\Sabre\\File",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Upload/UploadFolder.php",
          "line": 51,
          "function": "createFile",
          "class": "OCA\\DAV\\Connector\\Sabre\\Directory",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
          "line": 1098,
          "function": "createFile",
          "class": "OCA\\DAV\\Upload\\UploadFolder",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
          "line": 504,
          "function": "createFile",
          "class": "Sabre\\DAV\\Server",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
          "line": 89,
          "function": "httpPut",
          "class": "Sabre\\DAV\\CorePlugin",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
          "line": 472,
          "function": "emit",
          "class": "Sabre\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
          "line": 253,
          "function": "invokeMethod",
          "class": "Sabre\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
          "line": 321,
          "function": "start",
          "class": "Sabre\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Server.php",
          "line": 383,
          "function": "exec",
          "class": "Sabre\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/apps/dav/appinfo/v2/remote.php",
          "line": 35,
          "function": "exec",
          "class": "OCA\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/snap/nextcloud/43563/htdocs/remote.php",
          "line": 172,
          "args": [
            "/snap/nextcloud/43563/htdocs/apps/dav/appinfo/v2/remote.php"
          ],
          "function": "require_once"
        }
      ],
      "File": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php",
      "Line": 28,
      "Previous": {
        "Exception": "PDOException",
        "Message": "SQLSTATE[HY000]: General error: 2006 MySQL server has gone away",
        "Code": "HY000",
        "Trace": [
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php",
            "line": 130,
            "function": "execute",
            "class": "PDOStatement",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connection.php",
            "line": 1207,
            "function": "execute",
            "class": "Doctrine\\DBAL\\Driver\\PDO\\Statement",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php",
            "line": 292,
            "function": "executeStatement",
            "class": "Doctrine\\DBAL\\Connection",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/lib/private/DB/Connection.php",
            "line": 373,
            "function": "executeStatement",
            "class": "Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
            "line": 393,
            "function": "executeStatement",
            "class": "OC\\DB\\Connection",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/lib/private/DB/QueryBuilder/QueryBuilder.php",
            "line": 280,
            "function": "execute",
            "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Cache/Cache.php",
            "line": 386,
            "function": "execute",
            "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
            "line": 532,
            "function": "update",
            "class": "OC\\Files\\Cache\\Cache",
            "type": "->",
            "args": [
              "*** sensitive parameters replaced ***"
            ]
          },
          {
            "function": "OC\\Files\\ObjectStore\\{closure}",
            "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
            "type": "->",
            "args": [
              "*** sensitive parameters replaced ***"
            ]
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/icewind/streams/src/CountWrapper.php",
            "line": 100,
            "function": "call_user_func"
          },
          {
            "function": "stream_close",
            "class": "Icewind\\Streams\\CountWrapper",
            "type": "->",
            "args": [
              "*** sensitive parameters replaced ***"
            ]
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
            "line": 539,
            "function": "fclose",
            "args": [
              "*** sensitive parameters replaced ***"
            ]
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Storage/Wrapper/Wrapper.php",
            "line": 653,
            "function": "writeStream",
            "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/lib/private/Files/Storage/Wrapper/Wrapper.php",
            "line": 653,
            "function": "writeStream",
            "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Connector/Sabre/File.php",
            "line": 250,
            "function": "writeStream",
            "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Connector/Sabre/Directory.php",
            "line": 148,
            "function": "put",
            "class": "OCA\\DAV\\Connector\\Sabre\\File",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Upload/UploadFolder.php",
            "line": 51,
            "function": "createFile",
            "class": "OCA\\DAV\\Connector\\Sabre\\Directory",
            "type": "->",
            "args": [
              "*** sensitive parameters replaced ***"
            ]
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
            "line": 1098,
            "function": "createFile",
            "class": "OCA\\DAV\\Upload\\UploadFolder",
            "type": "->",
            "args": [
              "*** sensitive parameters replaced ***"
            ]
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
            "line": 504,
            "function": "createFile",
            "class": "Sabre\\DAV\\Server",
            "type": "->",
            "args": [
              "*** sensitive parameters replaced ***"
            ]
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
            "line": 89,
            "function": "httpPut",
            "class": "Sabre\\DAV\\CorePlugin",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
            "line": 472,
            "function": "emit",
            "class": "Sabre\\DAV\\Server",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
            "line": 253,
            "function": "invokeMethod",
            "class": "Sabre\\DAV\\Server",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/3rdparty/sabre/dav/lib/DAV/Server.php",
            "line": 321,
            "function": "start",
            "class": "Sabre\\DAV\\Server",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/apps/dav/lib/Server.php",
            "line": 383,
            "function": "exec",
            "class": "Sabre\\DAV\\Server",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/apps/dav/appinfo/v2/remote.php",
            "line": 35,
            "function": "exec",
            "class": "OCA\\DAV\\Server",
            "type": "->"
          },
          {
            "file": "/snap/nextcloud/43563/htdocs/remote.php",
            "line": 172,
            "args": [
              "/snap/nextcloud/43563/htdocs/apps/dav/appinfo/v2/remote.php"
            ],
            "function": "require_once"
          }
        ],
        "File": "/snap/nextcloud/43563/htdocs/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php",
        "Line": 130
      }
    },
    "message": "Could not create object urn:oid:1983 for uploads/3397290417/00001",
    "exception": {},
    "CustomMessage": "Could not create object urn:oid:1983 for uploads/3397290417/00001"
  }
}

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.