nextcloud / nextcloud/circles

Orphaned mount entries left on remote instance after deleting federated circle

Open
#2,830 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage bug
Dominant language
JavaScript
Stars
177
Forks
68
Avg merge
2d 22h
Merged PRs (30d)
60

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Deleting federated circle with shares doesn't clean up oc_circles_mount/oc_circles_mountpoint tables on remote instance.


Steps to reproduce
  1. setup federation environment with two Nextcloud instances (e.g. nc_1 + nc_2)
  2. on nc_1 as bob:
  • create test_team and check "Allow federated members"
  • add john from nc_2 (john@nc_2)
  • create test_folder and share with test_team
  1. on nc_2 as john:
  • navigate to files > "All files" (this generates entry on oc_circles_mountpoint)
  1. on nc_2 database:
MariaDB [nextcloud2]> SELECT * FROM oc_circles_mount;
+----+-----------------+---------------------------------+---------------------------------+-------+--------+--------------+----------------------------------+-----------------+-----------+
| id | mount_id        | circle_id                       | single_id                       | token | parent | mountpoint   | mountpoint_hash                  | remote          | remote_id |
+----+-----------------+---------------------------------+---------------------------------+-------+--------+--------------+----------------------------------+-----------------+-----------+
|  3 | RLNrDNoxqco3miX | vPvDgqqAe8DLTvY4UCYcUPBBpAy6rCr | Tv497OEV968gV5LAwP2UKvuKNnw9EpW |       |     -1 | /test_folder | 621df261a24cccbef218646ca800cccc | nextcloud.local |         4 |
+----+-----------------+---------------------------------+---------------------------------+-------+--------+--------------+----------------------------------+-----------------+-----------+
1 row in set (0.000 sec)

MariaDB [nextcloud2]> SELECT * FROM oc_circles_mountpoint;
+----+-----------------+---------------------------------+--------------+----------------------------------+
| id | mount_id        | single_id                       | mountpoint   | mountpoint_hash                  |
+----+-----------------+---------------------------------+--------------+----------------------------------+
|  3 | RLNrDNoxqco3miX | 1iGuQvoC19E5dkwSEXvgRvf3OXYiA3m | /test_folder | acf4921df4e099066ff9ff542447b1cd |
+----+-----------------+---------------------------------+--------------+----------------------------------+
1 row in set (0.000 sec)
  • notice how entries are generated correctly
  1. on nc_1 as bob
  • delete test_team
  1. on nc_2 as john
  • navigate to files > "All files"
  • notice how test_folder now longer appears there, which is correct
  1. on nc_2 database:
MariaDB [nextcloud2]> SELECT * FROM oc_circles_mount;
+----+-----------------+---------------------------------+---------------------------------+-------+--------+--------------+----------------------------------+-----------------+-----------+
| id | mount_id        | circle_id                       | single_id                       | token | parent | mountpoint   | mountpoint_hash                  | remote          | remote_id |
+----+-----------------+---------------------------------+---------------------------------+-------+--------+--------------+----------------------------------+-----------------+-----------+
|  3 | RLNrDNoxqco3miX | vPvDgqqAe8DLTvY4UCYcUPBBpAy6rCr | Tv497OEV968gV5LAwP2UKvuKNnw9EpW |       |     -1 | /test_folder | 621df261a24cccbef218646ca800cccc | nextcloud.local |         4 |
+----+-----------------+---------------------------------+---------------------------------+-------+--------+--------------+----------------------------------+-----------------+-----------+
1 row in set (0.000 sec)

MariaDB [nextcloud2]> SELECT * FROM oc_circles_mountpoint;
+----+-----------------+---------------------------------+--------------+----------------------------------+
| id | mount_id        | single_id                       | mountpoint   | mountpoint_hash                  |
+----+-----------------+---------------------------------+--------------+----------------------------------+
|  3 | RLNrDNoxqco3miX | 1iGuQvoC19E5dkwSEXvgRvf3OXYiA3m | /test_folder | acf4921df4e099066ff9ff542447b1cd |
+----+-----------------+---------------------------------+--------------+----------------------------------+
1 row in set (0.000 sec)
  • notice how entries are not removed, this is incorrect, should be cleaned up
Expected behaviour

when deleting a federated circle with shares, related entries on remote instances oc_circles_mount and oc_circles_mountpoint tables should be removed

Actual behaviour

when deleting a federated circle with shares, related entries on remote instances oc_circles_mount and oc_circles_mountpoint are kept there, orphaned

Server configuration

Web server: Apache/Nginx

Database: MySQL/Maria/SQLite/PostgreSQL

PHP version: 8.5/8.4/8.3

Nextcloud version: Nextcloud 36.0.0 dev

List of activated apps Enabled: - appstore: 3.0.0-dev.0 - circles: 36.0.0-dev.0 - cloud_federation_api: 3.0.0-dev.0 - comments: 3.0.0-dev.0 - contactsinteraction: 3.0.0-dev.0 - dashboard: 9.0.0-dev.0 - dav: 3.0.0-dev.0 - federatedfilesharing: 3.0.0-dev.0 - federation: 3.0.0-dev.0 - files: 4.0.0-dev.0 - files_pdfviewer: 8.0.0-dev.0 - files_reminders: 3.0.0-dev.0 - files_sharing: 3.0.0-dev.0 - files_trashbin: 3.0.0-dev.0 - files_versions: 3.0.0-dev.0 - lookup_server_connector: 3.0.0-dev.0 - oauth2: 3.0.0-dev.0 - profile: 3.0.0-dev.0 - provisioning_api: 3.0.0-dev.0 - recommendations: 8.0.0-dev.0 - settings: 3.0.0-dev.0 - sharebymail: 3.0.0-dev.0 - sharing: 2.0.0-dev.1 - systemtags: 3.0.0-dev.0 - text: 9.0.0-dev.0 - theming: 4.0.0-dev.0 - twofactor_backupcodes: 3.0.0-dev.0 - updatenotification: 3.0.0-dev.0 - user_status: 3.0.0-dev.0 - viewer: 8.0.0-dev.0 - weather_status: 3.0.0-dev.0 - webhook_listeners: 3.0.0-dev.0 - workflowengine: 4.0.0-dev.0 Disabled: - admin_audit: 3.0.0-dev.0 - contacts: 8.8.0-dev.0 - encryption: 4.0.0-dev.0 - files_external: 3.0.0-dev.0 - globalsiteselector: 2.7.3 - groupfolders: 23.0.0-dev.3 - hmr_enabler: 1.4.0-dev.0 - profiler: 6.0.0-dev.0 - testing: 3.0.0-dev.0 - user_ldap: 3.0.0-dev.0 - user_oidc: 8.11.0 ``` If you have access to your command line run e.g.: sudo -u www-data php occ app:list from within your Nextcloud installation folder ```
Nextcloud configuration
If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your Nextcloud installation folder
Browser

Browser name: Firefox/Chrome/Safari/…

Browser version: 124/125/…

Operating system: Windows/Ubuntu/Mac/…

Browser log
Insert your browser log here, this could for example include:
a) The javascript console log
b) The network log
c) ...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by tracing federated circle deletion in the circles app and the handling of oc_circles_mount and oc_circles_mountpoint on the remote instance. Reproduce the two-instance scenario and verify that both related rows are removed after the circle is deleted.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend, databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.