Skip to content
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

exceptions: evaluate needed exceptions in upstream #176

Open
junr03 opened this issue Jun 25, 2019 · 5 comments
Open

exceptions: evaluate needed exceptions in upstream #176

junr03 opened this issue Jun 25, 2019 · 5 comments

Comments

@junr03
Copy link
Member

junr03 commented Jun 25, 2019

This is largely a more speculative issue. According to analysis of sections within compilation units, most source files end up having a not insignificant size proportion in exception tables. @Reflejo recommended analyzing cases where exceptions might lead to irrecoverable conditions.

Size Win

per #17 (comment)

On the stripped binary there is also at least 1MB of exception tables. I don't know how many of them are exceptions we recover from vs we terminate. So we might investigate adding the nothrow specifier on methods so the except table is not created (not sure how we'll do this in an elegant way only for mobile, nor how we use exceptions, just throwing this here as a thought)

@mattklein123
Copy link
Member

FWIW I would just skip tracking/looking into this. Every exception we throw today needs to be caught somewhere and I don't think we are going to reasonably be able to do anything major here. I think our time is better spent elsewhere.

@Reflejo
Copy link
Contributor

Reflejo commented Jun 26, 2019

Sounds like a dead end then. So if that's the case I'm ok not tracking/working on it

@junr03 junr03 added this to the Backlog milestone Mar 18, 2020
@jpsim jpsim closed this as completed Dec 6, 2022
@alyssawilk
Copy link
Contributor

alyssawilk commented Mar 14, 2023

coming back to this (thanks @Reflejo for the magic -fno-unwind-tables -fno-exceptions) it's still a pretty big gain to build without exceptions. From cce99bf8b0

-rwxr-x--- 1 alyssar primarygroup 18953104 Mar 14 09:40 bazel-bin/test/performance/test_binary_size_stripped
-rwxr-x--- 1 alyssar primarygroup 19M Mar 14 09:40 bazel-bin/test/performance/test_binary_size_stripped

-rwxr-x--- 1 alyssar primarygroup 17513048 Mar 14 09:37 bazel-bin/test/performance/test_binary_size_stripped
-rwxr-x--- 1 alyssar primarygroup 17M Mar 14 09:37 bazel-bin/test/performance/test_binary_size_stripped

@alyssawilk alyssawilk reopened this Mar 14, 2023
@alyssawilk
Copy link
Contributor

In my working PR I largely replace throw with throwEnvoyExceptionOrPanic which would be defined to PANIC for E-M

on start-up we already catch all exceptions and replace with panic. sans-XDS, any other exceptions would be on the data plane which is disallowed and theoretically doesn't happen.

The big gotcha here, is that jbeder_yaml_cpp also has exceptions which means loadFromYaml and friends don't work. Google was already hoping to move away from yaml for E-M since udp doens't support yaml loading, so I'd say that's a prereq for this reduction.

@alyssawilk alyssawilk self-assigned this May 10, 2023
alyssawilk added a commit to envoyproxy/envoy that referenced this issue May 11, 2023
Risk Level: low
Testing: n/a
Docs Changes: n/a
Release Notes: n/a
part of envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
wbpcode pushed a commit to wbpcode/envoy that referenced this issue May 16, 2023
Risk Level: low
Testing: n/a
Docs Changes: n/a
Release Notes: n/a
part of envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
@alyssawilk
Copy link
Contributor

alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 6, 2023
…7754)

Risk Level: low
Testing: existing tests
Docs Changes: n/a
Release Notes: n/a
Part of envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 13, 2023
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:

envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue May 29, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue May 30, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to alyssawilk/envoy that referenced this issue May 30, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to alyssawilk/envoy that referenced this issue May 30, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to alyssawilk/envoy that referenced this issue May 30, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to alyssawilk/envoy that referenced this issue May 30, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to alyssawilk/envoy that referenced this issue May 30, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to alyssawilk/envoy that referenced this issue May 30, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to alyssawilk/envoy that referenced this issue May 31, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue May 31, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 4, 2024
util: removing exceptions

Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 5, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 5, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 10, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 12, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
alyssawilk added a commit to envoyproxy/envoy that referenced this issue Jun 26, 2024
Risk Level: low
Testing: updated tests
Docs Changes: n/a
Release Notes: n/a
envoyproxy/envoy-mobile#176

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants