Skip to content

fix: harden object store against copying a file to itself #3455

fix: harden object store against copying a file to itself

fix: harden object store against copying a file to itself #3455

Triggered via pull request July 23, 2026 13:45
Status Success
Total duration 41m 8s
Artifacts 9

playwright.yml

on: pull_request
Playwright setup
3m 21s
Playwright setup
Matrix: playwright-tests
Playwright tests for installer
19m 51s
Playwright tests for installer
merge-reports
2m 38s
merge-reports
playwright-test-summary
7s
playwright-test-summary
Fit to window
Zoom out
Zoom in

Annotations

6 errors, 2 warnings, and 9 notices
[default] › tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov: tests/playwright/support/sections/FilesListPage.ts#L19
1) [default] › tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov Error: page.goto: Test ended. Call log: - navigating to "http://localhost:8042/index.php/apps/files", waiting until "load" at ../support/sections/FilesListPage.ts:19 17 | */ 18 | async open(viewId?: string): Promise<void> { > 19 | await this.page.goto(viewId ? `apps/files/${viewId}` : 'apps/files') | ^ 20 | await this.waitForList() 21 | } 22 | at FilesListPage.open (/home/runner/actions-runner/_work/server/server/tests/playwright/support/sections/FilesListPage.ts:19:19) at /home/runner/actions-runner/_work/server/server/tests/playwright/e2e/files/live-photos.spec.ts:180:24
[default] › tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share: tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts#L101
1) [default] › tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share Error: expect(received).toBe(expected) // Object.is equality - Expected - 1 + Received + 90 - v2 + <!DOCTYPE html> + <html class="ng-csp" data-placeholder-focus="false" lang="en" data-locale="en_US" translate="no" > + <head + data-user="fofkl" data-user-displayname="" + data-requesttoken="dfMnSEnQzkzBld76grWjnd+0Jr8aKSdvrBXa2W+joYE=:D5hyfnG+/R6E+7Grysba6a75Hv14Smgg/3u+nSr30fA="> + <meta charset="utf-8"> + <title> + Nextcloud </title> + <meta name="csp-nonce" nonce="D5hyfnG+/R6E+7Grysba6a75Hv14Smgg/3u+nSr30fA="> + <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0"> + <meta name="apple-itunes-app" content="app-id=1125420102"> + <meta name="theme-color" content="#00679e"> + <link rel="icon" href="/index.php/apps/theming/favicon?v=6a26ea95"> + <link rel="apple-touch-icon" href="/index.php/apps/theming/icon?v=6a26ea95"> + <link rel="mask-icon" sizes="any" href="/core/img/favicon-mask.svg" color="#00679e"> + <link rel="manifest" href="/core/img/manifest.json" crossorigin="use-credentials"> + <link rel="stylesheet" href="/core/css/styles.css?v=6d87304a-0"> + <link rel="stylesheet" href="/core/css/header.css?v=6d87304a-0"> + <link rel="stylesheet" href="/core/css/exception.css?v=6d87304a-0"> + <link rel="stylesheet" href="/apps/theming/css/default.css?v=05c14570-0"> + <link rel="stylesheet" href="/core/css/guest.css?v=6d87304a-0"> + <script nonce="D5hyfnG+/R6E+7Grysba6a75Hv14Smgg/3u+nSr30fA="> + var _oc_debug=false; + var _oc_isadmin=false; + var backendAllowsPasswordConfirmation=true; + var oc_dataURL=false; + var _oc_webroot=""; + var _oc_appswebroots={"appstore":"/apps/appstore","cloud_federation_api":"/apps/cloud_federation_api","comments":"/apps/comments","contactsinteraction":"/apps/contactsinteraction","dashboard":"/apps/dashboard","dav":"/apps/dav","federatedfilesharing":"/apps/federatedfilesharing","federation":"/apps/federation","files":"/apps/files","files_external":"/apps/files_external","files_reminders":"/apps/files_reminders","files_sharing":"/apps/files_sharing","files_trashbin":"/apps/files_trashbin","files_versions":"/apps/files_versions","lookup_server_connector":"/apps/lookup_server_connector","oauth2":"/apps/oauth2","profile":"/apps/profile","provisioning_api":"/apps/provisioning_api","settings":"/apps/settings","sharebymail":"/apps/sharebymail","sharing":"/apps/sharing","systemtags":"/apps/systemtags","theming":"/apps/theming","twofactor_backupcodes":"/apps/twofactor_backupcodes","updatenotification":"/apps/updatenotification","user_status":"/apps/user_status","viewer":"/apps_writable/viewer","weather_status":"/apps/weather_status","webhook_listeners":"/apps/webhook_listeners","workflowengine":"/apps/workflowengine"}; + var datepickerFormatDate="M\/d\/yy"; + var nc_lastLogin=0; + var nc_pageLoad=1784816479; + var dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; + var dayNamesShort=["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."]; + var dayNamesMin=["Su","Mo","Tu","We","Th","Fr","Sa"]; + var monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"]; + var monthNamesShort=["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."]; + var firstDay=0; + var _oc_config={"blacklist_files_regex":"\\.(part|filepart)$","forbidden_filename_characters":["\\","\/"],"auto_logout":false,"loglevel":"0","lost_password_link":null,"modRewriteWorking":false,"no_unsupported_browser_warning":false,"session_keepalive":true,"session_lifetime":1440,"sharing.maxAutocompleteResults":25,"sharing.minSearchStringLength":0,"version":"35.0.0.1","
[default] › tests/playwright/tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share: tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts#L101
2) [default] › tests/playwright/tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share Error: expect(received).toBe(expected) // Object.is equality - Expected - 1 + Received + 90 - v2 + <!DOCTYPE html> + <html class="ng-csp" data-placeholder-focus="false" lang="en" data-locale="en_US" translate="no" > + <head + data-user="fofkl" data-user-displayname="" + data-requesttoken="dfMnSEnQzkzBld76grWjnd+0Jr8aKSdvrBXa2W+joYE=:D5hyfnG+/R6E+7Grysba6a75Hv14Smgg/3u+nSr30fA="> + <meta charset="utf-8"> + <title> + Nextcloud </title> + <meta name="csp-nonce" nonce="D5hyfnG+/R6E+7Grysba6a75Hv14Smgg/3u+nSr30fA="> + <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0"> + <meta name="apple-itunes-app" content="app-id=1125420102"> + <meta name="theme-color" content="#00679e"> + <link rel="icon" href="/index.php/apps/theming/favicon?v=6a26ea95"> + <link rel="apple-touch-icon" href="/index.php/apps/theming/icon?v=6a26ea95"> + <link rel="mask-icon" sizes="any" href="/core/img/favicon-mask.svg" color="#00679e"> + <link rel="manifest" href="/core/img/manifest.json" crossorigin="use-credentials"> + <link rel="stylesheet" href="/core/css/styles.css?v=6d87304a-0"> + <link rel="stylesheet" href="/core/css/header.css?v=6d87304a-0"> + <link rel="stylesheet" href="/core/css/exception.css?v=6d87304a-0"> + <link rel="stylesheet" href="/apps/theming/css/default.css?v=05c14570-0"> + <link rel="stylesheet" href="/core/css/guest.css?v=6d87304a-0"> + <script nonce="D5hyfnG+/R6E+7Grysba6a75Hv14Smgg/3u+nSr30fA="> + var _oc_debug=false; + var _oc_isadmin=false; + var backendAllowsPasswordConfirmation=true; + var oc_dataURL=false; + var _oc_webroot=""; + var _oc_appswebroots={"appstore":"/apps/appstore","cloud_federation_api":"/apps/cloud_federation_api","comments":"/apps/comments","contactsinteraction":"/apps/contactsinteraction","dashboard":"/apps/dashboard","dav":"/apps/dav","federatedfilesharing":"/apps/federatedfilesharing","federation":"/apps/federation","files":"/apps/files","files_external":"/apps/files_external","files_reminders":"/apps/files_reminders","files_sharing":"/apps/files_sharing","files_trashbin":"/apps/files_trashbin","files_versions":"/apps/files_versions","lookup_server_connector":"/apps/lookup_server_connector","oauth2":"/apps/oauth2","profile":"/apps/profile","provisioning_api":"/apps/provisioning_api","settings":"/apps/settings","sharebymail":"/apps/sharebymail","sharing":"/apps/sharing","systemtags":"/apps/systemtags","theming":"/apps/theming","twofactor_backupcodes":"/apps/twofactor_backupcodes","updatenotification":"/apps/updatenotification","user_status":"/apps/user_status","viewer":"/apps_writable/viewer","weather_status":"/apps/weather_status","webhook_listeners":"/apps/webhook_listeners","workflowengine":"/apps/workflowengine"}; + var datepickerFormatDate="M\/d\/yy"; + var nc_lastLogin=0; + var nc_pageLoad=1784816479; + var dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; + var dayNamesShort=["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."]; + var dayNamesMin=["Su","Mo","Tu","We","Th","Fr","Sa"]; + var monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"]; + var monthNamesShort=["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."]; + var firstDay=0; + var _oc_config={"blacklist_files_regex":"\\.(part|filepart)$","forbidden_filename_characters":["\\","\/"],"auto_logout":false,"loglevel":"0","lost_password_link":null,"modRewriteWorking":false,"no_unsupported_browser_warning":false,"session_keepalive":true,"session_lifetime":1440,"sharing.maxAutocompleteResults":25,"sharing.minSearchStringLength":0,"vers
[default] › tests/playwright/tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share: tests/playwright/tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts#L0
2) [default] › tests/playwright/tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share Test timeout of 30000ms exceeded.
[default] › tests/playwright/tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov: tests/playwright/support/sections/FilesListPage.ts#L19
1) [default] › tests/playwright/tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov Error: page.goto: Test ended. Call log: - navigating to "http://localhost:8042/index.php/apps/files", waiting until "load" at ../support/sections/FilesListPage.ts:19 17 | */ 18 | async open(viewId?: string): Promise<void> { > 19 | await this.page.goto(viewId ? `apps/files/${viewId}` : 'apps/files') | ^ 20 | await this.waitForList() 21 | } 22 | at FilesListPage.open (/home/runner/actions-runner/_work/server/server/tests/playwright/support/sections/FilesListPage.ts:19:19) at /home/runner/actions-runner/_work/server/server/tests/playwright/e2e/files/live-photos.spec.ts:180:24
[default] › tests/playwright/tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov: tests/playwright/tests/playwright/e2e/files/live-photos.spec.ts#L0
1) [default] › tests/playwright/tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov Test timeout of 30000ms exceeded.
Playwright setup
Failed to save: Unable to reserve cache with key playwright-context-30012638549. More details: cache write denied: token has no writable scopes
Playwright tests for installer
Docker network rm failed with exit code 1
🎭 Playwright Run Summary
41 passed (4.7m)
🎭 Playwright Run Summary
42 passed (5.8m)
🎭 Playwright Run Summary
41 passed (10.6m)
🎭 Playwright Run Summary
42 passed (10.7m)
🎭 Playwright Run Summary
41 passed (13.9m)
🎭 Playwright Run Summary
1 flaky [default] › tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov 40 passed (13.4m)
🎭 Playwright Run Summary
7 passed (8.0m)
🎭 Playwright Run Summary
1 flaky [default] › tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share 40 passed (14.1m)
🎭 Playwright Run Summary
2 flaky [default] › tests/playwright/tests/playwright/e2e/files/live-photos.spec.ts:169:3 › Files: Live photos › 'Show hidden files' is enabled › Blocks restoration when restoring the .mov [default] › tests/playwright/tests/playwright/e2e/files_versions/version-cross-share-move-and-copy.spec.ts:134:2 › files_versions: versions across a share move/copy › copies the versions when the file is copied out of a received share 294 passed (20.5m)

