You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When apps are staged using the V3 API they are staged with only 1GB of memory, even if a higher limit is configured in the app manifest.
By contrast, apps staged via the V2 API are staged with however much memory is specified in their manifest (or 1GB, whichever is greater.)
Context
One of our tenants switched to the V7 CLI and discovered their app would no longer stage. It hit an Out Of Memory error when staging. But it still worked with the V6 CLI.
An additional issue: I tried working around that behaviour by increasing the platform-wide dea_next.staging_memory_limit_mb property, but it only worked the first time a new V3 app was staged.
I tried writing a failing test to demonstrate this but I don't understand the codebase enough to do that.
Steps to Reproduce
We will show that an app requiring lots of memory to stage cannot be staged with V3 but can with V2:
Add tensorflow==2.3.0 to its requirements.txt file. Also increase the memory limit in the manifest (e.g., to 8GB.)
Push the app again. It should fail with Out Of Memory error when staging.
Try pushing the app with the V6 CLI (using V2 API endpoints.) It stages fine.
By looking at the cgroups when the app was staging I could see the memory limit was only 1GB when using the V7 CLI, even though the manifest specified a lot more memory than that.
Expected result
The behaviour should match between the V2 and V3 APIs. Unless there's been a drastic decision to cap staging memory to 1GB, V3 should match the V2 behaviour and allow the manifest to configure more than 1GB of staging memory.
Current result
Apps requiring more than 1GB of memory for staging cannot be pushed with the V3 API. This causes problems for some of our users.
Possible Fix
VCAP::CloudController::V2::AppStage configures staging_memory_in_mb and staging_disk_in_mb onto BuildCreateMessage. This is then passed into a LifecycleProvider and then on to BuildCreate.
By contrast the V3 code doesn't appear to configure staging_memory_in_mb or staging_disk_in_mb anywhere. My best guess is that this issue will be fixed by configuring those properties like the V2 code did.
The text was updated successfully, but these errors were encountered:
Issue
When apps are staged using the V3 API they are staged with only 1GB of memory, even if a higher limit is configured in the app manifest.
By contrast, apps staged via the V2 API are staged with however much memory is specified in their manifest (or 1GB, whichever is greater.)
Context
One of our tenants switched to the V7 CLI and discovered their app would no longer stage. It hit an Out Of Memory error when staging. But it still worked with the V6 CLI.
An additional issue: I tried working around that behaviour by increasing the platform-wide
dea_next.staging_memory_limit_mb
property, but it only worked the first time a new V3 app was staged.I tried writing a failing test to demonstrate this but I don't understand the codebase enough to do that.
Steps to Reproduce
We will show that an app requiring lots of memory to stage cannot be staged with V3 but can with V2:
tensorflow==2.3.0
to itsrequirements.txt
file. Also increase the memory limit in the manifest (e.g., to 8GB.)By looking at the cgroups when the app was staging I could see the memory limit was only 1GB when using the V7 CLI, even though the manifest specified a lot more memory than that.
Expected result
The behaviour should match between the V2 and V3 APIs. Unless there's been a drastic decision to cap staging memory to 1GB, V3 should match the V2 behaviour and allow the manifest to configure more than 1GB of staging memory.
Current result
Apps requiring more than 1GB of memory for staging cannot be pushed with the V3 API. This causes problems for some of our users.
Possible Fix
VCAP::CloudController::V2::AppStage
configuresstaging_memory_in_mb
andstaging_disk_in_mb
ontoBuildCreateMessage
. This is then passed into aLifecycleProvider
and then on toBuildCreate
.By contrast the V3 code doesn't appear to configure
staging_memory_in_mb
orstaging_disk_in_mb
anywhere. My best guess is that this issue will be fixed by configuring those properties like the V2 code did.The text was updated successfully, but these errors were encountered: