{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":139156354,"defaultBranch":"develop","name":"cvat","ownerLogin":"cvat-ai","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-06-29T14:02:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/105363648?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716922472.0","currentOid":""},"activityList":{"items":[{"before":"3bf992a23f84b272074e308de623126790fddad3","after":"f36cf4ee61f54f495a907f497e8078474b5cc3fe","ref":"refs/heads/bs/dedicated_event_for_wt","pushedAt":"2024-05-28T19:15:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Some code refactoring","shortMessageHtmlLink":"Some code refactoring"}},{"before":null,"after":"3bf992a23f84b272074e308de623126790fddad3","ref":"refs/heads/bs/dedicated_event_for_wt","pushedAt":"2024-05-28T18:54:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Using dedicated event to store working time","shortMessageHtmlLink":"Using dedicated event to store working time"}},{"before":"f33b9cfb4b5e2e212419f5fa0626e3b4338f0300","after":null,"ref":"refs/heads/bs/fixed_tests","pushedAt":"2024-05-28T18:23:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"}},{"before":"eee0294cb42f09a75e3542af05d7c34cbc52d716","after":null,"ref":"refs/heads/bs/upgrade_react","pushedAt":"2024-05-28T18:23:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"}},{"before":"1c82ec213c14d14b5043e0df45a4813b64311963","after":null,"ref":"refs/heads/bs/fixed_save","pushedAt":"2024-05-28T18:23:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"}},{"before":"a2787ca77aaac49408cb0c9b4f400db1f124ee96","after":null,"ref":"refs/heads/bs/fixed_working_time","pushedAt":"2024-05-28T18:23:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"}},{"before":"27b7c35f2d3a858224adf388682458c4736a7088","after":null,"ref":"refs/heads/bs/aborted_changes","pushedAt":"2024-05-28T18:23:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"}},{"before":"930d1943e3397717f831fc091a2cd305961b6fc8","after":null,"ref":"refs/heads/bs/delete_comma","pushedAt":"2024-05-28T18:23:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"}},{"before":"3792ec8cce948c316e48249a2e4146d9234a6618","after":"7b86bfc0b66bca938bc3a4a12f406b4058847007","ref":"refs/heads/gh-pages","pushedAt":"2024-05-28T18:18:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: 5359a4edb187f8c471198a5e222cebbd971b9d9a","shortMessageHtmlLink":"deploy: 5359a4e"}},{"before":"fbc2b34b43a8860bb2be8a38024b53ddb6523ffb","after":"87ebc57a8382364d82499ef5763d353e9042dfed","ref":"refs/heads/bs/updated_events","pushedAt":"2024-05-28T18:14:23.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Merge branch 'develop' into bs/updated_events","shortMessageHtmlLink":"Merge branch 'develop' into bs/updated_events"}},{"before":"f661563693e84f517a18101c9406d055f500fed9","after":"5359a4edb187f8c471198a5e222cebbd971b9d9a","ref":"refs/heads/develop","pushedAt":"2024-05-28T18:14:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Delete extra comma (#7957)","shortMessageHtmlLink":"Delete extra comma (#7957)"}},{"before":null,"after":"930d1943e3397717f831fc091a2cd305961b6fc8","ref":"refs/heads/bs/delete_comma","pushedAt":"2024-05-28T18:13:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Delete extra comma","shortMessageHtmlLink":"Delete extra comma"}},{"before":"12a9c2086388bd350bc2fba6923ffeaa1540627d","after":"3792ec8cce948c316e48249a2e4146d9234a6618","ref":"refs/heads/gh-pages","pushedAt":"2024-05-28T18:07:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: f661563693e84f517a18101c9406d055f500fed9","shortMessageHtmlLink":"deploy: f661563"}},{"before":"c1755267024d9f324ac556667a27d801840347db","after":"021c3ce5736fc2099a9d47c2d7bcf5d123eed497","ref":"refs/heads/kl/data-processing","pushedAt":"2024-05-28T18:04:33.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"klakhov","name":"Kirill Lakhov","path":"/klakhov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50956430?s=80&v=4"},"commit":{"message":"Merge branch 'develop' into kl/data-processing","shortMessageHtmlLink":"Merge branch 'develop' into kl/data-processing"}},{"before":"9c02472ff9c6401d8d3660b486bc77d1b426749b","after":"c1755267024d9f324ac556667a27d801840347db","ref":"refs/heads/kl/data-processing","pushedAt":"2024-05-28T18:04:09.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"klakhov","name":"Kirill Lakhov","path":"/klakhov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50956430?s=80&v=4"},"commit":{"message":"Merge branch 'kl/data-processing' of https://github.com/cvat-ai/cvat into kl/data-processing","shortMessageHtmlLink":"Merge branch 'kl/data-processing' of https://github.com/cvat-ai/cvat …"}},{"before":"2bd23c15de0bc8f4cda225153c6b70e80bce47d3","after":"f661563693e84f517a18101c9406d055f500fed9","ref":"refs/heads/develop","pushedAt":"2024-05-28T18:02:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Aborted enabling black linter onsave in vscode (#7956)","shortMessageHtmlLink":"Aborted enabling black linter onsave in vscode (#7956)"}},{"before":null,"after":"27b7c35f2d3a858224adf388682458c4736a7088","ref":"refs/heads/bs/aborted_changes","pushedAt":"2024-05-28T18:02:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Aborted enabling black linter onsave in vscode","shortMessageHtmlLink":"Aborted enabling black linter onsave in vscode"}},{"before":"21bfa641a369bb40b8e7a7cded2bf4ef0664a4cc","after":"12a9c2086388bd350bc2fba6923ffeaa1540627d","ref":"refs/heads/gh-pages","pushedAt":"2024-05-28T18:01:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: 2bd23c15de0bc8f4cda225153c6b70e80bce47d3","shortMessageHtmlLink":"deploy: 2bd23c1"}},{"before":"e8be456a2d3805e97cef207255d4116d02fa826b","after":"fbc2b34b43a8860bb2be8a38024b53ddb6523ffb","ref":"refs/heads/bs/updated_events","pushedAt":"2024-05-28T17:59:49.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Added typing","shortMessageHtmlLink":"Added typing"}},{"before":"f883838764c1365590ac078026bc9e9ac8959bb6","after":"2bd23c15de0bc8f4cda225153c6b70e80bce47d3","ref":"refs/heads/develop","pushedAt":"2024-05-28T17:56:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Fixed working time lost in click:element events (#7942)","shortMessageHtmlLink":"Fixed working time lost in click:element events (#7942)"}},{"before":"822e9b58644bbcf942f8e8faf4d9e36a4eb71c39","after":"9c02472ff9c6401d8d3660b486bc77d1b426749b","ref":"refs/heads/kl/data-processing","pushedAt":"2024-05-28T17:10:07.000Z","pushType":"push","commitsCount":18,"pusher":{"login":"klakhov","name":"Kirill Lakhov","path":"/klakhov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50956430?s=80&v=4"},"commit":{"message":"Merge branch 'develop' into kl/data-processing","shortMessageHtmlLink":"Merge branch 'develop' into kl/data-processing"}},{"before":"131677643dbe87deaad8b371c85d5b3af9e146c2","after":"822e9b58644bbcf942f8e8faf4d9e36a4eb71c39","ref":"refs/heads/kl/data-processing","pushedAt":"2024-05-28T17:02:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"klakhov","name":"Kirill Lakhov","path":"/klakhov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50956430?s=80&v=4"},"commit":{"message":"removed other code with importing","shortMessageHtmlLink":"removed other code with importing"}},{"before":"087a60438c30f2e3332494063e9475e90148e0e0","after":"21bfa641a369bb40b8e7a7cded2bf4ef0664a4cc","ref":"refs/heads/gh-pages","pushedAt":"2024-05-28T16:08:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: f883838764c1365590ac078026bc9e9ac8959bb6","shortMessageHtmlLink":"deploy: f883838"}},{"before":"aa0cdad94ccb75dcfb8250bedfea922d755280b7","after":null,"ref":"refs/heads/dependabot/pip/tests/python/requests-2.32.0","pushedAt":"2024-05-28T16:05:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"133674b487f20ce3619f352229161893ae14a5ad","ref":"refs/heads/dependabot/pip/tests/python/requests-2.32.2","pushedAt":"2024-05-28T16:05:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump requests from 2.31.0 to 2.32.2 in /tests/python\n\nBumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.2.\n- [Release notes](https://github.com/psf/requests/releases)\n- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)\n- [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.2)\n\n---\nupdated-dependencies:\n- dependency-name: requests\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump requests from 2.31.0 to 2.32.2 in /tests/python"}},{"before":"49b10ba50d94344f62dc0c86380f084d70e75b1e","after":"f883838764c1365590ac078026bc9e9ac8959bb6","ref":"refs/heads/develop","pushedAt":"2024-05-28T16:03:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"zhiltsov-max","name":"Maxim Zhiltsov","path":"/zhiltsov-max","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13832349?s=80&v=4"},"commit":{"message":"Fix dataset downloading (#7864)\n\n\r\n\r\n\r\n\r\n### Motivation and context\r\n\r\n\r\nThis PR addresses several problems:\r\n- when requesting a dataset download, it's possible to get the 500 error\r\nwith the message \"The result file does not exist in export cache\", which\r\nisn't expected for this request\r\n- when downloading the dataset the same error can be obtained if the\r\nfile is requested right before the cache expiration\r\n- there are several\r\n[TOCTOU](https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use)\r\nbugs related to dataset cache file existence checks\r\n- under some conditions, it's possible that the export job is never\r\nstarted\r\n- the finished RQ jobs were removed automatically on result reporting\r\n(after the client requested the result). This made it hard to debug\r\nproblems for admins, as the jobs were often removed already\r\n\r\nThis PR fixes the problems by the following:\r\n- introduced dataset cache file locking (via redis) during reading,\r\nwriting, and removal\r\n- the 500 error is changed to automatic reexporting attempt on export\r\nstatus request\r\n- the 500 error is changed to 404 when the file is not available for\r\ndownloading\r\n- the exported files are now have different names for each instance\r\nupdate time\r\n- the lifetime of the exported files is now automatically prolonged on\r\neach export request for the file (given the export is still valid)\r\n- the deferred export jobs are now checked to have ghost dependencies.\r\nIf so, the requested job is restarted\r\n- added several environment variables for configuration\r\n- finished RQ export jobs are not removed automatically on result\r\nretrieval. Now, they just use the export cache lifetime instead (should\r\nbe continued in another PR)\r\n\r\n### How has this been tested?\r\n\r\n\r\n### Checklist\r\n\r\n- [ ] I submit my changes into the `develop` branch\r\n- [ ] I have created a changelog fragment \r\n- [ ] I have updated the documentation accordingly\r\n- [ ] I have added tests to cover my changes\r\n- [ ] I have linked related issues (see [GitHub docs](\r\n\r\nhttps://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))\r\n- [ ] I have increased versions of npm packages if it is necessary\r\n\r\n([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning),\r\n\r\n[cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning),\r\n\r\n[cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning)\r\nand\r\n\r\n[cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning))\r\n\r\n### License\r\n\r\n- [ ] I submit _my code changes_ under the same [MIT License](\r\nhttps://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the\r\nproject.\r\n Feel free to contact the maintainers if that's a concern.\r\n\r\n\r\n\r\n## Summary by CodeRabbit\r\n\r\n- **New Features**\r\n- Improved reliability of file handling during export and cleanup\r\nprocesses.\r\n- Introduced new functionality for managing export cache locks and\r\ndirectories.\r\n\r\n- **Bug Fixes**\r\n- Addressed race conditions in concurrent export and cleanup operations.\r\n\r\n- **Dependencies**\r\n- Updated multiple packages to their latest versions for enhanced\r\nsecurity and performance:\r\n - `cryptography` to `42.0.7`\r\n - `django` to `4.2.13`\r\n - `django-health-check` to `3.18.2`\r\n - `freezegun` to `1.5.1`\r\n - `jinja2` to `3.1.4`\r\n - `limits` to `3.12.0`\r\n - `lxml` to `5.2.2`\r\n - `orjson` to `3.10.3`\r\n - Added `pottery` version `3.0.0`\r\n - Updated `tqdm` to `4.66.4`\r\n","shortMessageHtmlLink":"Fix dataset downloading (#7864)"}},{"before":"323ba444dd816e86440d449b1754d5810d9e9954","after":"e8be456a2d3805e97cef207255d4116d02fa826b","ref":"refs/heads/bs/updated_events","pushedAt":"2024-05-28T15:55:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Removed extra","shortMessageHtmlLink":"Removed extra"}},{"before":null,"after":"323ba444dd816e86440d449b1754d5810d9e9954","ref":"refs/heads/bs/updated_events","pushedAt":"2024-05-28T15:46:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Added last timestamp","shortMessageHtmlLink":"Added last timestamp"}},{"before":"8d5401c9084e453455394a18db16d3cf622d647d","after":"6fc3f6309d85a4d00910fa35df228238ca7e5247","ref":"refs/heads/zm/fix-dataset-downloading","pushedAt":"2024-05-28T14:35:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"zhiltsov-max","name":"Maxim Zhiltsov","path":"/zhiltsov-max","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13832349?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'origin/zm/fix-dataset-downloading' into zm/fix-dataset-downloading","shortMessageHtmlLink":"Merge remote-tracking branch 'origin/zm/fix-dataset-downloading' into…"}},{"before":"8e2d7a274f6ac3602c7fc47e688df17f9b7dae72","after":"a2787ca77aaac49408cb0c9b4f400db1f124ee96","ref":"refs/heads/bs/fixed_working_time","pushedAt":"2024-05-28T13:15:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bsekachev","name":"Boris Sekachev","path":"/bsekachev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/40690378?s=80&v=4"},"commit":{"message":"Adjusted classname search algorithm","shortMessageHtmlLink":"Adjusted classname search algorithm"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVjTCYwA","startCursor":null,"endCursor":null}},"title":"Activity · cvat-ai/cvat"}