Title: Management server hangs when js.interpretation.enabled=true · Issue #12523 · apache/cloudstack · GitHub
Open Graph Title: Management server hangs when js.interpretation.enabled=true · Issue #12523 · apache/cloudstack
X Title: Management server hangs when js.interpretation.enabled=true · Issue #12523 · apache/cloudstack
Description: problem Enabling the global setting js.interpretation.enabled=true causes the CloudStack management server to hang during startup at the module loading phase. This prevents using the secondary storage selector feature (createSecondarySto...
Open Graph Description: problem Enabling the global setting js.interpretation.enabled=true causes the CloudStack management server to hang during startup at the module loading phase. This prevents using the secondary stor...
X Description: problem Enabling the global setting js.interpretation.enabled=true causes the CloudStack management server to hang during startup at the module loading phase. This prevents using the secondary stor...
Opengraph URL: https://github.com/apache/cloudstack/issues/12523
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Management server hangs when js.interpretation.enabled=true","articleBody":"### problem\n\nEnabling the global setting `js.interpretation.enabled=true` causes the CloudStack management server to hang during startup at the module loading phase. This prevents using the secondary storage selector feature (`createSecondaryStorageSelector`, `updateSecondaryStorageSelector` APIs).\n\n\n### versions\n\n- 4.20 branch (4.20.3.0-SNAPSHOT) - **AFFECTED** - needs fix before 4.20.3.0 release\n- 4.20.2.0 (released) - Not affected (commit not present, setting does not exist, APIs work unconditionally)\n\nIntroduced by commit `03a4b9f` (\"server,utils: improve js interpretation functionality\") merged on Oct 16, 2025 into the 4.20 branch.\n\nThe commit:\n1. Added `js.interpretation.enabled` as a hidden ConfigKey (default: false)\n2. Made `CreateSecondaryStorageSelectorCmd` and `UpdateSecondaryStorageSelectorCmd` conditional on this setting\n3. Made significant changes to `JsInterpreter.java` (security hardening, daemon workers, etc.)\n\nWhen the setting is enabled, something in the initialization causes the MS server to hang.\n\n### The steps to reproduce the bug\n\n1. Deploy CloudStack 4.20.3.0\n2. Verify server is running:\n```\n curl -s \"http://localhost:8080/client/api?command=listZones\" | head -5\n```\n3. Enable the js.interpretation.enabled setting:\n```\n mysql -u root -p cloud -e \"UPDATE configuration SET value='true' WHERE name='js.interpretation.enabled';\"\n```\n4. Restart management server:\n```\n systemctl restart cloudstack-management\n```\n5. Wait 3+ minutes and check server status:\n```\n curl -s \"http://localhost:8080/client/api?command=listZones\" | head -5\n```\n\n### Expected Result\nServer starts successfully and `createSecondaryStorageSelector` API is available.\n\n### Actual Result\nServer returns 503 Service Unavailable. Log shows server stuck at module loading phase:\n```\n2026-01-26 19:53:01,937 DEBUG [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] (main:[]) (logid:) Trying to obtain module [redfish] context.\n2026-01-26 19:53:01,937 WARN [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] (main:[]) (logid:) Application context not found for module definition [redfish]\n```\n\nLog timestamp remains static while current time progresses - server is hung.\n\n#### Evidence\n\n**4.20 branch build (shapeblue18197) - Bug present:**\n```\n[root@ref-trl-10730-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# rpm -qa | grep cloudstack\ncloudstack-common-4.20.3.0-shapeblue18197.noarch\ncloudstack-management-4.20.3.0-shapeblue18197.noarch\n\n[root@ref-trl-10730-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# mysql -u root -p cloud -e \"UPDATE configuration SET value='true' WHERE name='js.interpretation.enabled';\"\n[root@ref-trl-10730-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# systemctl restart cloudstack-management\n[root@ref-trl-10730-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# sleep 180\n[root@ref-trl-10730-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# curl -s \"http://localhost:8080/client/api?command=listZones\" | head -5\n\u003chtml\u003e\n\u003chead\u003e\n\u003cmeta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\"/\u003e\n\u003ctitle\u003eError 503 Service Unavailable\u003c/title\u003e\n\u003c/head\u003e\n```\n\n**4.20.2.0 released version (shapeblue17631) - Works correctly:**\n```\n[root@ref-trl-10714-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# rpm -qa | grep cloudstack\ncloudstack-common-4.20.2.0-shapeblue17631.noarch\ncloudstack-management-4.20.2.0-shapeblue17631.noarch\n\nmysql\u003e SELECT name, value FROM configuration WHERE name LIKE '%interpret%';\nEmpty set (0.00 sec)\n\n[root@ref-trl-10714-k-Mol9-rositsa-kyuchukova-mgmt1 ~]# cmk list apis 2\u003e/dev/null | grep -i \"name.*selector\"\n \"name\": \"createSecondaryStorageSelector\",\n \"name\": \"updateSecondaryStorageSelector\",\n \"name\": \"listSecondaryStorageSelectors\",\n \"name\": \"removeSecondaryStorageSelector\",\n```\n\n#### Impact\n- Secondary storage selector feature is unusable on current 4.20 branch\n- Quota tariff activation rules may also be affected (uses same JsInterpreter)\n- Blocks testing of PR #10957 and any other functionality that depends on this feature\n\n\n#### Related\n- Commit: https://github.com/apache/cloudstack/commit/03a4b9f\n- Blocks PR: #10957\n\n### What to do about it?\n\n_No response_","author":{"url":"https://github.com/RosiKyu","@type":"Person","name":"RosiKyu"},"datePublished":"2026-01-26T20:39:34.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":15},"url":"https://github.com/12523/cloudstack/issues/12523"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:92d1548f-9a4f-40bd-db1a-35af435cb999 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C410:C5A49:B6759A:F95686:6A4DE325 |
| html-safe-nonce | ef141fa2aca8330cf110bed7b23a7c57d6937fe434402196788f3b23b8bf9a0d |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNDEwOkM1QTQ5OkI2NzU5QTpGOTU2ODY6NkE0REUzMjUiLCJ2aXNpdG9yX2lkIjoiNDA5NDM0NDgyNzAxNjk2Mjg1MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 3405e4725033f80e1f686c073900f206f18068290e88fd95a7a849189cb797a5 |
| hovercard-subject-tag | issue:3857573688 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/apache/cloudstack/12523/issue_layout |
| twitter:image | https://opengraph.githubassets.com/80f611250c55fea9ce1ccc7098fcffdb160aeb53e744aae10e87ac692d94da8c/apache/cloudstack/issues/12523 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/80f611250c55fea9ce1ccc7098fcffdb160aeb53e744aae10e87ac692d94da8c/apache/cloudstack/issues/12523 |
| og:image:alt | problem Enabling the global setting js.interpretation.enabled=true causes the CloudStack management server to hang during startup at the module loading phase. This prevents using the secondary stor... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | RosiKyu |
| hostname | github.com |
| expected-hostname | github.com |
| None | 06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33 |
| turbo-cache-control | no-preview |
| go-import | github.com/apache/cloudstack git https://github.com/apache/cloudstack.git |
| octolytics-dimension-user_id | 47359 |
| octolytics-dimension-user_login | apache |
| octolytics-dimension-repository_id | 9759448 |
| octolytics-dimension-repository_nwo | apache/cloudstack |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 9759448 |
| octolytics-dimension-repository_network_root_nwo | apache/cloudstack |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width