Skip to content

OSError: [Errno 7] Argumento list too long: '/bin/sh' during Firewall rules upgrades #4903

@migldasilva

Description

@migldasilva

Describe the bug
I'm working with an AzureTRE environment with around 25 workspaces. During a new workspace deployment, the Firewall upgrade failed with the following error:

OSError: [Errno 7] Argumento list too long: '/bin/sh' 

The full message can be seen in the attached screenshot.

Image

After some debugging, I concluded that parameters sent to Porter, using --param network_rule_collections and --param rule_collections were too long. I mean, the Base64 encoded strings represent Rule collections and Application rule collections, were longer than the Linux image were able to handle.

This environment is based on AzureTRE 0.9.0, and Firewall shared service is version 1.1.7. However, comparing current Resource Processor version and the version we have deployed, the command seems to be based in the same approach; e.g., a single Porter upgrade command with all the parameters are created and launched.

Have you considered a different approach for updating Firewall rules?

I have tried to split the Porter upgrade command into 2 commands. One includes only --param network_rule_collections and the other includes only --param rule_collections. Preliminary tests went fine and I was able to unblock deployments, but I'm aware it's a mitigation.

Steps to reproduce

  1. Deploy lots of workspaces and lots of workspace services so that around 300 rules are created
  2. Firewall upgrade should fail due to too long list of parameters

Azure TRE release version (e.g. v0.14.0 or main):

Release version is v0.9.0

Deployed Azure TRE components - click the (i) in the UI:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions