WebDAV after upload up to 100% upload hungs after update to 27.0.2

Config:
Nextcloud server ( 27.0.2 [All checks passed]) on VBox VM.
Data folder on VBox shared folder with:

xdata  /DATA  vboxsf  defaults,uid=33,gid=33,dmode=770,fmode=660,rw 0 0

Upload any file by WebDAV (f.e. android app) reaches 100%, next just hungs on 100%, server log adds:

webdav	Sabre\DAV\Exception\NotFound: File with name <filename> could not be located

But, the file appears in the folder where an attempt was made to upload it. Also in data folder /DATA//uploads creates new folder and it’s locked by php-fpm:

<user>@NextCloud:~$ sudo lsof | grep /DATA/
php-fpm8.  1254              www-data   11r      DIR               0,44         0        162 /DATA/<username>/uploads/2204de0c196b10a667ed9ee9abada1c0
php-fpm8. 17876              www-data   11r      DIR               0,44         0         23 /DATA/<username>/uploads/bf6077f6b34e8d01ad902a95f8114c6f

The locked folders remains until the reboot. And these folders are no longer deleted. They accumulate.

[/details]

Nextcloud version: 27.0.2
Operating system and version: Ubuntu 22.04 LTS x64
Apache or nginx version: Apache/2.4.52 (Ubuntu)
PHP version: PHP 8.1.23

The output of your Nextcloud log in:

	Sabre\DAV\Exception\NotFound: File with name <filename> could not be located

    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php - line 78:

    OCA\DAV\Connector\Sabre\Directory->getChild()

    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 76:

    Sabre\DAV\Tree->getNodeForPath()

    /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:

    Sabre\DAV\CorePlugin->httpGet()

    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 472:

    Sabre\DAV\Server->emit()

    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 251:

    Sabre\DAV\Server->invokeMethod()

    /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:

    Sabre\DAV\CorePlugin->httpHead()

    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 472:

    Sabre\DAV\Server->emit()

    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 253:

    Sabre\DAV\Server->invokeMethod()

    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 321:

    Sabre\DAV\Server->start()

    /var/www/nextcloud/apps/dav/lib/Server.php - line 364:

    Sabre\DAV\Server->exec()

    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:

    OCA\DAV\Server->exec()

    /var/www/nextcloud/remote.php - line 172:

    require_once("/var/www/ne ... p")

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

<?php
$CONFIG = array (
  'activity_expire_days' => 14,
  'auth.bruteforce.protection.enabled' => true,
  'blacklisted_files' =>
  array (
    0 => '.htaccess',
    1 => 'Thumbs.db',
    2 => 'thumbs.db',
  ),
  'instanceid' => '********',
  'passwordsalt' => '********',
  'secret' => '*********',
  'trusted_domains' =>
  array (
    0 => '***.***.***.***',
    1 => '*******.***',
    2 => 'localhost',
  ),
  'datadirectory' => '/DATA',
  'overwrite.cli.url' => 'https://*********.**',
  'dbtype' => 'mysql',
  'version' => '27.0.2.1',
  'dbname' => '********',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => '******',
  'dbpassword' => '****************',
  'installed' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
  array (
    'host' => '**********',
    'port' => 6379,
  ),
  'mail_smtpmode' => '******',
  'mail_smtpauthtype' => '******',
  'mail_from_address' => '****',
  'mail_domain' => '********.**',
  'mail_smtpauth' => 1,
  'mail_smtphost' => '***.***.***.***',
  'mail_smtpport' => '**',
  'mail_smtpname' => '***@****.**',
  'mail_smtppassword' => '*****',
  'htaccess.RewriteBase' => '/',
  'trusted_proxies' =>
  array (
    0 => '***.***.***.***',
  ),
  'overwritehost' => '********.**',
  'overwriteprotocol' => '*****',
  'overwritewebroot' => '/',
  'filelocking.enabled' => 'true',
  'integrity.check.disabled' => false,
  'knowledgebaseenabled' => false,
  'maintenance' => false,
  'skeletondirectory' => '',
  'theme' => '',
  'loglevel' => 0,
  'updater.release.channel' => 'stable',
  'default_phone_region' => 'EN',
  'app_install_overwrite' =>
  array (
    0 => 'ocsms',
  ),
);

Can you provide the exact reproduction steps that trigger this?

Try upload any file from android client to any folder and you got this…