Skip to content

Mbe 859 handle e2big in mirrord exec #3377

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

BigLullu
Copy link
Contributor

Added E2BIG error handling in mirrord cli, this means that
everytime the hosted process exits with E2BIG error, mirrord
panics and also shows an appropriate error

@BigLullu BigLullu requested a review from Razz4780 June 21, 2025 00:53
Copy link
Contributor

@Razz4780 Razz4780 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a suggestion for the error message ;)

@BigLullu BigLullu added this pull request to the merge queue Jun 28, 2025
Merged via the queue into metalbear-co:main with commit ada5eb5 Jun 28, 2025
18 checks passed
@BigLullu BigLullu deleted the mbe-859-handle-e2big-in-mirrord-exec branch June 28, 2025 13:42
t4lz added a commit that referenced this pull request Jul 3, 2025
* Add user-agent to version check (#3349)

* Add a badge for the community Slack to README (#3352)

* Automatically insert probes ports into http filter ports. (#3291)

* Automatically insert probes ports into http filter ports.

* less noisy comments

* better comments

* fmt

* dont log on setup

* more mut

* clippy

* some unit tests for add probes

* better name for fn

* fix test

* fix tests and add docs to config

* 🇵🇱

* changelog

* clippy tests

* schema

* medschool

* default

Co-authored-by: Michał Smolarek <[email protected]>

* no mut in pf | ports from env

* clippy

* add info log for ports

* Move message to messages.rs

* less mut

* revert to changing config in setup

* revert to mut in port_forward

* remove const

---------

Co-authored-by: Michał Smolarek <[email protected]>

* Fix sqs tests (#3353)

* m_staging

* Added regex test case (#3348)

* wth is mirrord-mcp?

* Comment out the regex case

* Improve handling AWS env in test

* Exclude agent from mesh (#3356)

* Allow excluding agent's port from mesh proxy

* Changelog

* lint

* Do with abstraction

* Change so SafeIPTables is always loaded

* Lint

* Ops

* Add Tests

* Update tests

* Ops

* Fixed

* Tiny?

* Ops

* Revert

* Ops?

* Tiny

* Add crude timeout to wait for agents to die

* Docs

* ?

* Temp ignore

* Damn

* Revert

---------

Co-authored-by: Yuan Lyu <[email protected]>

* 3.144.0 (#3357)

* Reduce sniffer memory usage, handle OOM (#3359)

* Update to newer rawsocket

* Changelog

* Pass user git branch to operator for Jira app integration (#3361)

* Pass git branch to operator connection request params

* Obtain current branch name from env or via git command

* Add changelog

* Apply suggestions and fix lint

* Trim output

Co-authored-by: Michał Smolarek <[email protected]>

---------

Co-authored-by: Michał Smolarek <[email protected]>

* namespaced mirrrod profile (#3323)

* Fetch and apply namespaced mirorrd profile

* Handle profile and target namespace

* Namespaced profile integration test

* Changelog

* Fix build

* Misc adjustments

* Merge tests

* mirrord action that triggers operator e2e workflow on release PR. (#3209)

* mirrord action that triggers operator e2e workflow on release PR.

* may be able to trigger without merging

* dont skip if not release

* potentially fix error

* second try

* octokit is this how it works

* no import outside a module

* is this the correct import

* is this the right one without esm

* does this action solve it

* forked action

* good-tal says we can use main, since theres no v3

* token pat

* run on pr review

* sync and trigger to branch

* dont skip

* Add missing comma.

* Run main branch of operator, trigger on approved or manual.

* Only when merged or manual.

* only on workflow_dispatch

* changelog

* Fix duplicated http_filter_ports and not having the default 80,8080. (#3367)

* Fix duplicated http_filter_ports and not having the default 80,8080.

* changelog

* fix tests

* 3.145.0 (#3366)

* add mirrord dump command (#3376)

* Add new command - mirrord dump -p PORT -t TARGET to get incoming traffic dump of target

* actual code

* remove ai fart

* ai smell

* Automatically add config for user when we detect it's `mirrord container docker` in wsl. (#3362)

* wsl change config by default

* only for docker

* improve docs

* schema

* better name for function

Co-authored-by: Michał Smolarek <[email protected]>

* the hate

Co-authored-by: Michał Smolarek <[email protected]>

* fix imports

* changelog

---------

Co-authored-by: Michał Smolarek <[email protected]>

* Remove Discord, only Slack (#3380)

* Priority class name for targetless agent pod (#3374)

* Add agent config

* Add priority class name in kube agent api

* e2e test

* Changelog

* unit test

* Remove env var override

* Misc doc adjustments

* 3.146.0 (#3383)

* 3.146.0

* Changelog fix

* Fix operator e2e test (#3382)

* Fix operator e2e test

* Changelog

* Lint

* Namespaced profile config doc (#3385)

* mirrord now extracts layer to temp_dir()/mirrord to allow easier whitelisting with Carbon Black (#3386)

* MBE-1024 mirrord config  json parsing on extension-less file (#3389)

* default extension-less config file to json parsing

* fix to handle None extension (not empty str)

* Apply suggestions from code review

* towncrier doc

* fmt

* some more fmt 🤷

* adjusted solution to @0x00A5 suggestion

---------

Co-authored-by: Graf <[email protected]>

* Add SNS flag to queue registry CRD (#3391)

* add field to registry

* changelog

* add new field to tests

* CR: typo

* 3.147.0 (#3395)

* 3.147.0

* ..

* Release script (#3363)

* Release script

* Support flexible remote

* Remove select remote

* git add specific paths

* Mbe 829 issue a warning when an http filter is used with copy target (#3381)

* Add warning when use of copy target and HTTP filter cause HTTP requests to be discarded

* Add towncrier file

* Async copy target creation (#3384)

* Async copy target creation

* Progress fix

* Added startup probe to E2E HTTP server containers (#3397)

* Added startup probe to E2E HTTP server containers

* TCP probe?

* Fixed spec

* Startup

* Filter images that can handle the probe

* Friday, heh?

* yeah

* Mbe 892 make httptcp data cheaply cloneable in mirrord protocol (#3365)

* - Introduces Payload struct to encapsulate byte data.
- Implements traits: Serialize, Deserialize, Encode, and Decode to be usable by protocol

* Replaces Vec<u8> with Payload across the codebase for zero copy message handling.

* fmt adjustment

* added towncrier file

* fixed towncrier file

* fixed unit test

* added doc for Payload struct

* protocol version bump

* removed some unused lifetimes in payload.rs

* cargo.lock update because of the protocol version bump

* Fixed all remaining broken tests and extended usage of new payload apy across the codebase

* called fmt on prj

* refactored Payload struct in order to reduce api surface as possible + fixed towncrier file

* fixed an attempt to move a value using a ref

* fixed test and removed an unused import

* fmt on files

* removed IntoPayload trait, now the Payload is built using the From implementation

* fixed `StreamingBody` initialization to use `Payload::from` instead of `Vec<u8>::into`

* removed unused `extern crate core` from `intproxy` and `vpn` crates

* Mbe 859 handle e2big in mirrord exec (#3377)

* Handle E2BIG error for oversized environment variables in CLI.

* Add changelog entry for E2BIG error handling in CLI

* Use fully qualified path for `Errno::E2BIG`

* Simplify `Errno::E2BIG` comparison in CLI, removed useless if let block

* Refactor E2BIG error for improved clarity and error messaging. Correction in towncrier file msg

* fmt

* fix install script (#3399)

* Make outgoing network docs clearer (#3396)

* 3.148.0 (#3401)

* merge fixes

---------

Co-authored-by: Aviram Hassan <[email protected]>
Co-authored-by: Gemma <[email protected]>
Co-authored-by: meowjesty <[email protected]>
Co-authored-by: Michał Smolarek <[email protected]>
Co-authored-by: Dmitry Dodzin <[email protected]>
Co-authored-by: Yuan Lyu <[email protected]>
Co-authored-by: Daniel Graf <[email protected]>
Co-authored-by: Graf <[email protected]>
Co-authored-by: Lucio Gabriele Pisanello <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Jul 11, 2025
* m_staging

* Added regex test case (#3348)

* Add SQS splitting test case with fallback value with json object (#3351)

* Add test case with fallback value with json object

* small fix, still not working

* patch file for convinience

* correct client config

* CR: delete patch file

* Merge main to m_staging (#3358)

* Add user-agent to version check (#3349)

* Add a badge for the community Slack to README (#3352)

* Automatically insert probes ports into http filter ports. (#3291)

* Automatically insert probes ports into http filter ports.

* less noisy comments

* better comments

* fmt

* dont log on setup

* more mut

* clippy

* some unit tests for add probes

* better name for fn

* fix test

* fix tests and add docs to config

* 🇵🇱

* changelog

* clippy tests

* schema

* medschool

* default

Co-authored-by: Michał Smolarek <[email protected]>

* no mut in pf | ports from env

* clippy

* add info log for ports

* Move message to messages.rs

* less mut

* revert to changing config in setup

* revert to mut in port_forward

* remove const

---------

Co-authored-by: Michał Smolarek <[email protected]>

* Fix sqs tests (#3353)

* m_staging

* Added regex test case (#3348)

* wth is mirrord-mcp?

* Comment out the regex case

* Improve handling AWS env in test

* Exclude agent from mesh (#3356)

* Allow excluding agent's port from mesh proxy

* Changelog

* lint

* Do with abstraction

* Change so SafeIPTables is always loaded

* Lint

* Ops

* Add Tests

* Update tests

* Ops

* Fixed

* Tiny?

* Ops

* Revert

* Ops?

* Tiny

* Add crude timeout to wait for agents to die

* Docs

* ?

* Temp ignore

* Damn

* Revert

---------

Co-authored-by: Yuan Lyu <[email protected]>

* 3.144.0 (#3357)

* Changelog

---------

Co-authored-by: Aviram Hassan <[email protected]>
Co-authored-by: Gemma <[email protected]>
Co-authored-by: meowjesty <[email protected]>
Co-authored-by: Dmitry Dodzin <[email protected]>
Co-authored-by: Yuan Lyu <[email protected]>

* E2E test for asterisk in client config together with SQS json in fallback field (#3360)

* test with asterisk

* changelog

* Merge main into m_staging (#3393)

* Add user-agent to version check (#3349)

* Add a badge for the community Slack to README (#3352)

* Automatically insert probes ports into http filter ports. (#3291)

* Automatically insert probes ports into http filter ports.

* less noisy comments

* better comments

* fmt

* dont log on setup

* more mut

* clippy

* some unit tests for add probes

* better name for fn

* fix test

* fix tests and add docs to config

* 🇵🇱

* changelog

* clippy tests

* schema

* medschool

* default

Co-authored-by: Michał Smolarek <[email protected]>

* no mut in pf | ports from env

* clippy

* add info log for ports

* Move message to messages.rs

* less mut

* revert to changing config in setup

* revert to mut in port_forward

* remove const

---------

Co-authored-by: Michał Smolarek <[email protected]>

* Fix sqs tests (#3353)

* m_staging

* Added regex test case (#3348)

* wth is mirrord-mcp?

* Comment out the regex case

* Improve handling AWS env in test

* Exclude agent from mesh (#3356)

* Allow excluding agent's port from mesh proxy

* Changelog

* lint

* Do with abstraction

* Change so SafeIPTables is always loaded

* Lint

* Ops

* Add Tests

* Update tests

* Ops

* Fixed

* Tiny?

* Ops

* Revert

* Ops?

* Tiny

* Add crude timeout to wait for agents to die

* Docs

* ?

* Temp ignore

* Damn

* Revert

---------

Co-authored-by: Yuan Lyu <[email protected]>

* 3.144.0 (#3357)

* Reduce sniffer memory usage, handle OOM (#3359)

* Update to newer rawsocket

* Changelog

* Pass user git branch to operator for Jira app integration (#3361)

* Pass git branch to operator connection request params

* Obtain current branch name from env or via git command

* Add changelog

* Apply suggestions and fix lint

* Trim output

Co-authored-by: Michał Smolarek <[email protected]>

---------

Co-authored-by: Michał Smolarek <[email protected]>

* namespaced mirrrod profile (#3323)

* Fetch and apply namespaced mirorrd profile

* Handle profile and target namespace

* Namespaced profile integration test

* Changelog

* Fix build

* Misc adjustments

* Merge tests

* mirrord action that triggers operator e2e workflow on release PR. (#3209)

* mirrord action that triggers operator e2e workflow on release PR.

* may be able to trigger without merging

* dont skip if not release

* potentially fix error

* second try

* octokit is this how it works

* no import outside a module

* is this the correct import

* is this the right one without esm

* does this action solve it

* forked action

* good-tal says we can use main, since theres no v3

* token pat

* run on pr review

* sync and trigger to branch

* dont skip

* Add missing comma.

* Run main branch of operator, trigger on approved or manual.

* Only when merged or manual.

* only on workflow_dispatch

* changelog

* Fix duplicated http_filter_ports and not having the default 80,8080. (#3367)

* Fix duplicated http_filter_ports and not having the default 80,8080.

* changelog

* fix tests

* 3.145.0 (#3366)

* add mirrord dump command (#3376)

* Add new command - mirrord dump -p PORT -t TARGET to get incoming traffic dump of target

* actual code

* remove ai fart

* ai smell

* Automatically add config for user when we detect it's `mirrord container docker` in wsl. (#3362)

* wsl change config by default

* only for docker

* improve docs

* schema

* better name for function

Co-authored-by: Michał Smolarek <[email protected]>

* the hate

Co-authored-by: Michał Smolarek <[email protected]>

* fix imports

* changelog

---------

Co-authored-by: Michał Smolarek <[email protected]>

* Remove Discord, only Slack (#3380)

* Priority class name for targetless agent pod (#3374)

* Add agent config

* Add priority class name in kube agent api

* e2e test

* Changelog

* unit test

* Remove env var override

* Misc doc adjustments

* 3.146.0 (#3383)

* 3.146.0

* Changelog fix

* Fix operator e2e test (#3382)

* Fix operator e2e test

* Changelog

* Lint

* Namespaced profile config doc (#3385)

* mirrord now extracts layer to temp_dir()/mirrord to allow easier whitelisting with Carbon Black (#3386)

---------

Co-authored-by: Aviram Hassan <[email protected]>
Co-authored-by: Gemma <[email protected]>
Co-authored-by: meowjesty <[email protected]>
Co-authored-by: Michał Smolarek <[email protected]>
Co-authored-by: Dmitry Dodzin <[email protected]>
Co-authored-by: Yuan Lyu <[email protected]>

* E2E test for SQS splitting with env vars from config maps (#3372)

* test sqs with config maps

* Merge main into m_staging (#3404)

* Add user-agent to version check (#3349)

* Add a badge for the community Slack to README (#3352)

* Automatically insert probes ports into http filter ports. (#3291)

* Automatically insert probes ports into http filter ports.

* less noisy comments

* better comments

* fmt

* dont log on setup

* more mut

* clippy

* some unit tests for add probes

* better name for fn

* fix test

* fix tests and add docs to config

* 🇵🇱

* changelog

* clippy tests

* schema

* medschool

* default

Co-authored-by: Michał Smolarek <[email protected]>

* no mut in pf | ports from env

* clippy

* add info log for ports

* Move message to messages.rs

* less mut

* revert to changing config in setup

* revert to mut in port_forward

* remove const

---------

Co-authored-by: Michał Smolarek <[email protected]>

* Fix sqs tests (#3353)

* m_staging

* Added regex test case (#3348)

* wth is mirrord-mcp?

* Comment out the regex case

* Improve handling AWS env in test

* Exclude agent from mesh (#3356)

* Allow excluding agent's port from mesh proxy

* Changelog

* lint

* Do with abstraction

* Change so SafeIPTables is always loaded

* Lint

* Ops

* Add Tests

* Update tests

* Ops

* Fixed

* Tiny?

* Ops

* Revert

* Ops?

* Tiny

* Add crude timeout to wait for agents to die

* Docs

* ?

* Temp ignore

* Damn

* Revert

---------

Co-authored-by: Yuan Lyu <[email protected]>

* 3.144.0 (#3357)

* Reduce sniffer memory usage, handle OOM (#3359)

* Update to newer rawsocket

* Changelog

* Pass user git branch to operator for Jira app integration (#3361)

* Pass git branch to operator connection request params

* Obtain current branch name from env or via git command

* Add changelog

* Apply suggestions and fix lint

* Trim output

Co-authored-by: Michał Smolarek <[email protected]>

---------

Co-authored-by: Michał Smolarek <[email protected]>

* namespaced mirrrod profile (#3323)

* Fetch and apply namespaced mirorrd profile

* Handle profile and target namespace

* Namespaced profile integration test

* Changelog

* Fix build

* Misc adjustments

* Merge tests

* mirrord action that triggers operator e2e workflow on release PR. (#3209)

* mirrord action that triggers operator e2e workflow on release PR.

* may be able to trigger without merging

* dont skip if not release

* potentially fix error

* second try

* octokit is this how it works

* no import outside a module

* is this the correct import

* is this the right one without esm

* does this action solve it

* forked action

* good-tal says we can use main, since theres no v3

* token pat

* run on pr review

* sync and trigger to branch

* dont skip

* Add missing comma.

* Run main branch of operator, trigger on approved or manual.

* Only when merged or manual.

* only on workflow_dispatch

* changelog

* Fix duplicated http_filter_ports and not having the default 80,8080. (#3367)

* Fix duplicated http_filter_ports and not having the default 80,8080.

* changelog

* fix tests

* 3.145.0 (#3366)

* add mirrord dump command (#3376)

* Add new command - mirrord dump -p PORT -t TARGET to get incoming traffic dump of target

* actual code

* remove ai fart

* ai smell

* Automatically add config for user when we detect it's `mirrord container docker` in wsl. (#3362)

* wsl change config by default

* only for docker

* improve docs

* schema

* better name for function

Co-authored-by: Michał Smolarek <[email protected]>

* the hate

Co-authored-by: Michał Smolarek <[email protected]>

* fix imports

* changelog

---------

Co-authored-by: Michał Smolarek <[email protected]>

* Remove Discord, only Slack (#3380)

* Priority class name for targetless agent pod (#3374)

* Add agent config

* Add priority class name in kube agent api

* e2e test

* Changelog

* unit test

* Remove env var override

* Misc doc adjustments

* 3.146.0 (#3383)

* 3.146.0

* Changelog fix

* Fix operator e2e test (#3382)

* Fix operator e2e test

* Changelog

* Lint

* Namespaced profile config doc (#3385)

* mirrord now extracts layer to temp_dir()/mirrord to allow easier whitelisting with Carbon Black (#3386)

* MBE-1024 mirrord config  json parsing on extension-less file (#3389)

* default extension-less config file to json parsing

* fix to handle None extension (not empty str)

* Apply suggestions from code review

* towncrier doc

* fmt

* some more fmt 🤷

* adjusted solution to @0x00A5 suggestion

---------

Co-authored-by: Graf <[email protected]>

* Add SNS flag to queue registry CRD (#3391)

* add field to registry

* changelog

* add new field to tests

* CR: typo

* 3.147.0 (#3395)

* 3.147.0

* ..

* Release script (#3363)

* Release script

* Support flexible remote

* Remove select remote

* git add specific paths

* Mbe 829 issue a warning when an http filter is used with copy target (#3381)

* Add warning when use of copy target and HTTP filter cause HTTP requests to be discarded

* Add towncrier file

* Async copy target creation (#3384)

* Async copy target creation

* Progress fix

* Added startup probe to E2E HTTP server containers (#3397)

* Added startup probe to E2E HTTP server containers

* TCP probe?

* Fixed spec

* Startup

* Filter images that can handle the probe

* Friday, heh?

* yeah

* Mbe 892 make httptcp data cheaply cloneable in mirrord protocol (#3365)

* - Introduces Payload struct to encapsulate byte data.
- Implements traits: Serialize, Deserialize, Encode, and Decode to be usable by protocol

* Replaces Vec<u8> with Payload across the codebase for zero copy message handling.

* fmt adjustment

* added towncrier file

* fixed towncrier file

* fixed unit test

* added doc for Payload struct

* protocol version bump

* removed some unused lifetimes in payload.rs

* cargo.lock update because of the protocol version bump

* Fixed all remaining broken tests and extended usage of new payload apy across the codebase

* called fmt on prj

* refactored Payload struct in order to reduce api surface as possible + fixed towncrier file

* fixed an attempt to move a value using a ref

* fixed test and removed an unused import

* fmt on files

* removed IntoPayload trait, now the Payload is built using the From implementation

* fixed `StreamingBody` initialization to use `Payload::from` instead of `Vec<u8>::into`

* removed unused `extern crate core` from `intproxy` and `vpn` crates

* Mbe 859 handle e2big in mirrord exec (#3377)

* Handle E2BIG error for oversized environment variables in CLI.

* Add changelog entry for E2BIG error handling in CLI

* Use fully qualified path for `Errno::E2BIG`

* Simplify `Errno::E2BIG` comparison in CLI, removed useless if let block

* Refactor E2BIG error for improved clarity and error messaging. Correction in towncrier file msg

* fmt

* fix install script (#3399)

* Make outgoing network docs clearer (#3396)

* 3.148.0 (#3401)

* merge fixes

---------

Co-authored-by: Aviram Hassan <[email protected]>
Co-authored-by: Gemma <[email protected]>
Co-authored-by: meowjesty <[email protected]>
Co-authored-by: Michał Smolarek <[email protected]>
Co-authored-by: Dmitry Dodzin <[email protected]>
Co-authored-by: Yuan Lyu <[email protected]>
Co-authored-by: Daniel Graf <[email protected]>
Co-authored-by: Graf <[email protected]>
Co-authored-by: Lucio Gabriele Pisanello <[email protected]>

* Small improvements to SQS E2E tests (#3411)

* increase timeouts, add prints

* Added missing changelog file

Those tests were not added in this PR, but they were added without
a changelog entry (oops), and this PR needs a changelog entry to
pass CI, so two birds.

* fix merge

* Removed sleeps, sending messages in batches (#3415)

* Removed sleeps, sending messages in batches

* Set message id

* Specify exact number of pods

* Extra debug prints when checing queue count

* Print all seen pods

* Print all observed sessions

* Better cluster state debug

* Retry in sqs printer

* Clear managed fields

* It was not a good idea

* Extended timeout on reaching stable state after workload restart

* Delete changelog.d/+profile-config-doc.changed.md

* Delete changelog.d/+merge-main.internal.md

* Delete changelog.d/3373.changed.md

* Delete changelog.d/+operator-e2e-test.internal.md

---------

Co-authored-by: t4lz <[email protected]>
Co-authored-by: Aviram Hassan <[email protected]>
Co-authored-by: Gemma <[email protected]>
Co-authored-by: meowjesty <[email protected]>
Co-authored-by: Dmitry Dodzin <[email protected]>
Co-authored-by: Yuan Lyu <[email protected]>
Co-authored-by: Daniel Graf <[email protected]>
Co-authored-by: Graf <[email protected]>
Co-authored-by: Lucio Gabriele Pisanello <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants