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

Update to v1.30 #333

Merged
merged 31 commits into from
May 14, 2024
Merged

Update to v1.30 #333

merged 31 commits into from
May 14, 2024

Conversation

ashishb-solo
Copy link
Contributor

@ashishb-solo ashishb-solo commented May 2, 2024

Update envoy-gloo to use version 1.30.x of upstream envoy

The biggest change here is probably the update to C++20, which follows from this upstream commit.

A large amount of the changes come from navigating Envoy's labyrinth of context hierarchy. I figure that the easiest thing to do is just pass the full context object instead of passing portions of it into our objects. This allows us to keep our function signatures from having to change too much, and in my opinion, is a general best practice going forward as it seems that in the past, we had a habit of just passing more specific objects like context.scope() instead.

See here for an example, where we modify TransformationFilterConfig::TransformationFilterConfig to accept a Server::Configuration::FactoryContext& context argument instead of a scope argument. This allows us to retrieve other fields from the context, like context.serverFactoryContext() which is a new parameter that needs to be passed to MatcherCopy::Matcher::create (this eventually gets plumbed down into buildHeaderDataVector).

Another example of that is here, where we need to pass context.serverFactoryContext() as a new parameter into the StringMatcher constructor. In the process, dispatcher, runtime, and random were removed from AdvancedHttpHealthChecker::AdvancedHttpHealthChecker. And if any other functions from upstream Envoy also change in the future to require additional parameters from the context, those will be much easier to handle if we just always pass the full context object instead of extracting fields from it.


Statusor: removes more exceptions which decreases the size

Serverfactorycontext: Removing singletons

This was removed from upstream - see envoyproxy/envoy#32872
These flags are copied from upstream's .bazelrc. The most important one here is
the `-fsized-deallocation` which was required to get CEL to compile. The rest
may not be necessary, but since they changed in upstream from 1.29 to 1.30, I
think it might be a good idea to include them.
There were some details in regex that were changed upstream that we had to
incorporate
A few upstream Envoy functions that were being called in this library needed to
be passed contexts, which required plumbing that object through the call
hierarchy. Along the way, it seemed to appear that there were a few type
signatures that were possibly not completely correct, and those have been
adjusted to get things compiling successfully.
It seems that passing string arguments constructed with the `+` operator is not
allowed in ENVOY_STREAM_LOG, and possibly other macros as well. This was my
first encounter with this error, but there might be other instances lurking
elsewhere in the repository.
The signature of this abstract class method was changed upstream - this change
reflects the fix
@solo-changelog-bot
Copy link

Issues linked to changelog:
https://github.com/solo-io/envoy-gloo-ee/issues/768

Interesting lesson here - when calling `fmt::format`, we must use a constexpr,
since the formatting function provides compile-time type checking. Neat!
@ashishb-solo
Copy link
Contributor Author

ashishb-solo commented May 3, 2024

Current status: known segmentation fault in one of the inja transformer tests: (EDIT: this is fixed by 0058721)