Artifacts

Produced during runtime
Name Size Digest
blob-report-1 Expired
62.2 KB
sha256:d83aadac0c4fc62f8c4ebbe12027e60a9357133ccbdf26115418568ef9c20fa0
blob-report-2 Expired
59 KB
sha256:0017f4bb72f30bdd8c378d6b0d172332a62d00e2e270b210f1d4e7cca276f759
blob-report-3 Expired
71 KB
sha256:71cca778341b41af3c88f98e94cc03d0fd9fb927e14846e90b19b41266989515
blob-report-4 Expired
6.1 MB
sha256:768c6306992315e7a72e86c33526f45c2c640c086a9123a96e3183f10fb80812
blob-report-5 Expired
9.78 MB
sha256:febdd23ce97c6b96f68b77110c8014ef549eba2a55db99eebd2d5c14204cd8d8
blob-report-6 Expired
80.2 KB
sha256:5daad71102f7eecf99e551d2d9199b16680f1e920c6d60077ff80616f277be19
blob-report-7 Expired
77.3 KB
sha256:8deedc90bb7011afd4d235018163fb64598a6f72655048b1015d40ec2fc5bc3c
blob-report-setup Expired
13.7 KB
sha256:20dea88d58fa81306da2af45cac54f6737446bb5239c5c2224c0ad529befc5c0
html-report--attempt-1 Expired
16.5 MB
sha256:8cede52c6614abb7a7e158b29958cfdc585b724a033dea087f9072c4d74c6d28