)]}'
{
  "commit": "a9267994130fdafe5fe513a2560055b6ec921c2d",
  "tree": "aef7520a90e8c1eaebc51690fe018c9531a6d8c2",
  "parents": [
    "bd809515e6ca155b4bdcf0b93e6ba6b0d6276663"
  ],
  "author": {
    "name": "waterWang",
    "email": "waterWang@users.noreply.github.com",
    "time": "Tue Aug 25 18:30:47 2026 +0800"
  },
  "committer": {
    "name": "Daan Hoogland",
    "email": "dahn@apache.org",
    "time": "Tue Oct 20 15:18:38 2026 +0200"
  },
  "message": "Fix SSVM entity download URL creation: ensure userdata base dir exists and is writable by www-data\n\nWhen handleCreateEntityURLCommand runs on the SSVM it builds the\ndownload URL by creating /var/www/html/userdata/\u003cuuid\u003e/ as the\nwww-data user (su www-data -c \"mkdir -p ...\"). On stock systemvm\ntemplates the /var/www/html/userdata base directory does not exist\nand /var/www/html is not writable by www-data, so the mkdir fails\nwith \"Permission denied\" and getDiagnosticsData / extractVolume /\nextractTemplate async jobs error out with code 530 and no download\nURL is produced.\n\nFix: create the base extract directory and set its ownership to\nwww-data before dropping privileges to create the per-entity\nsubdirectory. This makes the SSVM self-healing on first use and\nmatches the directory layout expected by the Apache docroot.\n\nReferences #13959",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aacca9926f7d959c038d5acbe89871995fed86ba",
      "old_mode": 33188,
      "old_path": "services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/template/UploadManagerImpl.java",
      "new_id": "8bfd120b1f835f26f5b24e414849c59251eb853a",
      "new_mode": 33188,
      "new_path": "services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/template/UploadManagerImpl.java"
    }
  ]
}