user@9b2344d5ee3c:/build/envoy-gloo$ bazel test -c dbg //test/extensions/filters/http/transformation:inja_transformer_replace_test --test_output=errors
INFO: Invocation ID: 9f7edd5c-214d-4733-8beb-5b31aedba6a7
INFO: Build options --features and --fission have changed, discarding analysis cache.
INFO: Analyzed target //test/extensions/filters/http/transformation:inja_transformer_replace_test (0 packages loaded, 30584 targets configured).
INFO: Found 1 test target...
FAIL: //test/extensions/filters/http/transformation:inja_transformer_replace_test (see /home/user/.cache/bazel/_bazel_user/d93545a51a3afb97af0e2091d1c85371/execroot/envoy_gloo/bazel-out/k8-dbg/testlogs/test/extensions/filters/http/transformation/inja_transformer_replace_test/test.log)
INFO: From Testing //test/extensions/filters/http/transformation:inja_transformer_replace_test:
==================== Test output for //test/extensions/filters/http/transformation:inja_transformer_replace_test:
[==========] Running 22 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 22 tests from Extraction
[ RUN      ] Extraction.ExtractAndReplaceValueFromBodySubgroup
[       OK ] Extraction.ExtractAndReplaceValueFromBodySubgroup (12 ms)
[ RUN      ] Extraction.ExtractAndReplaceValueFromFullBody
[       OK ] Extraction.ExtractAndReplaceValueFromFullBody (10 ms)
[ RUN      ] Extraction.ExtractAndReplaceAllFromFullBody
[       OK ] Extraction.ExtractAndReplaceAllFromFullBody (10 ms)
[ RUN      ] Extraction.AttemptReplaceFromPartialMatch
[       OK ] Extraction.AttemptReplaceFromPartialMatch (10 ms)
[ RUN      ] Extraction.AttemptReplaceFromPartialMatchNonNilSubgroup
[       OK ] Extraction.AttemptReplaceFromPartialMatchNonNilSubgroup (10 ms)
[ RUN      ] Extraction.AttemptReplaceFromNoMatchNonNilSubgroup
[       OK ] Extraction.AttemptReplaceFromNoMatchNonNilSubgroup (10 ms)
[ RUN      ] Extraction.ReplaceFromFullLiteralMatch
[       OK ] Extraction.ReplaceFromFullLiteralMatch (10 ms)
[ RUN      ] Extraction.AttemptToReplaceFromInvalidSubgroup
[       OK ] Extraction.AttemptToReplaceFromInvalidSubgroup (10 ms)
[ RUN      ] Extraction.ReplaceInNestedSubgroups
[       OK ] Extraction.ReplaceInNestedSubgroups (10 ms)
[ RUN      ] Extraction.ReplaceWithSubgroupUnset
[       OK ] Extraction.ReplaceWithSubgroupUnset (10 ms)
[ RUN      ] Extraction.ReplaceNoMatch
[       OK ] Extraction.ReplaceNoMatch (11 ms)
[ RUN      ] Extraction.ReplacementTextLongerThanOriginalString
[       OK ] Extraction.ReplacementTextLongerThanOriginalString (10 ms)
[ RUN      ] Extraction.NilReplace
[       OK ] Extraction.NilReplace (11 ms)
[ RUN      ] Extraction.NilReplaceWithSubgroupUnset
external/com_github_google_tcmalloc/tcmalloc/tcmalloc_policy.h:102] Unable to allocate (new failed) 140728086789457 @ 0x4a83a02 0x4a1b838 0x4a1b6b5 0x49ea69b 0x49c7a87 0x19adaa7 0x19ada11 0x19ad888 0x19eac59 0x19eabd5 0x19eaba5 0x1a63816 0x1a572d1 0x1a55af5 0x1a55893 0x1994a4d 0x4807d7b 0x47f704d 0x47df523 0x47e00ea 0x47e093b 0x47ef3b8 0x480a51b 0x47f93e3 0x47eeef8 0x34c2881 0x34c1e7f 0x34bee88 0x7ff395390083
See https://github.com/google/tcmalloc/tree/master/docs/stats.md for an explanation of this page
------------------------------------------------
MALLOC:        2577816 (    2.5 MiB) Bytes in use by application
MALLOC: +      2883584 (    2.8 MiB) Bytes in page heap freelist
MALLOC: +       196968 (    0.2 MiB) Bytes in central cache freelist
MALLOC: +       539240 (    0.5 MiB) Bytes in per-CPU cache freelist
MALLOC: +            0 (    0.0 MiB) Bytes in Sharded cache freelist
MALLOC: +          512 (    0.0 MiB) Bytes in transfer cache freelist
MALLOC: +        93336 (    0.1 MiB) Bytes in thread cache freelists
MALLOC: +      6258822 (    6.0 MiB) Bytes in malloc metadata
MALLOC: +      1040608 (    1.0 MiB) Bytes in malloc metadata Arena unallocated
MALLOC: +      1687720 (    1.6 MiB) Bytes in malloc metadata Arena unavailable
MALLOC:   ------------
MALLOC: =     15278606 (   14.6 MiB) Actual memory used (physical + swap)
MALLOC: +            0 (    0.0 MiB) Bytes released to OS (aka unmapped)
MALLOC:   ------------
MALLOC: =     15278606 (   14.6 MiB) Virtual address space used
MALLOC:
MALLOC:            286               Spans in use
MALLOC:            286 (    0.0 MiB) Spans created
MALLOC:              1               Thread heaps in use
MALLOC:              2 (    0.0 MiB) Thread heaps created
MALLOC:              2               Stack traces in use
MALLOC:              2 (    0.0 MiB) Stack traces created
MALLOC:              0               Table buckets in use
MALLOC:              1 (    0.0 MiB) Table buckets created
MALLOC:        9276424 (    8.8 MiB) Pagemap bytes used
MALLOC:          16392 (    0.0 MiB) Pagemap root resident bytes
MALLOC:        5242880 (    5.0 MiB) per-CPU slab bytes used
MALLOC:        3145728 (    3.0 MiB) per-CPU slab resident bytes
MALLOC:              0 (    0.0 MiB) malloc metadata Arena non-resident bytes
MALLOC:       23907462 (   22.8 MiB) Actual memory used at peak
MALLOC:        4393687 (    4.2 MiB) Estimated in-use at peak
MALLOC:       444.1321               Realized fragmentation (%)
MALLOC:           8192               Tcmalloc page size
MALLOC:        2097152               Tcmalloc hugepage size
MALLOC:             20               CPUs Allowed in Mask
MALLOC:              3               Arena blocks
MALLOC EXPERIMENTS: TEST_ONLY_TCMALLOC_POW2_SIZECLASS=0 TEST_ONLY_TCMALLOC_SHARDED_TRANSFER_CACHE=0 TEST_ONLY_TCMALLOC_GENERIC_SHARDED_TRANSFER_CACHE=0 TEST_ONLY_TCMALLOC_PASS_SPAN_OBJECT_COUNT_TO_PAGEHEAP=0 TEST_ONLY_TCMALLOC_CHUNKS_FOR_PAGE_TRACKER_LISTS=0 TCMALLOC_DYNAMIC_SLABS=0 TCMALLOC_PASS_SPAN_OBJECT_COUNT_TO_PAGEHEAP=0 TCMALLOC_PARTIAL_TRANSFER_CACHE=0
MALLOC SAMPLED PROFILES: 2322423 bytes (current), 225791 bytes (internal fragmentation), 4559401 bytes (peak)

Total process stats (inclusive of non-malloc sources):
TOTAL:     73080832 (   69.7 MiB) Bytes resident (physical memory used)
TOTAL:   2247221248 ( 2143.1 MiB) Bytes mapped (virtual memory used)
------------------------------------------------
Call ReleaseMemoryToSystem() to release freelist memory to the OS (via madvise()).
Bytes released to the OS take up virtual address space but no physical memory.
------------------------------------------------
Total size of freelists for per-thread and per-CPU caches,
transfer cache, and central cache, as well as number of
live pages, returned/requested spans by size class
------------------------------------------------
class   1 [        8 bytes ] :      801 objs;   0.0 MiB;    0.0 cum MiB;        2 live pages; spans:          0 ret /          2 req = 0.0000;
class   2 [       16 bytes ] :      140 objs;   0.0 MiB;    0.0 cum MiB;        1 live pages; spans:         10 ret /         11 req = 0.9091;
class   3 [       32 bytes ] :      331 objs;   0.0 MiB;    0.0 cum MiB;        9 live pages; spans:          3 ret /         12 req = 0.2500;
class   4 [       64 bytes ] :      257 objs;   0.0 MiB;    0.0 cum MiB;       51 live pages; spans:          8 ret /         59 req = 0.1356;
class   5 [       80 bytes ] :      103 objs;   0.0 MiB;    0.0 cum MiB;        6 live pages; spans:          0 ret /          6 req = 0.0000;
class   6 [       96 bytes ] :      112 objs;   0.0 MiB;    0.1 cum MiB;        5 live pages; spans:         12 ret /         17 req = 0.7059;
class   7 [      112 bytes ] :       88 objs;   0.0 MiB;    0.1 cum MiB;        2 live pages; spans:          7 ret /          9 req = 0.7778;
class   8 [      128 bytes ] :       91 objs;   0.0 MiB;    0.1 cum MiB;        2 live pages; spans:          4 ret /          6 req = 0.6667;
class   9 [      144 bytes ] :       87 objs;   0.0 MiB;    0.1 cum MiB;        5 live pages; spans:          5 ret /         10 req = 0.5000;
class  10 [      160 bytes ] :       42 objs;   0.0 MiB;    0.1 cum MiB;        1 live pages; spans:          7 ret /          8 req = 0.8750;
class  11 [      176 bytes ] :       50 objs;   0.0 MiB;    0.1 cum MiB;        2 live pages; spans:         22 ret /         24 req = 0.9167;
class  12 [      192 bytes ] :       36 objs;   0.0 MiB;    0.1 cum MiB;        1 live pages; spans:          0 ret /          1 req = 0.0000;
class  13 [      208 bytes ] :       39 objs;   0.0 MiB;    0.1 cum MiB;        1 live pages; spans:          1 ret /          2 req = 0.5000;
class  14 [      224 bytes ] :       41 objs;   0.0 MiB;    0.1 cum MiB;        3 live pages; spans:          0 ret /          3 req = 0.0000;
class  15 [      240 bytes ] :       58 objs;   0.0 MiB;    0.1 cum MiB;        2 live pages; spans:         16 ret /         18 req = 0.8889;
class  16 [      256 bytes ] :       79 objs;   0.0 MiB;    0.2 cum MiB;        7 live pages; spans:          9 ret /         16 req = 0.5625;
class  17 [      272 bytes ] :       36 objs;   0.0 MiB;    0.2 cum MiB;        2 live pages; spans:          0 ret /          2 req = 0.0000;
class  18 [      288 bytes ] :       55 objs;   0.0 MiB;    0.2 cum MiB;        2 live pages; spans:         20 ret /         22 req = 0.9091;
class  19 [      304 bytes ] :       48 objs;   0.0 MiB;    0.2 cum MiB;        2 live pages; spans:          0 ret /          2 req = 0.0000;
class  20 [      320 bytes ] :       39 objs;   0.0 MiB;    0.2 cum MiB;        3 live pages; spans:          1 ret /          4 req = 0.2500;
class  21 [      336 bytes ] :       24 objs;   0.0 MiB;    0.2 cum MiB;        1 live pages; spans:          0 ret /          1 req = 0.0000;
class  22 [      352 bytes ] :       23 objs;   0.0 MiB;    0.2 cum MiB;        1 live pages; spans:          0 ret /          1 req = 0.0000;
class  23 [      368 bytes ] :        0 objs;   0.0 MiB;    0.2 cum MiB;        0 live pages; spans:          1 ret /          1 req = 1.0000;
class  24 [      384 bytes ] :       62 objs;   0.0 MiB;    0.2 cum MiB;        3 live pages; spans:          1 ret /          4 req = 0.2500;
class  25 [      400 bytes ] :       38 objs;   0.0 MiB;    0.3 cum MiB;        2 live pages; spans:          8 ret /         10 req = 0.8000;
class  26 [      416 bytes ] :       38 objs;   0.0 MiB;    0.3 cum MiB;        2 live pages; spans:         47 ret /         49 req = 0.9592;
class  27 [      448 bytes ] :       11 objs;   0.0 MiB;    0.3 cum MiB;       14 live pages; spans:          0 ret /         14 req = 0.0000;
class  28 [      480 bytes ] :       31 objs;   0.0 MiB;    0.3 cum MiB;        2 live pages; spans:         22 ret /         24 req = 0.9167;
class  29 [      512 bytes ] :       25 objs;   0.0 MiB;    0.3 cum MiB;        2 live pages; spans:        104 ret /        106 req = 0.9811;
class  30 [      576 bytes ] :       37 objs;   0.0 MiB;    0.3 cum MiB;       16 live pages; spans:          0 ret /         16 req = 0.0000;
class  31 [      640 bytes ] :       14 objs;   0.0 MiB;    0.3 cum MiB;       17 live pages; spans:          1 ret /         18 req = 0.0556;
class  32 [      704 bytes ] :        0 objs;   0.0 MiB;    0.3 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  33 [      768 bytes ] :       17 objs;   0.0 MiB;    0.3 cum MiB;        2 live pages; spans:         17 ret /         19 req = 0.8947;
class  34 [      896 bytes ] :       16 objs;   0.0 MiB;    0.4 cum MiB;        2 live pages; spans:         46 ret /         48 req = 0.9583;
class  35 [     1024 bytes ] :       15 objs;   0.0 MiB;    0.4 cum MiB;        2 live pages; spans:         26 ret /         28 req = 0.9286;
class  36 [     1152 bytes ] :       31 objs;   0.0 MiB;    0.4 cum MiB;       16 live pages; spans:          0 ret /          8 req = 0.0000;
class  37 [     1280 bytes ] :       10 objs;   0.0 MiB;    0.4 cum MiB;        2 live pages; spans:          1 ret /          2 req = 0.5000;
class  38 [     1408 bytes ] :       16 objs;   0.0 MiB;    0.4 cum MiB;        4 live pages; spans:          0 ret /          2 req = 0.0000;
class  39 [     1536 bytes ] :       10 objs;   0.0 MiB;    0.5 cum MiB;        2 live pages; spans:         23 ret /         24 req = 0.9583;
class  40 [     1792 bytes ] :       18 objs;   0.0 MiB;    0.5 cum MiB;        4 live pages; spans:          1 ret /          3 req = 0.3333;
class  41 [     2048 bytes ] :        6 objs;   0.0 MiB;    0.5 cum MiB;        2 live pages; spans:          0 ret /          1 req = 0.0000;
class  42 [     2304 bytes ] :        2 objs;   0.0 MiB;    0.5 cum MiB;      154 live pages; spans:          1 ret /         78 req = 0.0128;
class  43 [     2688 bytes ] :       11 objs;   0.0 MiB;    0.5 cum MiB;        4 live pages; spans:          0 ret /          2 req = 0.0000;
class  44 [     2816 bytes ] :        0 objs;   0.0 MiB;    0.5 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  45 [     3200 bytes ] :        7 objs;   0.0 MiB;    0.6 cum MiB;        4 live pages; spans:          1 ret /          3 req = 0.3333;
class  46 [     3456 bytes ] :        0 objs;   0.0 MiB;    0.6 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  47 [     3584 bytes ] :        0 objs;   0.0 MiB;    0.6 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  48 [     4096 bytes ] :        1 objs;   0.0 MiB;    0.6 cum MiB;        1 live pages; spans:          0 ret /          1 req = 0.0000;
class  49 [     4736 bytes ] :        4 objs;   0.0 MiB;    0.6 cum MiB;        3 live pages; spans:          1 ret /          2 req = 0.5000;
class  50 [     5376 bytes ] :        0 objs;   0.0 MiB;    0.6 cum MiB;        2 live pages; spans:          0 ret /          1 req = 0.0000;
class  51 [     6144 bytes ] :        0 objs;   0.0 MiB;    0.6 cum MiB;        0 live pages; spans:          1 ret /          1 req = 1.0000;
class  52 [     6528 bytes ] :        8 objs;   0.0 MiB;    0.6 cum MiB;        8 live pages; spans:          0 ret /          2 req = 0.0000;
class  53 [     7168 bytes ] :        0 objs;   0.0 MiB;    0.6 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  54 [     8192 bytes ] :        0 objs;   0.0 MiB;    0.6 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  55 [     9472 bytes ] :        3 objs;   0.0 MiB;    0.7 cum MiB;        5 live pages; spans:          0 ret /          1 req = 0.0000;
class  56 [    10240 bytes ] :        2 objs;   0.0 MiB;    0.7 cum MiB;        4 live pages; spans:          0 ret /          1 req = 0.0000;
class  57 [    12288 bytes ] :        1 objs;   0.0 MiB;    0.7 cum MiB;        3 live pages; spans:          0 ret /          1 req = 0.0000;
class  58 [    13568 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  59 [    14336 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  60 [    16384 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  61 [    20480 bytes ] :        1 objs;   0.0 MiB;    0.7 cum MiB;        5 live pages; spans:          0 ret /          1 req = 0.0000;
class  62 [    24576 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        3 live pages; spans:          0 ret /          1 req = 0.0000;
class  63 [    28672 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  64 [    32768 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  65 [    40960 bytes ] :        1 objs;   0.0 MiB;    0.7 cum MiB;        5 live pages; spans:          0 ret /          1 req = 0.0000;
class  66 [    49152 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  67 [    57344 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  68 [    65536 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  69 [    73728 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        9 live pages; spans:          0 ret /          1 req = 0.0000;
class  70 [    81920 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  71 [    90112 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  72 [    98304 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  73 [   106496 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  74 [   114688 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  75 [   131072 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  76 [   139264 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  77 [   147456 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  78 [   163840 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  79 [   172032 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  80 [   188416 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  81 [   204800 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  82 [   221184 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  83 [   237568 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  84 [   262144 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  85 [        0 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  86 [        0 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  87 [        8 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  88 [       16 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  89 [       32 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  90 [       64 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB;        0 live pages; spans:          0 ret /          0 req = 0.0000;
class  91 [       80 bytes ] :        0 objs;   0.0 MiB;    0.7 cum MiB[2024-05-03 00:35:44.066][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:127] Caught Aborted, suspect faulting address 0x3e800066f16
[2024-05-03 00:35:44.066][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:111] Backtrace (use tools/stack_decode.py to get line numbers):
[2024-05-03 00:35:44.066][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:112] Envoy version: 0/1.30.1/test/DEBUG/BoringSSL
[2024-05-03 00:35:44.075][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #0: Envoy::SignalAction::sigHandler() [0x3a8d5e9]
[2024-05-03 00:35:44.075][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #1: __restore_rt [0x7ff395599420]
[2024-05-03 00:35:44.083][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:121] #2: [0x4a1b838]
[2024-05-03 00:35:44.091][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:121] #3: [0x4a1b6b5]
[2024-05-03 00:35:44.099][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #4: slow_alloc<>() [0x49ea69b]
[2024-05-03 00:35:44.107][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #5: TCMallocInternalNewArray [0x49c7a87]
[2024-05-03 00:35:44.115][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #6: __gnu_cxx::new_allocator<>::allocate() [0x19adaa7]
[2024-05-03 00:35:44.122][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #7: std::allocator_traits<>::allocate() [0x19ada11]
[2024-05-03 00:35:44.129][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #8: std::__cxx11::basic_string<>::_M_create() [0x19ad888]
[2024-05-03 00:35:44.137][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #9: std::__cxx11::basic_string<>::_M_construct<>() [0x19eac59]
[2024-05-03 00:35:44.144][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #10: std::__cxx11::basic_string<>::_M_construct_aux<>() [0x19eabd5]
[2024-05-03 00:35:44.152][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #11: std::__cxx11::basic_string<>::_M_construct<>() [0x19eaba5]
[2024-05-03 00:35:44.159][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #12: std::__cxx11::basic_string<>::basic_string<>() [0x1a63816]
[2024-05-03 00:35:44.167][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #13: Envoy::Extensions::HttpFilters::Transformation::Extractor::replaceIndividualValue[abi:cxx11]() [0x1a572d1]
[2024-05-03 00:35:44.175][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #14: Envoy::Extensions::HttpFilters::Transformation::Extractor::extractDestructive()::$_15::operator()[abi:cxx11]() [0x1a55af5]
[2024-05-03 00:35:44.182][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #15: Envoy::Extensions::HttpFilters::Transformation::Extractor::extractDestructive() [0x1a55893]
[2024-05-03 00:35:44.189][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #16: Envoy::Extensions::HttpFilters::Transformation::Extraction_NilReplaceWithSubgroupUnset_Test::TestBody() [0x1994a4d]
[2024-05-03 00:35:44.197][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #17: testing::internal::HandleSehExceptionsInMethodIfSupported<>() [0x4807d7b]
[2024-05-03 00:35:44.205][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #18: testing::internal::HandleExceptionsInMethodIfSupported<>() [0x47f704d]
[2024-05-03 00:35:44.212][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #19: testing::Test::Run() [0x47df523]
[2024-05-03 00:35:44.220][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #20: testing::TestInfo::Run() [0x47e00ea]
[2024-05-03 00:35:44.228][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #21: testing::TestSuite::Run() [0x47e093b]
[2024-05-03 00:35:44.236][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #22: testing::internal::UnitTestImpl::RunAllTests() [0x47ef3b8]
[2024-05-03 00:35:44.244][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #23: testing::internal::HandleSehExceptionsInMethodIfSupported<>() [0x480a51b]
[2024-05-03 00:35:44.251][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #24: testing::internal::HandleExceptionsInMethodIfSupported<>() [0x47f93e3]
[2024-05-03 00:35:44.259][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #25: testing::UnitTest::Run() [0x47eeef8]
[2024-05-03 00:35:44.266][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #26: RUN_ALL_TESTS() [0x34c2881]
[2024-05-03 00:35:44.273][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #27: Envoy::TestRunner::runTests() [0x34c1e7f]
[2024-05-03 00:35:44.281][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #28: main [0x34bee88]
[2024-05-03 00:35:44.281][421654][critical][backtrace] [external/envoy/source/server/backtrace.h:119] #29: __libc_start_main [0x7ff395390083]
================================================================================
Target //test/extensions/filters/http/transformation:inja_transformer_replace_test up-to-date:
  bazel-bin/test/extensions/filters/http/transformation/inja_transformer_replace_test
INFO: Elapsed time: 805.265s, Critical Path: 92.84s
INFO: 1806 processes: 4 internal, 1802 processwrapper-sandbox.
INFO: Build completed, 1 test FAILED, 1806 total actions
//test/extensions/filters/http/transformation:inja_transformer_replace_test FAILED in 0.6s
  /home/user/.cache/bazel/_bazel_user/d93545a51a3afb97af0e2091d1c85371/execroot/envoy_gloo/bazel-out/k8-dbg/testlogs/test/extensions/filters/http/transformation/inja_transformer_replace_test/test.log

Executed 1 out of 1 test: 1 fails locally.

have not yet had a chance to debug it

@ashishb-solo
Copy link
Contributor Author

/kick

TIMEOUT
ERROR: context deadline exceeded

bazel/extensions/extensions_build_config.bzl Outdated Show resolved Hide resolved
bazel/extensions/extensions_build_config.bzl Outdated Show resolved Hide resolved
public:
Regex::CompiledMatcherPtr matcher(const std::string &regex) const override {
return std::make_unique<CompiledStdMatcher>(
Solo::Regex::Utility::parseStdRegex(regex));
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we still need to do this if engine is now included by default in 1.30?

It sounds like we are cruising for a bruising in upcoming releases if we rely on this

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i don't believe std::regex is present in upstream envoy. i see a few references to that class, but no functions that are publicly exported that we can use for using std:regex. i could be wrong here though, let me know of a way that we can use it

@@ -61,14 +67,6 @@ class ResponseMatcherImpl : public ResponseMatcher {
absl::optional<Matchers::StringMatcherImpl<envoy::type::matcher::v3::StringMatcher>> response_code_details_match_;
};

ResponseMatcherImpl::ResponseMatcherImpl(
Copy link
Collaborator

Choose a reason for hiding this comment

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

why does this move?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

if we're defining the constructor in the header file, i figured we might as well define it in the class declaration, but happy to revert. sorry about the fact that it messed up the diff though

test/tools/router_check/router_check.cc Show resolved Hide resolved
ashishb-solo and others added 4 commits May 13, 2024 12:45
Co-authored-by: Nathan Fudenberg <nathan.fudenberg@solo.io>
…nsions/extensions_build_config.bzl

Co-authored-by: Nathan Fudenberg <nathan.fudenberg@solo.io>
Co-authored-by: Nathan Fudenberg <nathan.fudenberg@solo.io>
Co-authored-by: Nathan Fudenberg <nathan.fudenberg@solo.io>
Previous iterations were still using the `vformat` call so they may not have
been using the `constexpr` versino of formatting correctly
@soloio-bulldozer soloio-bulldozer bot merged commit 83d90c9 into main May 14, 2024
3 of 4 checks passed
@soloio-bulldozer soloio-bulldozer bot deleted the update-to-v1.30 branch May 14, 2024 14:52
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