text:
Envoy doesn't call ExtAuthz filter for some calls

Description:

What issue is being seen? Describe what should be happening instead of
the bug.

We use ExtAuthz type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz filter.
Many routes are configured in envoy config and want all requests to first pass through ExtAuthz filter for authentication.
When there is a load on Envoy say more than 15 RPS, we observed that for couple of requests Envoy doesn't call the ExtAuthz filter and just returns 503. looks like we are missing some configuration.
Below is the trimmed version of our envoy config and logs.
Envoy Configuration
admin:
  address:
    socket_address:
      protocol: TCP
      address: 0.0.0.0
      port_value: 9901
static_resources:
  listeners:
    - name: listener_0
      address:
        socket_address:
          protocol: TCP
          address: 0.0.0.0
          port_value: 10000
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                http_protocol_options:
                  accept_http_10: true
                stat_prefix: ingress_http
                stream_idle_timeout: 900s
                access_log:
                  - name: envoy.access_loggers.stdout
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
                      log_format:
                        json_format:
                          "start_time": "%START_TIME%"
                          "request_id": "%REQ(X-REQUEST-ID)%"
                          "user_agent": "%REQ(USER-AGENT)%"
                          "method": "%REQ(:METHOD)%"
                          "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
                          "protocol": "%PROTOCOL%"
                          "upstream_protocol": "%UPSTREAM_PROTOCOL%"
                          "request_authority": "%REQ(:AUTHORITY)%"
                          "status": "%RESPONSE_CODE%"
                          "start_time_to_last_byte_out_ms": "%DURATION%"
                          "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%"
                          "response_flag": "%RESPONSE_FLAGS%"
                          "response_code_details": "%RESPONSE_CODE_DETAILS%"
                          "hostname": "%HOSTNAME%"
                          "upstream_cluster": "%UPSTREAM_CLUSTER%"
                          "original-host": "%REQ(X-Forwarded-Host)%"
                http_filters:
                  - name: envoy.filters.http.lua
                    typed_config:
                      '@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
                      inlineCode: |
                        function envoy_on_request(request_handle)
                        end
                      source_codes:
                        some.lua:
                          inline_string: |
                            function envoy_on_request(request_handle)
                              request_handle:headers():add("X-Forwarded-Host", request_handle:headers():get("host"))
                              local path_without_querystring = string.match(request_handle:headers():get(":path"), "([^?]+)")
                              request_handle:headers():add("X-Forwarded-Path", path_without_querystring)
                            end
                  - name: envoy.filters.http.ext_authz
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
                      clear_route_cache: true
                      transport_api_version: V3
                      include_peer_certificate: true
                      status_on_error:
                        code: "InternalServerError"
                      http_service:
                        server_uri:
                          uri: localhost:8080
                          cluster: ext_authz-http-service
                          timeout: 100s
                        path_prefix: /auth
                        authorization_response:
                          allowed_upstream_headers:
                            patterns:
                              - exact: "authorization"
                              - exact: "correlationid"
                        authorization_request:
                          allowed_headers:
                            patterns:
                              - exact: "authorization"
                              - exact: "host"
                              - exact: "x-request-id"
                  - name: envoy.filters.http.router
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
                route_config:
                  name: some_local_route
                  virtual_hosts:
                    - name: some_domains
                      domains: ["*"]
                      routes:
                        - match:
                            prefix: "/api"
                          route:
                            timeout: 900s
                            cluster: some-cluster
                            auto_host_rewrite: true
                            append_x_forwarded_host: true
                        - match:
                            prefix: "/healthz"
                          route:
                            prefix_rewrite: "/health"
                            timeout: 1s
                            cluster: ext_authz-http-service
                            auto_host_rewrite: true
                            append_x_forwarded_host: true
                          typed_per_filter_config:
                            envoy.filters.http.ext_authz:
                              "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
                              disabled: true
  clusters:
    - name: some-cluster
      type: LOGICAL_DNS
      lb_policy: ROUND_ROBIN
      load_assignment:
        cluster_name: some-cluster
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: some-service.com
                      port_value: 443
      transport_socket:
        name: envoy.transport_sockets.tls
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
          sni: some-service.com
    - name: ext_authz-http-service
      connect_timeout: 0.250s
      type: STRICT_DNS
      lb_policy: ROUND_ROBIN
      load_assignment:
        cluster_name: ext_authz-http-service
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: localhost
                      port_value: 8080

Logs
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][pool] [source/common/conn_pool/conn_pool_base.cc:215] [Tags: "ConnectionId":"15140"] destroying stream: 0 remaining
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][pool] [source/common/conn_pool/conn_pool_base.cc:484] [Tags: "ConnectionId":"15140"] client disconnected, failure reason:
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][http] [source/common/http/conn_manager_impl.cc:1925] [Tags: "ConnectionId":"15406","StreamId":"13145634703429981886"] Codec completed encoding stream.
2023-11-30 18:16:33.185
2023-11-30 18:16:33.185	'server', 'envoy'
2023-11-30 18:16:33.185	'date', 'Thu, 30 Nov 2023 18:16:33 GMT'
2023-11-30 18:16:33.185	':status', '500'
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][http] [source/common/http/conn_manager_impl.cc:1820] [Tags: "ConnectionId":"15406","StreamId":"13145634703429981886"] encoding headers via codec (end_stream=true):
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][http] [source/common/http/filter_manager.cc:996] [Tags: "ConnectionId":"15406","StreamId":"13145634703429981886"] Sending local reply with details ext_authz_error
2023-11-30 18:16:33.185
2023-11-30 18:16:33.185	'content-type', 'text/plain'
2023-11-30 18:16:33.185	'content-length', '95'
2023-11-30 18:16:33.185	':status', '503'
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][http] [source/common/http/async_client_impl.cc:123] async http request response headers (end_stream=false):
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][router] [source/common/router/router.cc:1281] [Tags: "ConnectionId":"0","StreamId":"15018213574545538674"] upstream reset: reset reason: connection termination, transport failure reason:
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][client] [source/common/http/codec_client.cc:158] [Tags: "ConnectionId":"15140"] request reset
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][client] [source/common/http/codec_client.cc:107] [Tags: "ConnectionId":"15140"] disconnect. resetting 1 pending requests
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][connection] [source/common/network/connection_impl.cc:250] [Tags: "ConnectionId":"15140"] closing socket: 0
2023-11-30 18:16:33.185	[2023-11-30 18:16:33.185][18][debug][connection] [source/common/network/connection_impl.cc:663] [Tags: "ConnectionId":"15140"] remote close (edited)

Failures are random.
We tried playing around with below setting but no success.
upstream_connection_options:
  tcp_keepalive:
    keepalive_interval: 10
    keepalive_time: 1

max_requests_per_connection: 1
Happy to share more logs if required. Please help. thanks

Sending local reply with details ext_authz_error
Envoy encountered an error querying the authz server. I expect looking at the stats for the ext_authz-http-service cluster and/or turning on logging for the ext_authz category will shed more light on the issue.

Thanks @zuercher for your help. Please find TRACE logs below, we didn't get any meaningful insight, would really appreciate your help here, Thanks
logs below are latest to oldest

2024-01-31 21:53:37.306	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:122] clearing deferred deletion list (size=1)
2024-01-31 21:53:37.306	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=1)
2024-01-31 21:53:37.306	[2024-01-31 21:53:37.305][27][debug][conn_handler] [source/common/listener_manager/active_stream_listener_base.cc:136] [Tags: "ConnectionId":"17605"] adding to cleanup list
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][conn_handler] [source/common/listener_manager/active_stream_listener_base.cc:126] [Tags: "ConnectionId":"17605"] tcp connection on event 0
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/connection_impl.cc:469] [Tags: "ConnectionId":"17605"] raising connection event 0
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][debug][connection] [source/common/network/connection_impl.cc:278] [Tags: "ConnectionId":"17605"] closing socket: 0
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/connection_impl.cc:687] [Tags: "ConnectionId":"17605"] read: rst close from peer
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/raw_buffer_socket.cc:39] [Tags: "ConnectionId":"17605"] read error: Connection reset by peer, code: 9
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/connection_impl.cc:654] [Tags: "ConnectionId":"17605"] read ready. dispatch_buffered_data=0
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/connection_impl.cc:737] [Tags: "ConnectionId":"17605"] write ready
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/connection_impl.cc:614] [Tags: "ConnectionId":"17605"] socket event: 3
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/raw_buffer_socket.cc:70] [Tags: "ConnectionId":"17605"] write returns: 109
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/connection_impl.cc:737] [Tags: "ConnectionId":"17605"] write ready
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][connection] [source/common/network/connection_impl.cc:614] [Tags: "ConnectionId":"17605"] socket event: 2
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][debug][pool] [source/common/conn_pool/conn_pool_base.cc:215] [Tags: "ConnectionId":"17458"] destroying stream: 0 remaining
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][lua] [./source/extensions/filters/common/lua/lua.h:210] marking dead N5Envoy10Extensions11HttpFilters3Lua19StreamHandleWrapperE at 0x7f3bdd330220
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:122] clearing deferred deletion list (size=8)
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=8)
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=7)
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][debug][pool] [source/common/conn_pool/conn_pool_base.cc:495] [Tags: "ConnectionId":"17458"] client disconnected, failure reason:
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=6)
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x36203f1acc80 for 3600000ms, min is 3600000ms
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=5)
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.305][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=4)
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.304][27][debug][http] [source/common/http/conn_manager_impl.cc:1974] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] Codec completed encoding stream.
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/connection_impl.cc:529] [Tags: "ConnectionId":"17605"] writing 109 bytes, end_stream false
2024-01-31 21:53:37.305
2024-01-31 21:53:37.305	'server', 'envoy'
2024-01-31 21:53:37.305	'date', 'Wed, 31 Jan 2024 21:53:36 GMT'
2024-01-31 21:53:37.305	':status', '500'
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.304][27][debug][http] [source/common/http/conn_manager_impl.cc:1869] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] encoding headers via codec (end_stream=true):
2024-01-31 21:53:37.305	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/filter_manager.cc:1233] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] encode headers called: filter=envoy.filters.http.lua status=0
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/filter_manager.cc:1233] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] encode headers called: filter=envoy.filters.http.ext_authz status=0
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][ext_authz] [source/extensions/filters/http/ext_authz/ext_authz.cc:221] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] ext_authz filter has 0 response header(s) to add and 0 response header(s) to set to the encoded response:
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x36203f17ac00 for 900000ms, min is 900000ms
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][http] [source/common/http/filter_manager.cc:1065] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] Sending local reply with details ext_authz_error
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][ext_authz] [source/extensions/filters/http/ext_authz/ext_authz.cc:468] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] ext_authz filter rejected the request with an error. Response status code: 500
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/async_client_impl.cc:123] async http request response data (length=95 end_stream=true)
2024-01-31 21:53:37.304
2024-01-31 21:53:37.304	'content-type', 'text/plain'
2024-01-31 21:53:37.304	'content-length', '95'
2024-01-31 21:53:37.304	':status', '503'
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][http] [source/common/http/async_client_impl.cc:106] async http request response headers (end_stream=false):
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=3)
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=2)
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][router] [source/common/router/router.cc:1331] [Tags: "ConnectionId":"0","StreamId":"605854097191452484"] upstream reset: reset reason: connection termination, transport failure reason:
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=1)
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][client] [source/common/http/codec_client.cc:158] [Tags: "ConnectionId":"17458"] request reset
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][client] [source/common/http/codec_client.cc:107] [Tags: "ConnectionId":"17458"] disconnect. resetting 1 pending requests
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/http1/codec_impl.cc:698] [Tags: "ConnectionId":"17458"] parsed 0 bytes
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/http1/codec_impl.cc:648] [Tags: "ConnectionId":"17458"] parsing 0 bytes
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/connection_impl.cc:469] [Tags: "ConnectionId":"17458"] raising connection event 0
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][connection] [source/common/network/connection_impl.cc:278] [Tags: "ConnectionId":"17458"] closing socket: 0
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][connection] [source/common/network/connection_impl.cc:714] [Tags: "ConnectionId":"17458"] remote close
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/raw_buffer_socket.cc:25] [Tags: "ConnectionId":"17458"] read returns: 0
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/connection_impl.cc:654] [Tags: "ConnectionId":"17458"] read ready. dispatch_buffered_data=0
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/raw_buffer_socket.cc:70] [Tags: "ConnectionId":"17458"] write returns: 2367
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/connection_impl.cc:737] [Tags: "ConnectionId":"17458"] write ready
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/connection_impl.cc:614] [Tags: "ConnectionId":"17458"] socket event: 3
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/http1/codec_impl.cc:698] [Tags: "ConnectionId":"17605"] parsed 2423 bytes
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x36203f17ac00 for 900000ms, min is 900000ms
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/filter_manager.cc:601] [Tags: "ConnectionId":"17605","StreamId":"12358221844973248411"] decode headers called: filter=envoy.filters.http.ext_authz status=4
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][http] [source/common/http/filter_manager.cc:601] [Tags: "ConnectionId":"0","StreamId":"605854097191452484"] decode headers called: filter=envoy.filters.http.upstream_codec status=0
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][client] [source/common/http/codec_client.cc:141] [Tags: "ConnectionId":"17458"] encode complete
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][connection] [source/common/network/connection_impl.cc:529] [Tags: "ConnectionId":"17458"] writing 2367 bytes, end_stream false
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][router] [source/common/router/upstream_codec_filter.cc:61] [Tags: "ConnectionId":"0","StreamId":"605854097191452484"] proxying headers
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][trace][pool] [source/common/conn_pool/conn_pool_base.cc:131] not creating a new connection, shouldCreateNewConnection returned false.
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][router] [source/common/router/upstream_request.cc:569] [Tags: "ConnectionId":"0","StreamId":"605854097191452484"] pool ready
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][pool] [source/common/conn_pool/conn_pool_base.cc:182] [Tags: "ConnectionId":"17458"] creating stream
2024-01-31 21:53:37.304	[2024-01-31 21:53:37.304][27][debug][pool] [source/common/conn_pool/conn_pool_base.cc:265] [Tags: "ConnectionId":"17458"] using existing fully connected connection

@zuercher This issue is blocking us, appreciate any help on this please.
Adding complete trace log below,
Not sure if this information helps,

Using Envoy envoy-distroless:v1.29.1

ext_authz-http-service is node application.

I see something this in log "not creating a new connection, shouldCreateNewConnection returned false." wondering if this has anything to do with the issue?

We are using ExtAuthz (complete configuration above) wondering if there is any way we can retry on 503?

{ "start_time":"2024-03-14T23:21:13.407Z", "upstream_service_time":null, "upstream_request_attempt_count":0, "response_code_details":"ext_authz_error", "response_flag":"UAEX", "original-host":null, "path":"some-path", "start_time_to_first_byte_from_upstream_ms":null, "x-correlationid":null, "connection_termination_details":null, "upstream_protocol":null, "start_time_to_last_byte_out_ms":2, "request_authority":"some-url", "status":500, "protocol":"HTTP/1.1", "method":"GET", "user_agent":"PostmanRuntime/7.32.2", "upstream_cluster":"some-cluster", "hostname":"some-host", "request_id":"59f410fa-0748-40f7-ac59-5a9a15d0d4e8", "start_time_to_last_byte_to_upstream_ms":null, "start_time_to_last_byte_from_downstream_ms":0 }
Log
`
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][http] [source/common/http/conn_manager_impl.cc:1192] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] request headers complete (end_stream=true):
2024-03-15 07:00:59.290	':authority', 'some-url'
2024-03-15 07:00:59.290	':path', 'some-path'
2024-03-15 07:00:59.290	':method', 'GET'
2024-03-15 07:00:59.290	'user-agent', 'PostmanRuntime/7.32.2'
2024-03-15 07:00:59.290	'accept-encoding', 'gzip, deflate, br'
2024-03-15 07:00:59.290	'accept', '/'
2024-03-15 07:00:59.290	'authorization', 'Bearer '
2024-03-15 07:00:59.290	'content-type', 'application/json'
2024-03-15 07:00:59.290	'x-forwarded-proto', 'https'
2024-03-15 07:00:59.290	'x-ssl-client-something1', ''
2024-03-15 07:00:59.290	'x-ssl-client-something2', ''
2024-03-15 07:00:59.290	'x-ssl-client-something3', ''
2024-03-15 07:00:59.290	'x-forwarded-for', '131.211.231.41'
2024-03-15 07:00:59.290
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][http] [source/common/http/conn_manager_impl.cc:1175] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] request end stream
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][connection] [./source/common/network/connection_impl.h:98] [Tags: "ConnectionId":"291883"] current connecting state: false
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][lua] [./source/extensions/filters/common/lua/lua.h:149] creating N5Envoy10Extensions11HttpFilters3Lua19StreamHandleWrapperE at 0x7ff5b800c6d0
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][lua] [./source/extensions/filters/common/lua/lua.h:149] creating N5Envoy10Extensions11HttpFilters3Lua16HeaderMapWrapperE at 0x7ff5b800c870
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][lua] [source/extensions/filters/common/lua/lua.cc:39] coroutine finished
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][lua] [./source/extensions/filters/common/lua/lua.h:210] marking dead N5Envoy10Extensions11HttpFilters3Lua19StreamHandleWrapperE at 0x7ff5b800c6d0
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][lua] [./source/extensions/filters/common/lua/lua.h:210] marking dead N5Envoy10Extensions11HttpFilters3Lua16HeaderMapWrapperE at 0x7ff5b800c870
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][http] [source/common/http/filter_manager.cc:601] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] decode headers called: filter=envoy.filters.http.lua status=0
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][ext_authz] [source/extensions/filters/http/ext_authz/ext_authz.cc:111] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] ext_authz filter calling authorization server
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][router] [source/common/router/router.cc:514] [Tags: "ConnectionId":"0","StreamId":"3156243965685767052"] cluster 'ext_authz-http-service' match for URL 'some-path'
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][router] [source/common/router/router.cc:731] [Tags: "ConnectionId":"0","StreamId":"3156243965685767052"] router decoding headers:
2024-03-15 07:00:59.290	':path', 'some-path'
2024-03-15 07:00:59.290	':authority', 'some-url'
2024-03-15 07:00:59.290	':method', 'GET'
2024-03-15 07:00:59.290	':scheme', 'http'
2024-03-15 07:00:59.290	'content-length', '0'
2024-03-15 07:00:59.290	'x-ssl-client-something2', ''
2024-03-15 07:00:59.290	'authorization', 'Bearer '
2024-03-15 07:00:59.290	'x-request-id', '59f410fa-0748-40f7-ac59-5a9a15d0d4e8'
2024-03-15 07:00:59.290	'x-ssl-client-something1', ''
2024-03-15 07:00:59.290	'x-envoy-internal', 'true'
2024-03-15 07:00:59.290	'x-envoy-expected-rq-timeout-ms', '100000'
2024-03-15 07:00:59.290
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][pool] [source/common/conn_pool/conn_pool_base.cc:265] [Tags: "ConnectionId":"291861"] using existing fully connected connection
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][pool] [source/common/conn_pool/conn_pool_base.cc:182] [Tags: "ConnectionId":"291861"] creating stream
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][router] [source/common/router/upstream_request.cc:578] [Tags: "ConnectionId":"0","StreamId":"3156243965685767052"] pool ready
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][pool] [source/common/conn_pool/conn_pool_base.cc:131] not creating a new connection, shouldCreateNewConnection returned false.
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][router] [source/common/router/upstream_codec_filter.cc:61] [Tags: "ConnectionId":"0","StreamId":"3156243965685767052"] proxying headers
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][connection] [source/common/network/connection_impl.cc:529] [Tags: "ConnectionId":"291861"] writing 2367 bytes, end_stream false
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][debug][client] [source/common/http/codec_client.cc:141] [Tags: "ConnectionId":"291861"] encode complete
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][http] [source/common/http/filter_manager.cc:601] [Tags: "ConnectionId":"0","StreamId":"3156243965685767052"] decode headers called: filter=envoy.filters.http.upstream_codec status=0
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][http] [source/common/http/filter_manager.cc:601] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] decode headers called: filter=envoy.filters.http.ext_authz status=4
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x5823f2d0e80 for 900000ms, min is 900000ms
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][http] [source/common/http/http1/codec_impl.cc:698] [Tags: "ConnectionId":"291883"] parsed 2423 bytes
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][connection] [source/common/network/connection_impl.cc:614] [Tags: "ConnectionId":"291861"] socket event: 2
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][connection] [source/common/network/connection_impl.cc:737] [Tags: "ConnectionId":"291861"] write ready
2024-03-15 07:00:59.290	[2024-03-15 07:00:59.290][22][trace][connection] [source/common/network/raw_buffer_socket.cc:70] [Tags: "ConnectionId":"291861"] write returns: 2367
2024-03-15 07:00:59.293	[2024-03-15 07:00:59.293][22][trace][connection] [source/common/network/connection_impl.cc:614] [Tags: "ConnectionId":"291861"] socket event: 3
2024-03-15 07:00:59.293	[2024-03-15 07:00:59.293][22][trace][connection] [source/common/network/connection_impl.cc:737] [Tags: "ConnectionId":"291861"] write ready
2024-03-15 07:00:59.293	[2024-03-15 07:00:59.293][22][trace][connection] [source/common/network/connection_impl.cc:654] [Tags: "ConnectionId":"291861"] read ready. dispatch_buffered_data=0
2024-03-15 07:00:59.293	[2024-03-15 07:00:59.293][22][trace][connection] [source/common/network/raw_buffer_socket.cc:39] [Tags: "ConnectionId":"291861"] read error: Connection reset by peer, code: 9
2024-03-15 07:00:59.293	[2024-03-15 07:00:59.293][22][trace][connection] [source/common/network/connection_impl.cc:687] [Tags: "ConnectionId":"291861"] read: rst close from peer
2024-03-15 07:00:59.293	[2024-03-15 07:00:59.293][22][debug][connection] [source/common/network/connection_impl.cc:278] [Tags: "ConnectionId":"291861"] closing socket: 0
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.293][22][trace][connection] [source/common/network/connection_impl.cc:469] [Tags: "ConnectionId":"291861"] raising connection event 0
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.293][22][trace][http] [source/common/http/http1/codec_impl.cc:648] [Tags: "ConnectionId":"291861"] parsing 0 bytes
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.293][22][trace][http] [source/common/http/http1/codec_impl.cc:698] [Tags: "ConnectionId":"291861"] parsed 0 bytes
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.293][22][debug][client] [source/common/http/codec_client.cc:107] [Tags: "ConnectionId":"291861"] disconnect. resetting 1 pending requests
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.293][22][debug][client] [source/common/http/codec_client.cc:158] [Tags: "ConnectionId":"291861"] request reset
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=1)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][router] [source/common/router/router.cc:1332] [Tags: "ConnectionId":"0","StreamId":"3156243965685767052"] upstream reset: reset reason: connection termination, transport failure reason:
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=2)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=3)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][http] [source/common/http/async_client_impl.cc:106] async http request response headers (end_stream=false):
2024-03-15 07:00:59.294	':status', '503'
2024-03-15 07:00:59.294	'content-length', '95'
2024-03-15 07:00:59.294	'content-type', 'text/plain'
2024-03-15 07:00:59.294
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][http] [source/common/http/async_client_impl.cc:123] async http request response data (length=95 end_stream=true)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][ext_authz] [source/extensions/filters/http/ext_authz/ext_authz.cc:468] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] ext_authz filter rejected the request with an error. Response status code: 500
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][http] [source/common/http/filter_manager.cc:1065] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] Sending local reply with details ext_authz_error
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x5823f2d0e80 for 900000ms, min is 900000ms
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][ext_authz] [source/extensions/filters/http/ext_authz/ext_authz.cc:221] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] ext_authz filter has 0 response header(s) to add and 0 response header(s) to set to the encoded response:
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][http] [source/common/http/filter_manager.cc:1233] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] encode headers called: filter=envoy.filters.http.ext_authz status=0
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][http] [source/common/http/filter_manager.cc:1233] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] encode headers called: filter=envoy.filters.http.lua status=0
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][http] [source/common/http/conn_manager_impl.cc:1869] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] encoding headers via codec (end_stream=true):
2024-03-15 07:00:59.294	':status', '500'
2024-03-15 07:00:59.294	'date', 'Fri, 15 Mar 2024 07:00:58 GMT'
2024-03-15 07:00:59.294	'server', 'envoy'
2024-03-15 07:00:59.294
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][connection] [source/common/network/connection_impl.cc:529] [Tags: "ConnectionId":"291883"] writing 109 bytes, end_stream false
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][http] [source/common/http/conn_manager_impl.cc:1974] [Tags: "ConnectionId":"291883","StreamId":"10440038835343958989"] Codec completed encoding stream.
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=4)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=5)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x5823e620d80 for 3600000ms, min is 3600000ms
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=6)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][pool] [source/common/conn_pool/conn_pool_base.cc:495] [Tags: "ConnectionId":"291861"] client disconnected, failure reason:
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=7)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=8)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][pool] [source/common/conn_pool/conn_pool_base.cc:463] invoking 1 idle callback(s) - is_draining_for_deletion_=false
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][upstream] [source/common/upstream/cluster_manager_impl.cc:2098] Erasing idle pool for host localhost
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:228] item added to deferred deletion list (size=9)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][upstream] [source/common/upstream/cluster_manager_impl.cc:2105] Pool container empty for host localhost, erasing host entry
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][main] [source/common/event/dispatcher_impl.cc:122] clearing deferred deletion list (size=9)
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][lua] [./source/extensions/filters/common/lua/lua.h:210] marking dead N5Envoy10Extensions11HttpFilters3Lua19StreamHandleWrapperE at 0x7ff5b800c6d0
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][debug][pool] [source/common/conn_pool/conn_pool_base.cc:215] [Tags: "ConnectionId":"291861"] destroying stream: 0 remaining
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][connection] [source/common/network/connection_impl.cc:614] [Tags: "ConnectionId":"291883"] socket event: 2
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][connection] [source/common/network/connection_impl.cc:737] [Tags: "ConnectionId":"291883"] write ready
2024-03-15 07:00:59.294	[2024-03-15 07:00:59.294][22][trace][connection] [source/common/network/raw_buffer_socket.cc:70] [Tags: "ConnectionId":"291883"] write returns: 109
2024-03-15 07:00:59.300	[2024-03-15 07:00:59.300][1][trace][upstream] [source/extensions/clusters/strict_dns/strict_dns_cluster.cc:104] starting async DNS resolution for localhost
2024-03-15 07:00:59.300	[2024-03-15 07:00:59.300][1][debug][dns] [source/extensions/network/dns_resolver/cares/dns_impl.cc:365] dns resolution for localhost started
2024-03-15 07:00:59.300	[2024-03-15 07:00:59.300][1][debug][dns] [source/extensions/network/dns_resolver/cares/dns_impl.cc:285] dns resolution for localhost completed with status 0
2024-03-15 07:00:59.300	[2024-03-15 07:00:59.300][1][trace][upstream] [source/extensions/clusters/strict_dns/strict_dns_cluster.cc:112] async DNS resolution complete for localhost
2024-03-15 07:00:59.300	[2024-03-15 07:00:59.300][1][debug][upstream] [source/common/upstream/upstream_impl.cc:437] transport socket match, socket default selected for host with address [::1]:8080
2024-03-15 07:00:59.300	[2024-03-15 07:00:59.300][1][debug][upstream] [source/extensions/clusters/strict_dns/strict_dns_cluster.cc:177] DNS refresh rate reset for localhost, refresh rate 5000 ms
2024-03-15 07:00:59.469	[2024-03-15 07:00:59.469][13][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x5823ee16900 for 3600000ms, min is 3600000ms
2024-03-15 07:00:59.469	[2024-03-15 07:00:59.469][13][trace][connection] [source/common/network/connection_impl.cc:469] [Tags: "ConnectionId":"291884"] raising connection event 2
2024-03-15 07:00:59.469	[2024-03-15 07:00:59.469][13][debug][conn_handler] [source/common/listener_manager/active_tcp_listener.cc:160] [Tags: "ConnectionId":"291884"] new connection from 100.96.35.13:35568
2024-03-15 07:00:59.469	[2024-03-15 07:00:59.469][13][trace][misc] [source/common/network/tcp_listener_impl.cc:114] TcpListener accepted 1 new connections.
2024-03-15 07:00:59.469	[2024-03-15 07:00:59.469][13][trace][connection] [source/common/network/connection_impl.cc:614] [Tags: "ConnectionId":"291884"] socket event: 3
2024-03-15 07:00:59.469	[2024-03-15 07:00:59.469][13][trace][connection] [source/common/network/connection_impl.cc:737] [Tags: "ConnectionId":"291884"] write ready
2024-03-15 07:00:59.469	[2024-03-15 07:00:59.469][13][trace][connection] [source/common/network/connection_impl.cc:654] [Tags: "ConnectionId":"291884"] read ready. dispatch_buffered_data=0
`
stats
cluster.ext_authz-http-service.assignment_stale: 0 cluster.ext_authz-http-service.assignment_timeout_received: 0 cluster.ext_authz-http-service.assignment_use_cached: 0 cluster.ext_authz-http-service.bind_errors: 0 cluster.ext_authz-http-service.circuit_breakers.default.cx_open: 0 cluster.ext_authz-http-service.circuit_breakers.default.cx_pool_open: 0 cluster.ext_authz-http-service.circuit_breakers.default.rq_open: 0 cluster.ext_authz-http-service.circuit_breakers.default.rq_pending_open: 0 cluster.ext_authz-http-service.circuit_breakers.default.rq_retry_open: 0 cluster.ext_authz-http-service.circuit_breakers.high.cx_open: 0 cluster.ext_authz-http-service.circuit_breakers.high.cx_pool_open: 0 cluster.ext_authz-http-service.circuit_breakers.high.rq_open: 0 cluster.ext_authz-http-service.circuit_breakers.high.rq_pending_open: 0 cluster.ext_authz-http-service.circuit_breakers.high.rq_retry_open: 0 cluster.ext_authz-http-service.default.total_match_count: 244035 cluster.ext_authz-http-service.external.upstream_rq_200: 122108 cluster.ext_authz-http-service.external.upstream_rq_2xx: 122108 cluster.ext_authz-http-service.external.upstream_rq_completed: 122108 cluster.ext_authz-http-service.http1.dropped_headers_with_underscores: 0 cluster.ext_authz-http-service.http1.metadata_not_supported_error: 0 cluster.ext_authz-http-service.http1.requests_rejected_with_underscores_in_headers: 0 cluster.ext_authz-http-service.http1.response_flood: 0 cluster.ext_authz-http-service.internal.upstream_rq_200: 3763 cluster.ext_authz-http-service.internal.upstream_rq_2xx: 3763 cluster.ext_authz-http-service.internal.upstream_rq_403: 2 cluster.ext_authz-http-service.internal.upstream_rq_4xx: 2 cluster.ext_authz-http-service.internal.upstream_rq_503: 1 cluster.ext_authz-http-service.internal.upstream_rq_5xx: 1 cluster.ext_authz-http-service.internal.upstream_rq_completed: 3766 cluster.ext_authz-http-service.lb_healthy_panic: 0 cluster.ext_authz-http-service.lb_local_cluster_not_ok: 0 cluster.ext_authz-http-service.lb_recalculate_zone_structures: 0 cluster.ext_authz-http-service.lb_subsets_active: 0 cluster.ext_authz-http-service.lb_subsets_created: 0 cluster.ext_authz-http-service.lb_subsets_fallback: 0 cluster.ext_authz-http-service.lb_subsets_fallback_panic: 0 cluster.ext_authz-http-service.lb_subsets_removed: 0 cluster.ext_authz-http-service.lb_subsets_selected: 0 cluster.ext_authz-http-service.lb_zone_cluster_too_small: 0 cluster.ext_authz-http-service.lb_zone_no_capacity_left: 0 cluster.ext_authz-http-service.lb_zone_number_differs: 0 cluster.ext_authz-http-service.lb_zone_routing_all_directly: 0 cluster.ext_authz-http-service.lb_zone_routing_cross_zone: 0 cluster.ext_authz-http-service.lb_zone_routing_sampled: 0 cluster.ext_authz-http-service.max_host_weight: 1 cluster.ext_authz-http-service.membership_change: 1 cluster.ext_authz-http-service.membership_degraded: 0 cluster.ext_authz-http-service.membership_excluded: 0 cluster.ext_authz-http-service.membership_healthy: 1 cluster.ext_authz-http-service.membership_total: 1 cluster.ext_authz-http-service.original_dst_host_invalid: 0 cluster.ext_authz-http-service.retry_or_shadow_abandoned: 0 cluster.ext_authz-http-service.update_attempt: 244035 cluster.ext_authz-http-service.update_empty: 0 cluster.ext_authz-http-service.update_failure: 0 cluster.ext_authz-http-service.update_no_rebuild: 244034 cluster.ext_authz-http-service.update_success: 244035 cluster.ext_authz-http-service.upstream_cx_active: 0 cluster.ext_authz-http-service.upstream_cx_close_notify: 0 cluster.ext_authz-http-service.upstream_cx_connect_attempts_exceeded: 0 cluster.ext_authz-http-service.upstream_cx_connect_fail: 0 cluster.ext_authz-http-service.upstream_cx_connect_timeout: 0 cluster.ext_authz-http-service.upstream_cx_connect_with_0_rtt: 0 cluster.ext_authz-http-service.upstream_cx_destroy: 123476 cluster.ext_authz-http-service.upstream_cx_destroy_local: 0 cluster.ext_authz-http-service.upstream_cx_destroy_local_with_active_rq: 0 cluster.ext_authz-http-service.upstream_cx_destroy_remote: 123476 cluster.ext_authz-http-service.upstream_cx_destroy_remote_with_active_rq: 1 cluster.ext_authz-http-service.upstream_cx_destroy_with_active_rq: 1 cluster.ext_authz-http-service.upstream_cx_http1_total: 123476 cluster.ext_authz-http-service.upstream_cx_http2_total: 0 cluster.ext_authz-http-service.upstream_cx_http3_total: 0 cluster.ext_authz-http-service.upstream_cx_idle_timeout: 0 cluster.ext_authz-http-service.upstream_cx_max_duration_reached: 0 cluster.ext_authz-http-service.upstream_cx_max_requests: 0 cluster.ext_authz-http-service.upstream_cx_none_healthy: 0 cluster.ext_authz-http-service.upstream_cx_overflow: 0 cluster.ext_authz-http-service.upstream_cx_pool_overflow: 0 cluster.ext_authz-http-service.upstream_cx_protocol_error: 0 cluster.ext_authz-http-service.upstream_cx_rx_bytes_buffered: 0 cluster.ext_authz-http-service.upstream_cx_rx_bytes_total: 712157967 cluster.ext_authz-http-service.upstream_cx_total: 123476 cluster.ext_authz-http-service.upstream_cx_tx_bytes_buffered: 0 cluster.ext_authz-http-service.upstream_cx_tx_bytes_total: 66545108 cluster.ext_authz-http-service.upstream_flow_control_backed_up_total: 0 cluster.ext_authz-http-service.upstream_flow_control_drained_total: 0 cluster.ext_authz-http-service.upstream_flow_control_paused_reading_total: 0 cluster.ext_authz-http-service.upstream_flow_control_resumed_reading_total: 0 cluster.ext_authz-http-service.upstream_http3_broken: 0 cluster.ext_authz-http-service.upstream_internal_redirect_failed_total: 0 cluster.ext_authz-http-service.upstream_internal_redirect_succeeded_total: 0 cluster.ext_authz-http-service.upstream_rq_0rtt: 0 cluster.ext_authz-http-service.upstream_rq_200: 125871 cluster.ext_authz-http-service.upstream_rq_2xx: 125871 cluster.ext_authz-http-service.upstream_rq_403: 2 cluster.ext_authz-http-service.upstream_rq_4xx: 2 cluster.ext_authz-http-service.upstream_rq_503: 1 cluster.ext_authz-http-service.upstream_rq_5xx: 1 cluster.ext_authz-http-service.upstream_rq_active: 0 cluster.ext_authz-http-service.upstream_rq_cancelled: 0 cluster.ext_authz-http-service.upstream_rq_completed: 125874 cluster.ext_authz-http-service.upstream_rq_maintenance_mode: 0 cluster.ext_authz-http-service.upstream_rq_max_duration_reached: 0 cluster.ext_authz-http-service.upstream_rq_pending_active: 0 cluster.ext_authz-http-service.upstream_rq_pending_failure_eject: 0 cluster.ext_authz-http-service.upstream_rq_pending_overflow: 0 cluster.ext_authz-http-service.upstream_rq_pending_total: 123476 cluster.ext_authz-http-service.upstream_rq_per_try_idle_timeout: 0 cluster.ext_authz-http-service.upstream_rq_per_try_timeout: 0 cluster.ext_authz-http-service.upstream_rq_retry: 0 cluster.ext_authz-http-service.upstream_rq_retry_backoff_exponential: 0 cluster.ext_authz-http-service.upstream_rq_retry_backoff_ratelimited: 0 cluster.ext_authz-http-service.upstream_rq_retry_limit_exceeded: 0 cluster.ext_authz-http-service.upstream_rq_retry_overflow: 0 cluster.ext_authz-http-service.upstream_rq_retry_success: 0 cluster.ext_authz-http-service.upstream_rq_rx_reset: 0 cluster.ext_authz-http-service.upstream_rq_timeout: 0 cluster.ext_authz-http-service.upstream_rq_total: 125874 cluster.ext_authz-http-service.upstream_rq_tx_reset: 0 cluster.ext_authz-http-service.version: 0 cluster.ext_authz-http-service.warming_state: 0

@zuercher: is there anyway i can reopen this issue. please help. thanks

Look at the metrics for the ext authz cluster. If it’s returning 503 without sending it’s probably the default circuit breaker settings.

Hello @zuercher, we are experiencing more such failures in load scenario, wondering if there is any way in Envoy to retry the call? (we are using ExtAuthz, configuration above)

Hello @alyssawilk, @zuercher, any ideas here? I am looking for how can i retry in case of such failures, appreciate any help. thanks

Hello @zuercher, started a separate thread on how to retries in case of failures
https://github.com/envoyproxy/envoy/issues/33108
appreciate any help. thanks


text:
ratelimit

package envoy.config.ratelimit.v3;
import "envoy/config/core/v3/config_source.proto";
import "envoy/config/core/v3/grpc_service.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
import "validate/validate.proto";
where can I find these proto?

in the envoy case the protos are defined in the api/ directory
for udpa and (i think) validate they are defined over in the xds repo (https://github.com/cncf/xds)

correction - the validate proto is here https://github.com/bufbuild/protoc-gen-validate

source: gharchive/issue

repo: envoyproxy/envoy

license_type: permissive

license_source: github-api


text:
Configure Envoy from the Envoy filter

Issue Template
Title: *Configure Envoy (Clusters/endpoints and certificates) from the Envoy filter *
Description:

We have implemented a custom filter for Envoy to do some specific processing with regard to routing. In our use case, the Envoy filter contains all the information necessary to configure the Envoy clusters and certificates. The filter fetches the data from a Server which does not support xDS.  Could you please let me know if there is a way to  dynamically configure Envoy from the Envoy filter?

I would look into adding a cluster cluster extension which is now possible. See https://github.com/envoyproxy/envoy/pull/6446

Thank you so much for the quick reply @mattklein123  This sounds like a great approach for us to apply configuration at a cluster level. I will investigate this further. The current model were are following is to leave core envoy untouched and develop filters based on envoy_filter_example. If we wanted to configure Envoy from the filter, would that mean the filter would have to speak the xDS protocol? We also need to configure certificates for TLS termination (Downstream TLS context). We have a requirement to program these certificates dynamically as downstream clients get added and this will not be cluster specific. So I was wondering if there exists a mechanism that would allow adding this configuration too.


text:
http2: migrates metadata_encoder_test.cc away from direct usage of nghttp2

Signed-off-by: Biren Roy birenroy@google.com
Part of addressing https://github.com/envoyproxy/envoy/issues/23596.
Commit Message: Migrates metadata_encoder_test.cc away from direct usage of nghttp2.
Additional Description:
Risk Level: low
Testing: ran the unit tests locally
Docs Changes:
Release Notes:
Platform Specific Features:

/assign @diannahu
/assign @RyanTheOptimist

/assign @bencebeky

FYI spell check failed:
./test/common/http/http2/metadata_encoder_test.cc:97:    // nghttp2_session_callbacks_del(callbacks);

Run tools/spelling/check_spelling_pedantic.py to check or fix it.

/assign @KBaichoo
This one's ready, as soon as it has a deps review.

source: gharchive/pull-request

authors: bencebeky birenroy


text:
http health check: configurable expected HTTP response codes

Description: Makes it possible for http health checks to accept any http response codes configured in a list of ranges expected_statuses. The default behaviour is unchanged - only HTTP 200 response is considered healthy.
Risk Level: Low (does not modify default behaviour)
Testing: Unit tests
Docs Changes: comments describing new field in proto file, short note in health_checking.rst
Release Notes: added info about expected responses configuration
Fixes #4367

@junr03 I have made changes you requested.

@alyssawilk is OOO this week, I'm happy to take a look.


text:
docs: Add initial structure

Signed-off-by: Ryan Northey ryan@synca.io

Codecov Report

Merging #140 (6ce7426) into main (b70df1b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #140   +/-   ##
=======================================
  Coverage   43.15%   43.15%
=======================================
  Files          89       89
  Lines        2338     2338
=======================================
  Hits         1009     1009
  Misses       1329     1329

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b70df1b...6ce7426. Read the comment docs.

authors: codecov-io phlax

repo: envoyproxy/playground


text:
🛑 eos_kodextoken_front is down

In c781b86, eos_kodextoken_front ($EOS_KODEXTOKEN_FRONT_URL) was down:

HTTP code: 403
Response time: 462 ms

Resolved: eos_kodextoken_front is back up in 3067a20.

repo: eos-technology/uptime

license: MIT


text:
'Custom Templates' - User templates are shown without the images in the right pane of the 'Template library'

Affected versions: Standalone, Remote
Steps to reproduce:

Launch Ketcher
Create a structure on the canvas
Click the 'Save As' button
In the opened 'Save Structure' window click the 'Save to Templates' button
Type any text in the 'Template Name' field. Click the 'OK' button.
Open the 'Custom Templates'
Open the User Templates folder

Expected result: The newly created template appears in the Template Library with the assigned name. There is an image of the template in the right pane.
Actual result: The newly created template appears in the Template Library with the assigned name. There is no image of the template in the right pane.

release/2.2 The issue is closed as fixed

repo: epam/ketcher


text:
🛑 Eastbrook Campus is down

In 36b21ea, Eastbrook Campus ($EASTBROOK_CAMPUS) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Eastbrook Campus is back up in ef8283f after 10 minutes.

repo: epederson/Eastbrook-Upptime


text:
[BUG] Parallel Flag no Longer Seems to Do Multiprocessing

It's hard to pinpoint when this change happened for example using the debug build back in February the issue does not exist.
Using Ubuntu 22.04.3 LTS and version 2.10.3 via the official releases, I run the tool like so:
cat urls.txt | feroxbuster --stdin --parallel 4 --time-limit 8h --threads 8 -k --json --depth 2 --timeout 12 -L 6 -w wordlist.txt -o results_dir
Urls.txt can be anything as long as it's >=4 let's say urls.txt is the following:
https://www.tesla.com
https://www.uber.com
https://www.walmart.com
https://www.example.org
https://www.lyft.com

Doing ps aux | grep feroxbuster you'll notice there are only two feroxbuster processes with one of them processing a url. If you use a older version of the tool there would be 5 processes after you grepped, 1 for the original commandline and the other processes that would be spawned in this case 4 because I did parallel 4.
Under the hood are 4 urls still being processed in parallel and it's no longer reflected from just grepping the process? Or did something change that causes parallel to only do 1 process even though parallel was set to 4 meaning it should be 4 processes?

thanks for reporting! i'll see what i can dig up

The issue seems to have been introduced within the v2.10.2 release as it does not exist within the v2.10.1 release. Tested using the same command and just doing ps aux | grep ferox

can you try 2.10.3? looks fine on my end on that version
Every 2.0s: ps aux | grep ferox

epi       9240  1.5  0.0 777540 25344 pts/2    Sl+  20:56   0:00 target/debug/feroxbuster --stdin --parallel 4 --time-limit 8h --threads 8 -k --json --depth 2 --timeout 12 -L 6 -o stuff
epi       9254  375  0.1 777956 37760 pts/2    Sl+  20:56   0:41 target/debug/feroxbuster --time-limit 8h --threads 8 -k --json --depth 2 --timeout 12 -L 6 -o stufffffff-1717894616.logs
epi       9256  217  0.2 777960 86300 pts/2    Sl+  20:56   0:23 target/debug/feroxbuster --time-limit 8h --threads 8 -k --json --depth 2 --timeout 12 -L 6 -o stufffffff-1717894616.logs
epi       9257 26.5  0.1 777960 36864 pts/2    Sl+  20:56   0:02 target/debug/feroxbuster --time-limit 8h --threads 8 -k --json --depth 2 --timeout 12 -L 6 -o stufffffff-1717894616.logs
epi       9309 85.0  0.1 778420 43248 pts/2    Sl+  20:56   0:08 target/debug/feroxbuster --time-limit 8h --threads 8 -k --json --depth 2 --timeout 12 -L 6 -o stufffffff-1717894616.logs

I tried 2.10.3 the debug build and the release build with the commands above and still have the same issue. The debug build that I can no longer download worked with the time limit and parallel flag, is it possible to download that again in the meantime? Didn't know github actions leads things to expire. This is on an EC2 instance:
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

maybe an EC2'ism? how many cores do you have assigned to the machine?

Ah you are correct, I guess after that debug build to now something changed with how parallel flag works and it's based on the total number of CPU cores. I checked the EC2 instance and it's only 1 core, I ran feroxbuster on a VM with 2 cores and there were 2 processes when doing parallel. Was it not bound to the number of cores before and changed to being bound to make it more stable as results could be missed if not?

yea, i reworked parallel recently(ish). It slightly changed how the background processes are spawned, so that makes sense

It does seem to take a lot longer to run as a result of the change though, is there a trade off in regards to accuracy vs speed? Does using async instead of being block lead to more accurate results, I looked into it a bit more with how tokio handles it under the hood and this explains in depth. I would need to compare the older version vs newer version to do some benchmarking but that's something for down the road.

Did you use a debug build? That'll be a lot slower due to lack of optimizations

Turns out it's on me haha, I was using a release build but the wordlist I was using became bloated to 398,676 words instead of the smaller wordlist I usually use. I am still curious about the benchmarking in regards to accuracy vs speed with the new changes as it makes sense how Tokio does it by default althoug you can still manually configure the number of worker threads. Would be interesting to see to compare the older verison vs newer version on a low CPU core machine and compare performance.

glad you figured it out!
i typically do some very un-scientific experiments when i change things like this. performance would have been either roughly the same or better for me to have made the swap (i don't recall exactly). i'd be happy to see any results you come up with though if you decide to play with it


text:
[Spike] how current and never versions of terraform handle disk resize

Is your feature request related to a problem? Please describe.
We don't have comparison based on different criteria on terraform behavior.
Describe the solution you'd like
We need research and small PoC showing how terraform handles disk resize. Preferable matrix of tests should have following axis:

terraform versions
cloud provider
linux distribution images
scale up/down size

Describe alternatives you've considered
No.
Additional context
Originally posted by @seriva in https://github.com/epiphany-platform/epiphany/issues/1325#issuecomment-645196356_

Closing as we currently don't have a valid business case anymore.

authors: mkyc seriva

repo: epiphany-platform/epiphany


text:
[Backport to v0.5] Upgrade Docker to v19.03.14

Backport #1855 to v0.5 branch.
Requires backporting #1888.

0.5 version is not supported, this task is closed after daily discussion with the team.

authors: atsikham to-bar


text:
Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".

Execution details and stacktrace: https://github.com/Glavin001/atom-beautify/issues/1543

Using Ajv in environments that have CSP with usafe-eval restrictions requires precompiling the schemas with ajv-cli.
This PR once published will fix it: https://github.com/ahmadnassri/har-validator/pull/89, provided you don't use HAR.

@prettydiff har-validator in the dependencies tree should have version 4.2.1. If it is before that, you need to re-install. If it's 4.2.1 and it's still broken please let me know.

keep getting unsafe-eval error (tried reinstall ajv), I'm using ajv v5 if it's matter

@idangozlan it's not about ajv version, it's about har-validator version, it should 4.2.1+. Can you please post your dependency tree here (npm ls)?

authors: epoberezkin idangozlan prettydiff

repo: epoberezkin/ajv


text:
fix(trace.py): encode datetime objects

fixes https://github.com/epsagon/epsagon-python/issues/77

:tada: This PR is included in version 1.6.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: enoodle ranrib

repo: epsagon/epsagon-python


text:
Zeroheight documentation - update

Looking at few UI libraries, i found nice features for the documentation, that could be taken into consideration, such as:

priority description - for feedback elements.
anatomy description - it has simple and visual description, which gives nice intro to more detailed description of each piece of the UI element.
accessibility description - to give an idea and additional info for the developers.

This is a huge documentation task, and will not prioritized it now. Can be discussed after Figma 2.0.

This ties into the upgrade of EDS 2.0 documentation. Closing issue.

authors: BirteThornquist akvam laliq

repo: equinor/design-system


text:
README: Installation guide is incorrect

Installing
To install this CLI tool you can run the below command
pip3 install dm

but dm is not this package, but rather https://pypi.org/project/dm/

Resolved

repo: equinor/dm-cli


text:
feat!: enable RBAC authorization by default

BREAKING CHANGE: variable enable_rbac_authorization default value set to true.
Fixes #59

Tests pass 🎉

repo: equinor/terraform-azurerm-key-vault


text:
Ekstrakurikuler Tidak Muncul

mohon bantuannya jika data dapodik sdh update ekskul, kmudian sinkron ulang erapornya (pkai e syncronizer) tp data ekskul ga msuk erapor knpa ya?

Pastikan sudah ditambah ekskul di menu Sekolah => Ekstrakurikuler

repo: eraporsmk/eraporsmk


text:
EGD: more permissive rules for textpart, encoding DHARMA_INSIDENKHampran.xml

moved here from an EGD Gdoc comment.
Originally raised by @arlogriffiths on 6 Feb 2021
I am now resuming my work (dropped after April 2020) on DHARMA_INSIDENKHampran.xml. It has clearly distinct zones, but does not specifically satisfy any of the above criteria warranting use of textpart. Nevertheless, in §3.5 I don't find explicit acknowledgement of the fact that our rule stated here to avoid use encoding boxlike partitions even when it would be natural to do so, generates a bunch of leftovers that don't really fit the ideal type of a pagelike partition formulated in §3.5.
Reply from @danbalogh on 8 Feb 2021
I don't really understand what the problem is and what you would like me to do about it. When would it be "natural" to encode boxlike partitions? What is it that you want to find explicit acknowledgement of? That some cases will not be clear-cut for "pagelike" or "boxlike" handling? I find that the implicit acknowledgement of that in the sentence "when encoding a structurally complex inscription..." is sufficient, but we can make it more explicit if that is your wish. The choice of encoding method will never be mechanistic, and there will always be cases for which we cannot prepare by giving encoders an algorithmic decision process. They'll have to make a decision.
What are you inclined to do in the particular case of Hampran? I gather that you are inclined to use textpart divs. There is nothing forbidding you from that in the text; the EGD only asks you to consider carefully whether this encoding method is essential.
I'm not sure I visualise your inscription correctly, but it seems to me that the main problem is the line in a possibly much later script. To my mind, that would be a separate inscription, but I can see how it is desirable to encode it together with the rest. If so, why don't you create three textparts: 1) for A and the part of B with the legible and presumably older text; 2) for the illegible and presumably later text in B; and 3) for C? I would then create a page break for textpart 1 at the boundary of A and B, and more page breaks for each separate part of C. But your idea of just using line breaks for the bits of C is also perfectly OK by me. Conversely, if you want to go a step further, you could even create 7 textpart divs, so that each of the little bits of C get a separate textpart of their own.
Additional comment by @danbalogh just now:
Regardless of the actual complicated nature of that particular inscription, if the general direction of your comment was that you would like a wider range of arrangements to explicitly permit (or call for) the use of textpart divisions, I would be amenable to changing the EGD to permit or suggest using boxlike divisions for chunks of text that are both visually and semantically distinct. This could be made a generic rule of which the present provision for "visually distinct parts that convey the same message in two (or more) languages" would be a special case. Would that address your concerns about where it is natural to use textparts and about the leftovers that don't fit the idealtype of a pagelike partition?

I propose zoom discussion of this case and my comments originally made in the gdoc. I need to refresh my memory of what the EGD actually says that I was reacting to.
Here's currently display of the inscription in question: .
I must have meant that using box-like partitions is natural here as the inscription itself uses cartouches.
Here is the esampage:

I'm available today to discuss this on Zoom. But it may not be necessary. Having seen the image, I am perfectly happy with your encoding of A, B and C as textparts. I would probably be happier if you treated B5 as yet another textpart, since it seems pretty certain that it is not an integral part of what you now call textpart B.
As I said in my original comment, there is nothing in the EGD that would forbid you from using textparts. As the overview (§3.1) says, you must ask yourself the question, "what does the text do as it reaches the boundary of one zone?" And "if it stops (scheme A), you have a boxlike partition". This is further specified in §3.4.1 as: "there is a semantic discontinuity between the two zones, and there is no unit of intrinsic structure commencing in one and ending in another" - all true in your case. The following cautions only ask you to "consider carefully whether this encoding method is essential" and suggest either encoding the inscriptions in separate documents (if the texts in each box only have a weak connection to one another), or encoding it with pagelike milestones (if there is a strong connection between the texts, and especially if it makes sense to read them in a particular sequence).
So, specifically in your encoding: keep as is, or introduce a new textpart for B5.
And generally in the EGD: if you wish, in §3.4.1 we can change "consider carefully whether this encoding method is essential" to "consider carefully whether this encoding method is ideal".

@arlogriffiths I've made some change suggestions in EGD §3.4.1. If you find them sufficient and you've made your final decision on whether you encode B5 as a separate textpart, then this issue can be closed; otherwise, leave a comment for me.

I think it would be good to include also an explicit mention of a case such as Sangguran as a possibly occasion for encoding box-like partitions.

Perhaps as a case study in the appendix; definitely not in the main text of the guide imo. There will always be complex special cases and I see little advantage in trying to come up with complex rules (or even recommendations) for any particular case. It's the general rules of thumb that need to be explained, so that people can make a decision in any particular case. I'll make a note for myself in the guide about this.

I never actually got around to encoding textparts in DHARMA_INSIDENKHampran.xml so reopening this as a reminder to myself.

authors: arlogriffiths danbalogh

repo: erc-dharma/project-documentation


text:
Allow direct plugin calls with validation & permission hooks

Motivation
In order to support workflows where an action should be allowed only if a plugin allows it (e.g. cold storage: block all transfers unless the plugin authorizes it), we need a way for plugins to directly call into account functions.
However, having the flexibility to still attach validation (and permission) hooks would allow for account-decided limited scopes for each plugin allowed to do this, in contrast with the previously removed permitted call workflow.

Solution
Add a field for allowed direct calls to account storage. This is a mapping from caller to selector to a new struct which contains a boolean and an array of validation hooks.
In _checkPermittedCallerIfNotFromEP called from wrapNativeFunction, we can then check if the call is allowed to occur and execute its respective validation hooks.

TODO/TBD
Depends on user-supplied install configs for plugins to determine how this storage is set on installation (manifest, encoded in user-supplied data?)
Do we want to redesign the system to not need additional storage? Can we do so without complicating plugin developers' mental models of the system?
Update: Modified to use installValidation() which uses user-provided configurations.

Migrated installation to pluginManager2's installValidation(), much nicer now imo-- this reserves the maximum functionId though h/t @adamegyed for the discussion and thought process on this.

Looks good! Remember to address the linter comment for function ordering in the contract

Addressed in d263656!


text:
automated integration tests

Investigate https://github.com/charmbracelet/vhs for this: https://www.youtube.com/watch?v=dtVezRX8OEM

Yeah. I am using expect also for testing. This looks promising.

I tried vhs a bit for testing fq but i'm having trouble making the "golden" output stable, maybe i'm doing something wrong.
@tpodowd Having any success using expect to test readline completion? having trouble with that too :)
Example tape that i tried that changes a bit with every run:
Output test.ascii

Type "fq -i . doc/file.mp3"
Enter
Sleep 0.2s
Type "repeat(empty)"
Enter
Sleep 0.5s
Enter
Ctrl+C
Sleep 0.5s
Type ".h"
Tab
Sleep 0.5s
Enter
Sleep 0.5s
Type ".frames[0] | repl"
Enter
Type ".audi"
Tab
Sleep 0.5s
Enter
Sleep 0.5s
Ctrl+D
Sleep 0.5s
Ctrl+D
Sleep 0.5s
Ctrl+D

Hi @wader - I'm going to be no help and say that for completion testing, I'm not actually testing the terminal output but instead I'm constructing tests around the AutoCompleter interface Do() function which I implement and ensuring my behaviour is right at that level as that is where my complexity is.

@tpodowd I see, no worries 👍 Yeah i do something similar but turned out the test script version of the readline works a tiny bit different so didn't catch a regression. Can post here if i figure how to do it, maybe useful for someone

authors: slingamn tpodowd wader

repo: ergochat/readline


text:
Delete options for cascading deletes

https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/#setting-the-cascading-deletion-policy

I set opitons to k8s.QueryParam("orphanDependents", "false") to do cascading deletes

I think I'm going to encourage query parameters to use k8s.QueryParam instead of introducing typed conveniences. Closing.

authors: ericchiang hongshibao

license_source: bigquery


text:
🛑 Git is down

In d1bc8a6, Git (https://git.drgn.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Git is back up in 68cf161 after 1 hour, 31 minutes.


text:
🛑 Cloud is down

In e2970e1, Cloud (https://cloud.drgn.xyz) was down:

HTTP code: 523
Response time: 1149 ms

Resolved: Cloud is back up in 56d14ec.


text:
MNU doing changes as user without code modification ... as non-SystemUser (DataCurator)

It looks like RowanProjectService >> changes is doing GsCurrentSession currentSession resolveSymbol: #JadeServer) value., instead of doing an indirect lookup of the JadeServer class.
Here's the stack:
a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'value'
---
MessageNotUnderstood >> defaultAction @2 line 3
MessageNotUnderstood (AbstractException) >> _signalWith: @5 line 25
MessageNotUnderstood (AbstractException) >> signal @2 line 47
UndefinedObject (Object) >> doesNotUnderstand: @9 line 10
UndefinedObject (Object) >> _doesNotUnderstand:args:envId:reason: @7 line 12
RowanProjectService >> changes @5 line 5
[] in  ExecBlock1 (JadeServer) >> updateFromSton: @9 line 11
Array (Collection) >> do: @5 line 10
JadeServer64bit32 (JadeServer) >> updateFromSton: @7 line 6
GsNMethod class >> _gsReturnToC @1 line 1

I believe that the proper lookup is
Rowan platform jadeServerClassNamed: #JadeServer.

Fixed in oscar branch ea0af45

authors: dalehenrich ericwinger

repo: ericwinger/Jade


text:
skaffold vulnerabilities found in edge binary

body

Closing as the issue is fixed in us-east1-docker.pkg.dev/k8s-skaffold/scanning/skaffold:edge

repo: ericzzzzzzz/kokoro-codelab-ericwork


text:
evm: add flag to execute in evmone APIv2

Add a flag to ExecutionProcesser to indicate the transaction execution should happen in evmone APIv2 only. This flag is off by default and setting it to on has no effect for now.

I know you are using style /*evm1_v2=*/false. Should I apply it or is it fine considering this is temporary?

We can also set to true by default so enabling evmone APIv2 later will mean removing the , false.

I know you are using style /*evm1_v2=*/false. Should I apply it or is it fine considering this is temporary?

It is fine as you did considering this flag is temporary.

We can also set to true by default so enabling evmone APIv2 later will mean removing the , false.

IMO it's OK not to have a default value for the flag: this way makes it self-evident in each usage of ExecutionProcessor if we're using APIv1 or APIv2 and then we will remove this flag in any case.

authors: canepat chfast

repo: erigontech/silkworm


text:
SessionStorage usage

Hi!
I have an issue how to load data from the session storage. Let say that after login I'm saving some data about user in the browser session, then on page reload I want to first render page on server and then check if I have data in sessionStorage object. If I will add this to componentDidMount() then I have an information that server side render has been discarded. This is because I want to change some layout things, like button label etc. Can I skip this warning or is there a way to make it in a cleaner way?

There is no sessionStorage on the server. I'd recommend using the __CLIENT__ variable with an if statement for when your code is running on the browser. That being said, React might screw at you and tell you that the diff between client and server are not the same.

@mmahalwy Yes, my question was more how to make pure client side promise. Finally I found solution:
@asyncConnect([
  {
    deferred: true, // This solved the problem!
    promise: ({store: {dispatch, getState}}) => {
      return dispatch(loadSessionStorage());
    }
  }
]);

authors: mmahalwy skrobek

license: mit


text:
Repeated warnings when running dev server

npm run dev
yields the following repeated console output:
 Check the render method of `App`.
[1] Warning: Failed Context Types: Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types
``

+1

I invite you to visit my fork: https://github.com/bertho-zero/react-redux-universal-hot-example/

authors: bertho-zero jbeard4 uday-pop


text:
All inputs resets after focusing on any input

Example: after I fill first input and focus on second input previous input resets

My form looks like this:
import styles from './login.styl'
import { reduxForm } from 'redux-form'

class Login extends React.Component {
  static propTypes = {
    fields: React.PropTypes.object.isRequired,
    handleSubmit: React.PropTypes.func.isRequired,
    errorMessage: React.PropTypes.string
  };

  render() {
    const { errorMessage } = this.props
    const { fields: { email, password }, handleSubmit } = this.props

    return (

        <form onSubmit={handleSubmit}>
          <input type='text' placeholder='Email' {...email}/>
          <input type='password' placeholder='Password' {...password} />

          <button onClick={handleSubmit}>
            Login
          </button>
        </form>
      { errorMessage &&
{ errorMessage }
 }

    )
  }
}

export default reduxForm({
  form: 'login',
  fields: ['email', 'password'],
  getFormState: (state, reduxMountPoint) => state.get(reduxMountPoint).toJS()
})(Login)

P.S I'm using immutable state
const rootReducer = combineReducers({
  form: (state, action) => Immutable.fromJS(formReducer(state, action))
})

and babel@6.x

Mea culpa, form reducer should look like this:
import { reducer } from 'redux-form'

export default function formReducer(state, action) {
  const plainState = state ? state.toJS() : state
  return Immutable.fromJS(reducer(plainState, action))
}

Thanks for posting the solution. :+1:

authors: erikras stepankuzmin

repo: erikras/redux-form


text:
Enable initialize in componentWillMount()

Fixes #1385.

Codecov Report

Merging #2797 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master   #2797   +/-   ##
======================================
  Coverage     100%    100%
======================================
  Files          67      67
  Lines        1394    1395    +1
======================================
+ Hits         1394    1395    +1

Impacted Files
Coverage Δ

src/reduxForm.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f5efa54...42eb588. Read the comment docs.

Published in v6.6.3.

authors: codecov-io erikras


text:
not to care about event->name for a file

to avoid appending "/" to the file name when watching a file.

Can you give me a more detailed description of the issue which is fixed by your PR. Or maybe you can provide a test case.

It is a problem only when watching a file. A "/" is often appended to the file path, like below:
# ./inotify_example /tmp/a.txt

Event modify  on "/tmp/a.txt/" at 276237699902451 was triggered.
Event open  on "/tmp/a.txt" at 276237699960573 was triggered, but was not expected
Event modify  on "/tmp/a.txt/" at 276237700096391 was triggered.
Event close_write  on "/tmp/a.txt" at 276237700100407 was triggered, but was not expected

And sometimes, I saw a unprintable character appended after "/". But sorry, I don't know how to reproduce it now.
I'm working on a OpenSUSE Leap 15.1.

Okay, let me try to reproduce it and maybe write a test case for it.

I can confirm that there is an issue. I tried to fix it with #66 but some unit tests failed. I am on it.

About your code changes in #66. event->name can be the name of a file, and it is also possible to be of a new folder. So I think one if (fs::is_directory(path)) check is not enough.

You are right, I updated the pr. Should be fine now.

Fixed with #66 thank you for the contribution!

authors: erikzenker rufuszhou

repo: erikzenker/inotify-cpp


text:
rtcmserver

fatal: repository 'https://github.com/aortner/rtcmserver/' not found
fatal: clone of 'https://github.com/aortner/rtcmserver' into submodule path '/home/pi/RpiNtripBase/external/rtcmserver' failed
Failed to clone 'external/rtcmserver'. Retry scheduled
Cloning into '/home/pi/RpiNtripBase/external/rtcmserver'...

Hope you guys can help please.

Issue resolved, thanks @aortner.

Issue resolved, thanks @aortner.

issue is still there.

authors: RKwalter gerritflysense

repo: eringerli/RpiNtripBase


text:
unable to build for ios

Cannot find type 'AnimationView' in scope
ios/Pods/MonnifyiOSSDK/MonnifyiOSSDK/Modules/Phone/PhoneTransferViewController.swift:26:50

Okay. I will investigate this and get back to you soon.

@odejinmi I will like to see your code please.

authors: ernestkoko odejinmi


text:
Add ability to customize disabled step circle color

Related to #10 .

I have just implemented this myself in a different way, so take a look if you wish. Instead of using a special color for the circles of the disabled steps, now it is possible to choose between steps whose headers look disabled with a lower alpha and steps whose headers look disabled with the grey color of the official specifications:

Again, thanks for the suggestion!

@ernestoyaquello great solution!

authors: WonderCsabo ernestoyaquello

repo: ernestoyaquello/vertical-stepper-form


text:
Unexpected parsing underline in $LaTeX$

I tried it in demo.
There is a LaTeX formula in my markdown
$\Pi_{\text{Sno},\text{Cno}}(\text{SC})\div \Pi_{\text{Cno}}(\text{Course})\bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})$

And it is parsed to
$\Pi{\text{Sno},\text{Cno}}(\text{SC})\div \Pi{\text{Cno}}(\text{Course})\bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})$

in which the underlines _ was parsed to  and I do not expect that.
What should I do to avoid this? Is it a bug or unsupported feature?
By the way, I am using mathjax to render this.

Funnily enough I'd been having my own go at integrating MathJax LaTeX into Parsedown. So here's a hack to do it for now (Parsedown may want to forgo parsing the actual mathjax latex syntax by default though).
I opted to overload the ` inline marker for inline MathJax LaTeX (actual inline code can now be two (``) or more backticks), and have defined a specific language parser for fenced code to show up as block latex
Branch here: https://github.com/aidantwoods/parsedown/tree/mathjaxlatex
Because the text containing the LaTeX now has its own handler, we can avoid Parsedown trying to apply markdown to it.
E.g.
include('Parsedown.php');
include('ParsedownExtensionMathJaxLaTeX.php');

$Parsedown = new ParsedownExtensionMathJaxLaTeX();

test source:

test text inline LaTeX: `x = \int_{0^1}^1(-b \pm \sqrt{b^2-4ac})/(2a)` more
inline text

```
x = \int_{0^1}^1(-b \pm \sqrt{b^2-4ac})/(2a)
```

```latex
x = \int_{0^1}^1(-b \pm \sqrt{b^2-4ac})/(2a)
```

`\Pi_{\text{Sno},\text{Cno}}(\text{SC})\div \Pi_{\text{Cno}}(\text{Course})
\bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})`

```latex
\Pi_{\text{Sno},\text{Cno}}(\text{SC})\div \Pi_{\text{Cno}}(\text{Course})
\bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})
```

```not-latex
\Pi_{\text{Sno},\text{Cno}}(\text{SC})\div \Pi_{\text{Cno}}(\text{Course})
\bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})
```

* line item

``inlineCode``

output:

test text inline LaTeX: \(x = \int_{0^1}^1(-b \pm \sqrt{b^2-4ac})/(2a)\) more
inline text

x = \int_{0^1}^1(-b \pm \sqrt{b^2-4ac})/(2a)

$$
x = \int_{0^1}^1(-b \pm \sqrt{b^2-4ac})/(2a)
$$

\(\Pi_{\text{Sno},\text{Cno}}(\text{SC})\div \Pi_{\text{Cno}}(\text{Course}) \bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})\)

$$
\Pi_{\text{Sno},\text{Cno}}(\text{SC})\div \Pi_{\text{Cno}}(\text{Course})
\bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})
$$

\Pi_{\text{Sno},\text{Cno}}(\text{SC})\div \Pi_{\text{Cno}}(\text{Course})
\bowtie \Pi_{\text{Sno},\text{Sname}}(\text{Student})

line item

inlineCode

authors: aidantwoods foreshadow

repo: erusev/parsedown


text:
Erratas in TBH_S

Apr instead of Abr
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=1493
Abram instead of Abrán
Abraham instead of Abrahán
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=71
dad instead of edad
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=67
Gerar instead of Guerar
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=76
Abimelec instead of Abimélec
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=97
Isacar, Zabulón instead of Isacar y Zabulón
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=114
Kadesh instead of Cadés
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=183
Elah instead of Elá
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=300
Sallum instead of Salum
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=388
Peqahías instead of Pecahías
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=393
Péqah instead of Pécah
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=397
Hoses instead of Hosea
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=414
Evil-merodach instead of Evil-Merodac
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=558
Hageo instead of Ageo
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=620
Hijaspes instead of Histaspes
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=611
Libro bíblico número 15: Esdras https://www.jw.org/finder?wtlocale=S&docid=1101990076&srctype=wol&srcid=share&par=16
Histaspis instead of Histaspes
https://www.jw.org/finder?srcid=jwlshare&wtlocale=S&prefer=lang&docid=46000001&par=647

Wow! Thank you so much, my brother!
I have fixed all these (and some other "Dario" instead of "Darío"). Please send any others you find.

authors: MisaelArciniega erykjj

repo: erykjj/jwpublib


text:
Not easily installed without npm

Not everyone has node or npm installed, but they might want to use the browserified files in their projects.
I can see three solutions to that I'd be happy to contribute with:

Include the dist folder in the repo (while not particularly 'neat', this isn't uncommon)
Add the browserified files to a CDN, so people can include with a <script> tag or download it directly
Add documentation to the README on how to obtain these files if you've never used node/npm before

Do you have any thoughts/preferences on this?
Cheers :smile:

@andytango Have you seen https://wzrd.in before? https://wzrd.in/standalone/es7-shim@latest

It's 2017. Nothing should be used without npm, and you should be using browserify or webpack in your own projects.
wzrd.in is a fine workaround if there's some mysterious reason why you can't use these tools that all modern web dev require.

Hi guys, yes I did get to that eventually, thanks.
@ljharb I've noticed this has been your response to other requests of this nature. Like many JS devs, I absolutely agree that webpack/browserify is the way forward, and I almost exclusively use them on new projects. I'm in the process of migrating my older projects over to this as well, but this can take time.
In this particular case, 'the mysterious reason' is that I was helping out on another team's Rails project that is still using sprockets (so no NPM) and it just isn't ready to integrate webpack yet (think budgets, feature requests, the backlog etc).
They're not full time JS devs, and had been using some ES7 features without realising that browser support isn't universal, and so I wanted to include the shim for this (I'd already added ES5 and ES6), to save them having to check compatibility tables etc.
So yes, the year is 2017, and what an fantastic year it is to be writing JS too! But not everyone's there yet, and for some teams, learning and integrating new tools its a luxury that they can't afford right now.
If this is a project for the community's benefit, would it really be so unreasonable to include a link to the browserified modules on wzrd.in for people who need to include it as a static asset? Surely you'd agree that this is a better alternative than copying and pasting polyfills from MDN or hamstringing ourselves with ES5?

Well said. I'll think about how I want to word the readme section for it.
I still don't believe it's doing them any favors - any time spent not adding npm + browserify or webpack to their Rails app is wasted time - but in this kind of project (shims/polyfills) I think it's worth a link.

authors: JakeChampion andytango ljharb


text:
OTA update of RP2040 binary

Concept

Download Binary to program flash via HTTPGet
Validate downloaded program
Reboot to Execute new program

Based on: https://github.com/es-ude/elastic-ai.runtime.enV5/issues/100#issuecomment-2009156809
ToDo

[ ] Test the implementation provided by rp2040 serial bootloader
[ ] Modify the implementation, so that multiple executable can be stored at the same time
[ ] Add update functionality via HTTPGet to the enV5 code base and test if it works
[ ] Add additional security by validating new binary against Hash transmitted over secured channel

Notes

Multiple binaries at the same time:

modification of the custom bootloader storage -> add additional information about which one should be executed
define two static start address for the different binaries to reduce complexity during build time
add handler to reload old binary if startup with new binary failed

Used this implementatin instead: https://github.com/rhulme/pico-flashloader#using-in-your-own-project. Flashing over usb successful with example

authors: DavidFederl DerDavidos


text:
Add option to select photos from Google Photos and other sources

Currently, the library supports only local photos in Explorer. This makes the library inefficient and incomplete for bigger projects. Please add option to select photos from other sources like Google Photos and other remote options like Drive, Dropbox and so on.

You're right, but AFAIK we can't show / query the images from Google photos or other remote sources. Any idea about the UI and UX?

Hey @esafirm, I think we can have an "other" option the folder activity. Which on clicking would open the documents picker of the system, which would show the photos present in Google Photos, Drive, Dropbox etc which users could select from. I've seen Instagram and Twitter implement a similar architecture to achieve this. Let me know your thoughts.

Okay, so I created a PR (https://github.com/esafirm/android-image-picker/pull/400) with the same capability. @esafirm Please do take a look at it!

authors: SreenuAndroid esafirm india2sarthak

repo: esafirm/android-image-picker


text:
Failing to work with async data from API

Good day.
Please could you kindly assist. I'm failing to work with data asynchronously fetched from an API for the dropdown. It seems I can only work predefined data.
Not sure if I'm making a mistake or there's a special way I need to access the data.
Regards.

Hello there ! What is the problem exactly ?
Currently I have no .fromFuture constructor for the widget to autobuild after an async request. I will look into it and maybe I could add one.
What I would suggest is having a loading flag and keep on loading while your data is being fetched, after that you will have the data you need to populate the dropdown.

Thank you, I'll see if I can try that.
I'd been using set state to update the list variable once the data fetch is complete though the data then isn't available in the dropdown though I can print it in console.

Hmm well that's weird, updating the list and using setState should have updated the dropdown. Would you mind sharing a minimal code to see what is going on ?

Sure, please see below for the minimal version of the class where I'm using the code
`import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../constants.dart';
import '../helpers/network_client.dart';
import '../libraries/custom_multiselect.dart';
import '../libraries/locations_search.dart';
import '../models/country.dart';
import '../pages/search_results.dart';
class SearchForm extends StatefulWidget {
final bool? filterText;
const SearchForm({Key? key, this.filterText}) : super(key: key);
@override
State createState() => _SearchFormState(filterText: filterText);
}
class _SearchFormState extends State {
bool isLoaded = false;
//Search items
List _locations = [];
@override
void initState() {
super.initState();
_searchCriteria();
}
void _searchCriteria() async {
NetworkClient client =
NetworkClient(path: '/search-criteria', method: 'get', parameters: {});
var data = await client.runRequest();
setState(() {
data['locations']['provinces'].forEach((e) {
locations.add(Country(
name: e['name'], id: 'Province${e['id']}', type: 'Province'));
});
});
}
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(kPagePadding),
color: kPrimaryColor,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: LocationsSearch(
searchFieldTextStyle: TextStyle(
height: kTextFieldStyleHeight,
),
items: _locations, // List
fieldToCheck: (c) {
return c.name;
},
itemBuilder: (country) {
return Padding(
padding: const EdgeInsets.all(0),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(0),
color: Colors.white,
),
child: Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: Colors.grey.shade300,
),
)),
child: Padding(
padding: const EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
child: Row(
children: [
Expanded(
flex: 2,
child: Text(
country.name,
),
),
Expanded(
child: Text(
country.type,
textAlign: TextAlign.right,
style: TextStyle(
color: Colors.grey.shade500,
fontStyle: FontStyle.italic,
),
),
),
],
),
),
),
),
);
},
pickedItemBuilder: (country) {
return Container(
decoration: const BoxDecoration(
color: kPrimaryColor,
),
child: Padding(
padding:
const EdgeInsets.symmetric(horizontal: 8, vertical: 3),
child: Wrap(children: [
RichText(
text: TextSpan(
children: [
TextSpan(
text: country.name + ' ',
style: TextStyle(
color: Colors.white,
),
),
WidgetSpan(
child: Icon(
Icons.cancel,
color: Colors.white,
size: 14.0,
),
),
],
),
),
]),
),
);
},
onTapShowedItem: () {},
onPickedChange: (items) {},
onItemAdded: (item) {},
onItemRemoved: (item) {},
sortShowedItems: true,
sortPickedItems: true,
fuzzySearch: FuzzySearch.jaro,
itemsVisibility: ShowedItemsVisibility.onType,
showSelectAllButton: false,
showClearAllButton: false,
maximumShowItemsHeight: 200,
showedItemsBackgroundColor: Colors.white,
pickedItemsContainerMinHeight: 10,
),
),
],
),
);
}
}
`

Thanks for mentioning this ! There was currently a bug and the item list was not correctly rebuilding. The SDK has been also updated to 2.17.0 with the newest version of the library 2.3.0.

Thank you.

authors: esentis tinashepb


text:
Update esp-println version in usage section

Makes a mess with features
Do I need to add this to the changelog? I hope not

I wonder if we need to add links = "esp-println" to prevent mixing versions...

I wonder if we need to add links = "esp-println" to prevent mixing versions...

we have it now https://github.com/esp-rs/esp-hal/blob/598212a02089ad410a66d7926ccfc803e7abac9d/esp-println/Cargo.toml#L9

We should probably yank versions before we added the links field then?

We should probably yank versions before we added the links field then?

Good idea - don't think the old versions are super useful to keep (but wow - a lot to yank)

Good idea - don't think the old versions are super useful to keep (but wow - a lot to yank)

Done :)

authors: MabezDev Szybet bjoernQ bugadani

repo: esp-rs/esp-hal


text:
Various cleanups & extension of timer features in preparation of WiFi

Extended timer module functionality to allow creation of software timers for e.g. wifi
Centralized peripheral enable/disable code
Modified examples accordingly

LGTM!

authors: MabezDev arjanmels


text:
v0.12.0 prep

I'd like to cut a new release, so I can publish the xtensa-atomic-emulation-trap crate. Is there anything anyone is working on that we should wait for?

Not I know of. Can't imagine there is anyone working on anything here currently

authors: MabezDev bjoernQ

repo: esp-rs/xtensa-lx-rt


text:
Fix parsing of lambda blocks

Fix issues with parsing lambdas:

Right now every line needs to have the same indent. However C++ code inside a lambda will have varying indents. Instead of checking for a fixed indent check that the indent is greater than or equal to the indent on the first line. End the block only when the indent decreases.
Allow whitespace after the block indicator. If there is a trailing space its not treated as a block and gets parsed as yaml

Not only does the current parsing look bad it also confuses people into thinking indents in lambdas are not allowed. I have seen people post huge lambdas in discord without a single indent.
Current no whitespace after |-

Current with whitespace after |-

Fixed

I also think it should be looking for tabs as well. I tested this change and it works. Without this if tabs are used then blocks are not recognized. If desired I can update the PR with this change as well:
     // First line of a Block Style
-    multiString: [[/^( +).+$/, "string", "@multiStringContinued.$1"]],
+    multiString: [[/^([ \t]+).+$/, "string", "@multiStringContinued.$1"]],

     // Further lines of a Block Style
     //   Workaround for indentation detection
     multiStringContinued: [
       [
-        /^( *).+$/,
+        /^([ \t]*).+$/,
         {
           cases: {
-            "$1~$S2 *": "string",
+            "$1~$S2[ \t]*": "string",
             "@default": { token: "@rematch", next: "@popall" },
           },
         },

repo: esphome/dashboard


text:
dev

wb

@xiangguoshuai Please avoid submitting your pull requests for testing in the espressif/esp-at project. Instead, we kindly ask that you make them under your own xiangguoshuai/esp-at project.
Thank you for your understanding and cooperation.

authors: ustccw xiangguoshuai

repo: espressif/esp-at


text:
CSI Data

Hi!!I am trying to collect CSI data from ESP32 Wrover-B.I want to know whether there is a limit for CSI data and where does the CSI data store in ESP32 if we are not monitoring in the Laptop.If there is a limit,will it reset and can we access the reset data.

You can connect an SD card to store CSI data in the SD card

Hello, @pampariumeshchandra
Closing this issue, feel free to reopen with more updates. Thanks.

authors: pampariumeshchandra zhanzhaocheng

repo: espressif/esp-csi