Could not use extensions in "listener_filters" to get remote IP address in Envoy TCP Proxy

Hello,
I have to build Envoy TCP Proxy as load balancer to forward TCP packets (logs) from some systems to Splunk server.
I configured TCP proxy in envoy.yaml as below:
=====
static_resources:
listeners:

name: listener_528tcp
reuse_port: true
address:
socket_address:
protocol: TCP
address: <IP_ADDRESS>
port_value: 528
listener_filters:

name: envoy.filters.listener.proxy_protocol
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol
name: envoy.filters.listener.original_src
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.listener.original_src.v3.OriginalSrc

filter_chains:

filters:

name: envoy.filters.network.tcp_proxy
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ingress_tcp528
cluster: 528_tcp
idle_timeout: 10s

per_connection_buffer_limit_bytes: 32768
=====

I use envoy-v1.21.1 to test configuration file and the result is OK, but when i start envoy process then push TCP packets to port 528 TCP of envoy proxy, it does not forward TCP packets to endpoints. I check endpoints by command "tcpdump -i ens224 tcp port 528 -vv" and don't see any TCP packets were forwarded from envoy proxy.
I try to delete "listener_filters" block and restart envoy proxy, and push TCP packets to port 528 TCP of envoy proxy then i check endpoints by command "tcpdump -i ens224 tcp port 528 -vv" and i can see TCP packets are sent to endpoints, but the log body contains the IP address of envoy proxy (is not remote/client IP address).
I think my listener_filters block has some configuration issues, but i can not find the reason.
Please help me to solve this case, thanks very much!!

cc @ggreenway @soulxu @rgs1

Note that this won't work unless the load balancer in front of Envoy is speaking ProxyProtocol. The way the ProxyProtocol filter works – and the spec itself mandates this too – is that if it fails to parse the header at the start of the connection, it'll give up and refuse it.
So if things work when you remove the ProxyProtocol listener filter it probably is because your load balancer indeed is not sending the ProxyProtocol header.

Note that this won't work unless the load balancer in front of Envoy is speaking ProxyProtocol. The way the ProxyProtocol filter works – and the spec itself mandates this too – is that if it fails to parse the header at the start of the connection, it'll give up and refuse it.
So if things work when you remove the ProxyProtocol listener filter it probably is because your load balancer indeed is not sending the ProxyProtocol header.

My Envoy Proxy does not have any LBs in front of it for this case. I use Envoy as UDP Proxy too and the endpoints can get the remote/client IP address normally from packets are sent by Envoy. My UDP Proxy configuration as below:

name: listener_528udp
reuse_port: true
address:
socket_address:
protocol: UDP
address: <IP_ADDRESS>
port_value: 528
udp_listener_config:
downstream_socket_config:
max_rx_datagram_size: 9000
listener_filters:

name: envoy.filters.udp_listener.udp_proxy
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig
stat_prefix: ingress_udp528
cluster: 528_udp
upstream_socket_config:
max_rx_datagram_size: 9000
use_original_src_ip: true
========
Why my Envoy Proxy can detect the remote/client IP address in UDP packets, but can not do the same with TPC packets?

When you enable original src filter, it will set IP_TRANSPARENT option on the upstream socket. But IP_TRANSPARENT required CAP_NET_ADMIN capability. so you need to ensure your envoy process has CAP_NET_ADMIN  capability

When you enable original src filter, it will set IP_TRANSPARENT option on the upstream socket. But IP_TRANSPARENT required CAP_NET_ADMIN capability. so you need to ensure your envoy process has CAP_NET_ADMIN  capability

I have tried to set CAP_NET_ADMIN for Envoy processes as below:
root@test-envoy:/etc/envoy# getcap /usr/local/bin/func-e
/usr/local/bin/func-e = cap_net_admin+ep
root@test-envoy:/etc/envoy#
root@test-envoy:/etc/envoy# getcap /root/.func-e/versions/1.21.1/bin/envoy
/root/.func-e/versions/1.21.1/bin/envoy = cap_net_admin+ep
root@test-envoy:/etc/envoy#
root@test-envoy:/etc/envoy# ./status.sh
root       91885       1  0 10:30 pts/0    00:00:00 func-e run -c /etc/envoy/envoy.yaml
root       91890   91885  0 10:30 pts/0    00:00:00 /root/.func-e/versions/1.21.1/bin/envoy -c /etc/envoy/envoy.yaml --admin-address-path /root/.func-e/runs/1650079811770347868/admin-address.txt
tcp        0      0 <IP_ADDRESS>:9901            <IP_ADDRESS>:*               LISTEN      91890/envoy
tcp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*               LISTEN      91890/envoy
tcp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*               LISTEN      91890/envoy
tcp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*               LISTEN      91890/envoy
tcp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*               LISTEN      91890/envoy
udp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*                           91890/envoy
udp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*                           91890/envoy
udp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*                           91890/envoy
udp        0      0 <IP_ADDRESS>:528             <IP_ADDRESS>:*                           91890/envoy
But my Splunk server still receives only UDP packets from my Envoy proxy server as before i do command "setcap CAP_NET_ADMIN" for func-e and envoy bin files. It means TCP packets are droped by Envoy server, because Envoy server still receives TCP packets (logs data) are sent from servers of other systems.

@thangnn4688 do you have log of envoy? Then we can we the connection was rejected. You can run the envoy with parameter ‘-l trace’, then we can get the log.

etcap /root/.func-e/versions/1.21.1/bin/envoy

Also note, those listener filter doesn't have any effect on UDP. So the proxy filter can reject your request due to no proxy protocol header, and no CAP_NET_ADMIN can lead your upstream request failed. That is why your TCP failed, but UDP works.

@thangnn4688 do you have log of envoy? Then we can see why the connection was rejected. You can run the envoy with parameter ‘-l trace’, then we can get the log.

I just run Envoy process (/usr/local/sbin/envoy = cap_net_admin+ep) with parameter ‘-l trace’ then i can see below logs when i send TCP packet to Envoy server:
=====
[2022-04-18 10:05:53.129][23332][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
[2022-04-18 10:05:58.129][23332][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
[2022-04-18 10:06:00.726][23349][debug][filter] [external/envoy/source/extensions/filters/listener/proxy_protocol/proxy_protocol.cc:69] proxy_protocol: New connection accepted
[2022-04-18 10:06:00.726][23349][debug][filter] [external/envoy/source/extensions/filters/listener/proxy_protocol/proxy_protocol.cc:435] failed to read proxy protocol (no bytes read)
[2022-04-18 10:06:00.726][23349][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=1)
[2022-04-18 10:06:00.726][23349][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:115] clearing deferred deletion list (size=1)
[2022-04-18 10:06:03.129][23332][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
[2022-04-18 10:06:08.130][23332][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
When i send UDP packet to Envoy server, the logs are shown as below (and have difference with TCP packet):
=====
[2022-04-18 10:06:23.131][23332][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
[2022-04-18 10:06:23.913][23359][trace][udp] [external/envoy/source/common/network/udp_listener_impl.cc:61] Listener at <IP_ADDRESS>:528 :socket event: 3
[2022-04-18 10:06:23.913][23359][trace][udp] [external/envoy/source/common/network/udp_listener_impl.cc:73] Listener at <IP_ADDRESS>:528 :handleReadCallback
[2022-04-18 10:06:23.913][23359][trace][misc] [external/envoy/source/common/network/utility.cc:648] starting recvmmsg with packets=16 max=9000
[2022-04-18 10:06:23.913][23359][trace][misc] [external/envoy/source/common/network/utility.cc:655] recvmmsg read 1 packets
[2022-04-18 10:06:23.913][23359][debug][misc] [external/envoy/source/common/network/utility.cc:665] Receive a packet with 11 bytes from <IP_ADDRESS>:39807
[2022-04-18 10:06:23.914][23359][debug][filter] [external/envoy/source/extensions/filters/udp/udp_proxy/udp_proxy_filter.cc:172] creating new session: downstream=<IP_ADDRESS>:39807 local=<IP_ADDRESS>:528 upstream=<IP_ADDRESS>:528
[2022-04-18 10:06:23.914][23359][debug][filter] [external/envoy/source/extensions/filters/udp/udp_proxy/udp_proxy_filter.cc:188] The original src is enabled for address <IP_ADDRESS>:39807.
[2022-04-18 10:06:23.914][23359][trace][filter] [external/envoy/source/extensions/filters/udp/udp_proxy/udp_proxy_filter.cc:236] writing 11 byte datagram upstream: downstream=<IP_ADDRESS>:39807 local=<IP_ADDRESS>:528 upstream=<IP_ADDRESS>:528
[2022-04-18 10:06:23.914][23359][trace][misc] [external/envoy/source/common/network/utility.cc:549] sendmsg bytes 11
[2022-04-18 10:06:23.914][23359][trace][misc] [external/envoy/source/common/network/utility.cc:648] starting recvmmsg with packets=16 max=9000
[2022-04-18 10:06:23.914][23359][trace][udp] [external/envoy/source/common/network/udp_listener_impl.cc:100] Listener at <IP_ADDRESS>:528 :handleWriteCallback
[2022-04-18 10:06:28.132][23332][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
[2022-04-18 10:06:33.133][23332][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
I think the problem with TCP packet is began with the log " failed to read proxy protocol (no bytes read)", please explain it more detailed for me to able to understand the reason, thanks very much for your help!

I think the problem with TCP packet is began with the log " failed to read proxy protocol (no bytes read)", please explain it more detailed for me to able to understand the reason, thanks very much for your help!

This is due to you enable the proxy filter, but your request doesn't include the proxy protocol header, you can remove the proxy filter.

But if i remove listener_filters configuration of TCP proxy, the TCP proxy
(a part of Envoy server) can not get remote/client IP address to insert it
into log content that is forwarded to the  endpoints.
Do you have any ideas to solve my case if don't use listener_filters for
TCP proxy?
Thanks very much!
On Mon, Apr 18, 2022, 18:55 Alex Xu @.***> wrote:

I think the problem with TCP packet is began with the log " failed to read
proxy protocol (no bytes read)", please explain it more detailed for me to
able to understand the reason, thanks very much for your help!
This is due to you enable the proxy filter, but your request doesn't
include the proxy protocol header, you can remove the proxy filter.
—
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/issues/20776#issuecomment-1101342473,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APDAP3EMYED63L5K4XVJZF3VFVETPANCNFSM5TFI2YSQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

name: envoy.filters.listener.proxy_protocol
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol

not remove TCP proxy filter, remove the proxy filter under listener_filters
name: envoy.filters.listener.proxy_protocol
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol

I just remove extension original_src_ip and use only extention
proxy_protocol, the result is TCP proxy still drop/filter all TCP packets
are sent to Envoy server.
Only when i remove listener_filters block, the TCP packets are able to be
forwarded to the endpoints.
This case is so hard!
On Mon, Apr 18, 2022, 21:37 Alex Xu @.***> wrote:

name: envoy.filters.listener.proxy_protocol
typed_config:
@.*** https://github.com/type':
type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol

not remove TCP proxy filter, remove the proxy filter under
listener_filters
name: envoy.filters.listener.proxy_protocol
typed_config:
@.***': type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol
—
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/issues/20776#issuecomment-1101459082,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APDAP3HPN737CKJLRBZJ4V3VFVXRPANCNFSM5TFI2YSQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

name: envoy.filters.listener.proxy_protocol
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol

not remove TCP proxy filter, remove the proxy filter under listener_filters
name: envoy.filters.listener.proxy_protocol
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol

This is the log content of Envoy process when i use only extention "original_src" for TCP proxy:

[2022-04-19 15:37:46.416][24571][debug][main] [external/envoy/source/server/server.cc:209] flushing stats
[2022-04-19 15:37:50.846][24581][debug][filter] [external/envoy/source/extensions/filters/listener/original_src/original_src.cc:24] Got a new connection in the original_src filter for address <IP_ADDRESS>:48694. Marking with 0
[2022-04-19 15:37:50.847][24581][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:249] [C0] new tcp proxy session
[2022-04-19 15:37:50.847][24581][trace][connection] [external/envoy/source/common/network/connection_impl.cc:349] [C0] readDisable: disable=true disable_count=0 state=0 buffer_length=0
[2022-04-19 15:37:50.847][24581][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:397] [C0] Creating connection to cluster 528_tcp
[2022-04-19 15:37:50.847][24581][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:98] creating a new connection
[2022-04-19 15:37:50.847][24581][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:383] [C1] connecting
[2022-04-19 15:37:50.847][24581][debug][connection] [external/envoy/source/common/network/connection_impl.cc:860] [C1] connecting to <IP_ADDRESS>:528
[2022-04-19 15:37:50.847][24581][debug][connection] [external/envoy/source/common/network/connection_impl.cc:876] [C1] connection in progress
[2022-04-19 15:37:50.847][24581][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:125] queueing request due to no available connections
[2022-04-19 15:37:50.847][24581][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:328] [C0] new connection
[2022-04-19 15:37:50.847][24581][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C0] socket event: 2
[2022-04-19 15:37:50.847][24581][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C0] write ready
[2022-04-19 15:37:51.346][24581][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:422] [C1] connect timeout
[2022-04-19 15:37:51.346][24581][debug][connection] [external/envoy/source/common/network/connection_impl.cc:133] [C1] closing data_to_write=0 type=1
[2022-04-19 15:37:51.346][24581][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C1] closing socket: 1
[2022-04-19 15:37:51.346][24581][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C1] raising connection event 1
[2022-04-19 15:37:51.346][24581][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:140] [C1] client disconnected
[2022-04-19 15:37:51.346][24581][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:559] [C0] connect timeout
[2022-04-19 15:37:51.346][24581][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:397] [C0] Creating connection to cluster 528_tcp
[2022-04-19 15:37:51.346][24581][debug][connection] [external/envoy/source/common/network/connection_impl.cc:133] [C0] closing data_to_write=0 type=1
[2022-04-19 15:37:51.346][24581][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C0] closing socket: 1
[2022-04-19 15:37:51.346][24581][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C0] raising connection event 1
[2022-04-19 15:37:51.346][24581][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:76] [C0] adding to cleanup list
[2022-04-19 15:37:51.346][24581][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=1)
[2022-04-19 15:37:51.346][24581][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=2)
[2022-04-19 15:37:51.346][24581][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=3)
[2022-04-19 15:37:51.346][24581][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:115] clearing deferred deletion list (size=3)
[2022-04-19 15:37:51.347][24581][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:255] [C1] connection destroyed
[2022-04-19 15:37:51.417][24571][debug][main] [external/envoy/source/server/server.cc:209] flushing stats

@soulxu do you have any ideas to solve this issue?

@soulxu do you have any ideas to solve this issue?

Sorry, I draft the reply but I forget to send it out.
I didn't get any clue from your log.
Another idea is would you like try my config which works in my local:
admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
      protocol: TCP
      address: <IP_ADDRESS>
      port_value: 9901
static_resources:
  listeners:
  - name: my_listener
    address:
      socket_address:
        protocol: TCP
        address: <IP_ADDRESS>
        port_value: 13333
    listener_filters:
    - name: envoy.filters.listener.original_src
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.filters.listener.original_src.v3.OriginalSrc
    filter_chains:
    - name: tcp
      filters:
        - name: envoy.tcp_proxy
          typed_config:
            "@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
            stat_prefix: ingress_tcp
            cluster: my_cluster
  clusters:
  - name: my_cluster
    connect_timeout: 0.25s
    type: static
    lb_policy: round_robin
    protocol_selection: USE_DOWNSTREAM_PROTOCOL
    load_assignment:
      cluster_name: my_cluster
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: <IP_ADDRESS>
                port_value: 33333

I have tried your config and the result is the same as my config: Envoy proxy still denied/filtered all TCP packets those were sent to port 528/Tcp of Envoy server, as below logs:

[2022-05-04 09:50:26.473][34493][debug][filter] [external/envoy/source/extensions/filters/listener/original_src/original_src.cc:24] Got a new connection in the original_src filter for address <IP_ADDRESS>:38802. Marking with 0
[2022-05-04 09:50:26.474][34493][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:249] [C0] new tcp proxy session
[2022-05-04 09:50:26.474][34493][trace][connection] [external/envoy/source/common/network/connection_impl.cc:349] [C0] readDisable: disable=true disable_count=0 state=0 buffer_length=0
[2022-05-04 09:50:26.474][34493][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:397] [C0] Creating connection to cluster 528_tcp
[2022-05-04 09:50:26.474][34493][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:98] creating a new connection
[2022-05-04 09:50:26.474][34493][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:383] [C1] connecting
[2022-05-04 09:50:26.474][34493][debug][connection] [external/envoy/source/common/network/connection_impl.cc:860] [C1] connecting to <IP_ADDRESS>:528
[2022-05-04 09:50:26.474][34493][debug][connection] [external/envoy/source/common/network/connection_impl.cc:876] [C1] connection in progress
[2022-05-04 09:50:26.474][34493][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:125] queueing request due to no available connections
[2022-05-04 09:50:26.474][34493][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:328] [C0] new connection
[2022-05-04 09:50:26.474][34493][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C0] socket event: 2
[2022-05-04 09:50:26.474][34493][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C0] write ready
[2022-05-04 09:50:26.974][34493][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:422] [C1] connect timeout
[2022-05-04 09:50:26.974][34493][debug][connection] [external/envoy/source/common/network/connection_impl.cc:133] [C1] closing data_to_write=0 type=1
[2022-05-04 09:50:26.974][34493][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C1] closing socket: 1
[2022-05-04 09:50:26.974][34493][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C1] raising connection event 1
[2022-05-04 09:50:26.974][34493][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:140] [C1] client disconnected
[2022-05-04 09:50:26.974][34493][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:559] [C0] connect timeout
[2022-05-04 09:50:26.974][34493][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:397] [C0] Creating connection to cluster 528_tcp
[2022-05-04 09:50:26.974][34493][debug][connection] [external/envoy/source/common/network/connection_impl.cc:133] [C0] closing data_to_write=0 type=1
[2022-05-04 09:50:26.974][34493][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C0] closing socket: 1
[2022-05-04 09:50:26.974][34493][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C0] raising connection event 1
[2022-05-04 09:50:26.974][34493][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:76] [C0] adding to cleanup list
[2022-05-04 09:50:26.974][34493][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=1)
[2022-05-04 09:50:26.974][34493][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=2)
[2022-05-04 09:50:26.974][34493][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=3)
[2022-05-04 09:50:26.974][34493][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:115] clearing deferred deletion list (size=3)
[2022-05-04 09:50:26.974][34493][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:255] [C1] connection destroyed
@soulxu do you have any load balancers is in front of your Envoy proxy?

@soulxu do you have any load balancers is in front of your Envoy proxy?

no, I don't have it. I just connected to envoy directly by curl -v HTTP://<IP_ADDRESS>:13333, and I run fortio server --http-port 33333 as backend server.  I just connected to envoy directly by curl -v HTTP://<IP_ADDRESS>:13333, and I run fortio server --http-port 33333 as backend server. I can get the http 200 returned.
Would you like to try exact same config like me? start something simple first.

@soulxu Yes, please share your config file to me to try it, many thanks.
In other guess, do you think i should use registered/dynamic ports to replace the well-known port (currently i am using Tcp 528)?

@soulxu do you have any load balancers is in front of your Envoy proxy?

no, I don't have it. I just connected to envoy directly by curl -v HTTP://<IP_ADDRESS>:13333, and I run fortio server --http-port 33333 as backend server. I can get the http 200 returned.
Would you like to try exact same config like me? start something simple first.

@soulxu Yes, please share your config file to me to try it, many thanks. In other guess, do you think i should use registered/dynamic ports to replace the well-known port (currently i am using port 528/Tcp)?

the above config is all my setup. you can try to use exact same port and also use fortio as backend server.

@soulxu do you have any load balancers is in front of your Envoy proxy?

no, I don't have it. I just connected to envoy directly by curl -v HTTP://<IP_ADDRESS>:13333, and I run fortio server --http-port 33333 as backend server. I can get the http 200 returned.
Would you like to try exact same config like me? start something simple first.

@soulxu Yes, please share your config file to me to try it, many thanks. In other guess, do you think i should use registered/dynamic ports to replace the well-known port (currently i am using port 528/Tcp)?

the above config is all my setup. you can try to use exact same port and also use fortio as backend server.

@soulxu i try your config and get the below logs:

[2022-05-04 14:17:31.533][34945][debug][filter] [external/envoy/source/extensions/filters/listener/original_src/original_src.cc:24] Got a new connection in the original_src filter for address <IP_ADDRESS>:56402. Marking with 0
[2022-05-04 14:17:31.533][34945][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:249] [C0] new tcp proxy session
[2022-05-04 14:17:31.533][34945][trace][connection] [external/envoy/source/common/network/connection_impl.cc:349] [C0] readDisable: disable=true disable_count=0 state=0 buffer_length=0
[2022-05-04 14:17:31.533][34945][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:397] [C0] Creating connection to cluster my_cluster
[2022-05-04 14:17:31.533][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:98] creating a new connection
[2022-05-04 14:17:31.533][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:383] [C1] connecting
[2022-05-04 14:17:31.533][34945][debug][connection] [external/envoy/source/common/network/connection_impl.cc:860] [C1] connecting to <IP_ADDRESS>:33333
[2022-05-04 14:17:31.533][34945][debug][connection] [external/envoy/source/common/network/connection_impl.cc:876] [C1] connection in progress
[2022-05-04 14:17:31.533][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:125] queueing request due to no available connections
[2022-05-04 14:17:31.533][34945][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:328] [C0] new connection
[2022-05-04 14:17:31.533][34945][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C0] socket event: 2
[2022-05-04 14:17:31.533][34945][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C0] write ready
[2022-05-04 14:17:31.782][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:422] [C1] connect timeout
[2022-05-04 14:17:31.782][34945][debug][connection] [external/envoy/source/common/network/connection_impl.cc:133] [C1] closing data_to_write=0 type=1
[2022-05-04 14:17:31.782][34945][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C1] closing socket: 1
[2022-05-04 14:17:31.782][34945][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C1] raising connection event 1
[2022-05-04 14:17:31.782][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:140] [C1] client disconnected
[2022-05-04 14:17:31.782][34945][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:559] [C0] connect timeout
[2022-05-04 14:17:31.782][34945][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:397] [C0] Creating connection to cluster my_cluster
[2022-05-04 14:17:31.782][34945][debug][connection] [external/envoy/source/common/network/connection_impl.cc:133] [C0] closing data_to_write=0 type=1
[2022-05-04 14:17:31.782][34945][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C0] closing socket: 1
[2022-05-04 14:17:31.782][34945][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C0] raising connection event 1
[2022-05-04 14:17:31.782][34945][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:76] [C0] adding to cleanup list
[2022-05-04 14:17:31.782][34945][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=1)
[2022-05-04 14:17:31.782][34945][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=2)
[2022-05-04 14:17:31.782][34945][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=3)
[2022-05-04 14:17:31.782][34945][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:115] clearing deferred deletion list (size=3)
[2022-05-04 14:17:31.782][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:255] [C1] connection destroyed

They look like my logs too, and i think the key line contains words "queueing request due to no available connections".
Why does Envoy proxy colud not see any available connections?

@soulxu do you have any ideas?

Sorry, I have no idea, but it seems failed at connection timeout.

[2022-05-04 14:17:31.782][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:140] [C1] client disconnected
[2022-05-04 14:17:31.782][34945][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:559] [C0] connect timeout

Sorry, I have no idea, but it seems failed at connection timeout.

[2022-05-04 14:17:31.782][34945][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:140] [C1] client disconnected
[2022-05-04 14:17:31.782][34945][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:559] [C0] connect timeout

@soulxu pls see below logs those are created when i remove "listener_filters" block in envoy.yaml:

[2022-05-05 16:20:23.740][35899][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:249] [C0] new tcp proxy session
[2022-05-05 16:20:23.740][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:349] [C0] readDisable: disable=true disable_count=0 state=0 buffer_length=0
[2022-05-05 16:20:23.740][35899][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:397] [C0] Creating connection to cluster 528_tcp
[2022-05-05 16:20:23.740][35899][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:98] creating a new connection
[2022-05-05 16:20:23.740][35899][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:383] [C1] connecting
[2022-05-05 16:20:23.740][35899][debug][connection] [external/envoy/source/common/network/connection_impl.cc:860] [C1] connecting to <IP_ADDRESS>:528
[2022-05-05 16:20:23.740][35899][debug][connection] [external/envoy/source/common/network/connection_impl.cc:876] [C1] connection in progress
[2022-05-05 16:20:23.740][35899][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:125] queueing request due to no available connections
[2022-05-05 16:20:23.740][35899][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:328] [C0] new connection
[2022-05-05 16:20:23.740][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C0] socket event: 2
[2022-05-05 16:20:23.740][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C0] write ready
[2022-05-05 16:20:23.740][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C1] socket event: 2
[2022-05-05 16:20:23.740][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C1] write ready
[2022-05-05 16:20:23.740][35899][debug][connection] [external/envoy/source/common/network/connection_impl.cc:665] [C1] connected
[2022-05-05 16:20:23.740][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C1] raising connection event 2
[2022-05-05 16:20:23.740][35899][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:303] [C1] assigning connection
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:349] [C0] readDisable: disable=false disable_count=1 state=0 buffer_length=0
[2022-05-05 16:20:23.741][35899][debug][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:660] [C0] TCP:onUpstreamEvent(), requestedServerName:
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C0] socket event: 3
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C0] write ready
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:585] [C0] read ready. dispatch_buffered_data=false
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/raw_buffer_socket.cc:24] [C0] read returns: 11
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/raw_buffer_socket.cc:24] [C0] read returns: 0
[2022-05-05 16:20:23.741][35899][trace][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:570] [C0] downstream connection received 11 bytes, end_stream=true
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:470] [C1] writing 11 bytes, end_stream true
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C1] socket event: 2
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C1] write ready
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/raw_buffer_socket.cc:67] [C1] write returns: 11
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C1] socket event: 2
[2022-05-05 16:20:23.741][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C1] write ready
[2022-05-05 16:20:23.781][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C1] socket event: 2
[2022-05-05 16:20:23.781][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C1] write ready
[2022-05-05 16:20:24.005][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:547] [C1] socket event: 3
[2022-05-05 16:20:24.005][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:656] [C1] write ready
[2022-05-05 16:20:24.005][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:585] [C1] read ready. dispatch_buffered_data=false
[2022-05-05 16:20:24.005][35899][trace][connection] [external/envoy/source/common/network/raw_buffer_socket.cc:24] [C1] read returns: 0
[2022-05-05 16:20:24.005][35899][trace][filter] [external/envoy/source/common/tcp_proxy/tcp_proxy.cc:616] [C0] upstream connection received 0 bytes, end_stream=true
[2022-05-05 16:20:24.005][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:470] [C0] writing 0 bytes, end_stream true
[2022-05-05 16:20:24.005][35899][debug][connection] [external/envoy/source/common/network/connection_impl.cc:633] [C1] remote close
[2022-05-05 16:20:24.005][35899][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C1] closing socket: 0
[2022-05-05 16:20:24.005][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C1] raising connection event 0
[2022-05-05 16:20:24.005][35899][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:140] [C1] client disconnected
[2022-05-05 16:20:24.005][35899][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=1)
[2022-05-05 16:20:24.005][35899][debug][connection] [external/envoy/source/common/network/connection_impl.cc:133] [C0] closing data_to_write=0 type=0
[2022-05-05 16:20:24.005][35899][debug][connection] [external/envoy/source/common/network/connection_impl.cc:243] [C0] closing socket: 1
[2022-05-05 16:20:24.005][35899][trace][connection] [external/envoy/source/common/network/connection_impl.cc:410] [C0] raising connection event 1
[2022-05-05 16:20:24.005][35899][debug][conn_handler] [external/envoy/source/server/active_tcp_listener.cc:76] [C0] adding to cleanup list
[2022-05-05 16:20:24.005][35899][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=2)
[2022-05-05 16:20:24.005][35899][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:252] item added to deferred deletion list (size=3)
[2022-05-05 16:20:24.005][35899][trace][main] [external/envoy/source/common/event/dispatcher_impl.cc:115] clearing deferred deletion list (size=3)
[2022-05-05 16:20:24.005][35899][debug][pool] [external/envoy/source/common/tcp/original_conn_pool.cc:255] [C1] connection destroyed

Could you see any key words in the logs?

@soulxu i see both yaml file with and without block "listener_filters", Envoy TCP proxy always generates log "queueing request due to no available connections" in first socket event. But in second socket event, only yaml file without "listener_filters" can establish connection to endpoint successfully.

@soulxu i see both yaml file with and without block "listener_filters", Envoy TCP proxy always generates log "queueing request due to no available connections" in first socket event. But in second socket event, only yaml file without "listener_filters" can establish connection to endpoint successfully.

I think that is normal, the connection pool without available connections after startup.

@soulxu do you have to configure any special options for server OS or server firewall in your Envoy server?

@soulxu do you have to configure any special settings for server OS (exp: sysctl.conf) or server firewall (exp: iptables, firewalld) in your Envoy server?

@soulxu do you have to configure any special settings for server OS (exp: sysctl.conf) or server firewall (exp: iptables, firewalld) in your Envoy server?

no, I don't have it. I test this config on the v1.21.1 also, can't reproduce your problem.

@soulxu i use Envoy version 1.18.2/clean-getenvoy-76c310e-envoy/RELEASE/BoringSSL from Tetrate-getenvoy-rpm-stable repository, in CentOS 7.9.
I also use Envoy v1.21.1 via func-e in Ubuntu 20.04 to try your config, but the issue still occurs.

@soulxu i try to use Envoy and Func-e in Ubuntu 20.04 (with stop iptables/firewalld in server) to run your config and get the same issue as i try it in CentOS 7.9

@soulxu i have tried Envoy 1.23.0-dev and see the below logs:

[2022-05-18 08:35:39.537][83165][debug][filter] [source/extensions/filters/listener/original_src/original_src.cc:23] Got a new connection in the original_src filter for address <IP_ADDRESS>:50052. Marking with 0
[2022-05-18 08:35:39.537][83165][debug][filter] [source/common/tcp_proxy/tcp_proxy.cc:197] [C0] new tcp proxy session
[2022-05-18 08:35:39.537][83165][trace][connection] [source/common/network/connection_impl.cc:357] [C0] readDisable: disable=true disable_count=0 state=0 buffer_length=0
[2022-05-18 08:35:39.537][83165][debug][filter] [source/common/tcp_proxy/tcp_proxy.cc:369] [C0] Creating connection to cluster 528_tcp
[2022-05-18 08:35:39.538][83165][debug][misc] [source/common/upstream/cluster_manager_impl.cc:1937] Allocating TCP conn pool
[2022-05-18 08:35:39.538][83165][debug][pool] [source/common/conn_pool/conn_pool_base.cc:268] trying to create new connection
[2022-05-18 08:35:39.538][83165][trace][pool] [source/common/conn_pool/conn_pool_base.cc:269] ConnPoolImplBase 0x46227fc53a90, ready_clients_.size(): 0, busy_clients_.size(): 0, connecting_clients_.size(): 0, connecting_stream_capacity_: 0, num_active_streams_: 0, pending_streams_.size(): 1 per upstream preconnect ratio: 1
[2022-05-18 08:35:39.538][83165][debug][pool] [source/common/conn_pool/conn_pool_base.cc:145] creating a new connection (connecting=0)
[2022-05-18 08:35:39.538][83165][debug][connection] [source/common/network/connection_impl.cc:912] [C1] connecting to <IP_ADDRESS>:528
[2022-05-18 08:35:39.539][83165][debug][connection] [source/common/network/connection_impl.cc:931] [C1] connection in progress
[2022-05-18 08:35:39.539][83165][trace][pool] [source/common/conn_pool/conn_pool_base.cc:131] not creating a new connection, shouldCreateNewConnection returned false.
[2022-05-18 08:35:39.539][83165][debug][conn_handler] [source/server/active_tcp_listener.cc:142] [C0] new connection from <IP_ADDRESS>:50052
[2022-05-18 08:35:39.539][83165][trace][connection] [source/common/network/connection_impl.cc:563] [C0] socket event: 2
[2022-05-18 08:35:39.539][83165][trace][connection] [source/common/network/connection_impl.cc:674] [C0] write ready
[2022-05-18 08:35:40.036][83165][debug][pool] [source/common/conn_pool/conn_pool_base.cc:687] [C1] connect timeout
[2022-05-18 08:35:40.036][83165][debug][connection] [source/common/network/connection_impl.cc:139] [C1] closing data_to_write=0 type=1
[2022-05-18 08:35:40.036][83165][debug][connection] [source/common/network/connection_impl.cc:250] [C1] closing socket: 1
[2022-05-18 08:35:40.036][83165][trace][connection] [source/common/network/connection_impl.cc:418] [C1] raising connection event 1
[2022-05-18 08:35:40.036][83165][debug][pool] [source/common/conn_pool/conn_pool_base.cc:439] [C1] client disconnected, failure reason:
[2022-05-18 08:35:40.036][83165][debug][filter] [source/common/tcp_proxy/tcp_proxy.cc:543] [C0] connect timeout
[2022-05-18 08:35:40.036][83165][debug][filter] [source/common/tcp_proxy/tcp_proxy.cc:369] [C0] Creating connection to cluster 528_tcp
[2022-05-18 08:35:40.036][83165][debug][connection] [source/common/network/connection_impl.cc:139] [C0] closing data_to_write=0 type=1
[2022-05-18 08:35:40.036][83165][debug][connection] [source/common/network/connection_impl.cc:250] [C0] closing socket: 1
[2022-05-18 08:35:40.036][83165][trace][connection] [source/common/network/connection_impl.cc:418] [C0] raising connection event 1
[2022-05-18 08:35:40.036][83165][trace][filter] [source/common/tcp_proxy/tcp_proxy.cc:589] [C0] on downstream event 1, has upstream = true
[2022-05-18 08:35:40.036][83165][trace][conn_handler] [source/server/active_stream_listener_base.cc:111] [C0] connection on event 1
[2022-05-18 08:35:40.036][83165][debug][conn_handler] [source/server/active_stream_listener_base.cc:120] [C0] adding to cleanup list
[2022-05-18 08:35:40.036][83165][trace][main] [source/common/event/dispatcher_impl.cc:249] item added to deferred deletion list (size=1)
[2022-05-18 08:35:40.037][83165][trace][main] [source/common/event/dispatcher_impl.cc:249] item added to deferred deletion list (size=2)
[2022-05-18 08:35:40.037][83165][trace][pool] [source/common/conn_pool/conn_pool_base.cc:131] not creating a new connection, shouldCreateNewConnection returned false.
[2022-05-18 08:35:40.037][83165][trace][main] [source/common/event/dispatcher_impl.cc:249] item added to deferred deletion list (size=3)
[2022-05-18 08:35:40.037][83165][debug][pool] [source/common/conn_pool/conn_pool_base.cc:410] invoking idle callbacks - is_draining_for_deletion_=false
[2022-05-18 08:35:40.037][83165][trace][upstream] [source/common/upstream/cluster_manager_impl.cc:1818] Idle pool, erasing pool for host 0x46227f80c560
[2022-05-18 08:35:40.037][83165][trace][main] [source/common/event/dispatcher_impl.cc:249] item added to deferred deletion list (size=4)
[2022-05-18 08:35:40.037][83165][trace][main] [source/common/event/dispatcher_impl.cc:125] clearing deferred deletion list (size=4)
[2022-05-18 08:35:40.616][83155][debug][main] [source/server/server.cc:251] flushing stats
[2022-05-18 08:35:43.751][83163][debug][filter] [source/extensions/filters/udp/udp_proxy/udp_proxy_filter.cc:311] session idle timeout: downstream=<IP_ADDRESS>:50272 local=<IP_ADDRESS>:528
[2022-05-18 08:35:43.751][83163][debug][filter] [source/extensions/filters/udp/udp_proxy/udp_proxy_filter.cc:277] deleting the session: downstream=<IP_ADDRESS>:50272 local=<IP_ADDRESS>:528 upstream=<IP_ADDRESS>:528

Could you see any new clues from them?

When you use original_src, the expectation is that Envoy use IP_TRANSPARENT to pretend the packet is from the downstream remote ip.
It means the upstream endpoint  <IP_ADDRESS> will reply to the <IP_ADDRESS>(the client), not to <IP_ADDRESS>(envoy ip).

Have you set the routingtable/iptable at node <IP_ADDRESS> reply to nic of <IP_ADDRESS>? (targeting to handle the SYN/ACK <IP_ADDRESS> -> <IP_ADDRESS>)
Have you set the routingtable/iptable at node <IP_ADDRESS> to let envoy/OS handle that above SYN/ACk)?

If either of the two is missing, envoy won't establish tcp connection to  <IP_ADDRESS>.

When you use original_src, the expectation is that Envoy use IP_TRANSPARENT to pretend the packet is from the downstream remote ip.
It means the upstream endpoint <IP_ADDRESS> will reply to the <IP_ADDRESS>(the client), not to <IP_ADDRESS>(envoy ip).
1. Have you set the routingtable/iptable at node <IP_ADDRESS> reply to nic of <IP_ADDRESS>? (targeting to handle the SYN/ACK <IP_ADDRESS> -> <IP_ADDRESS>)

2. Have you set the routingtable/iptable at node <IP_ADDRESS> to let envoy/OS handle that above SYN/ACk)?

If either of the two is missing, envoy won't establish tcp connection to <IP_ADDRESS>.

@lambdai thanks for your help. I check route table in <IP_ADDRESS> - <IP_ADDRESS> and they look like seem OK as below:

root@86# ip route show
default via <IP_ADDRESS> dev ens160 proto static
<IP_ADDRESS>/16 dev docker0 proto kernel scope link src <IP_ADDRESS> linkdown
<IP_ADDRESS>/24 dev ens160 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> via <IP_ADDRESS> dev ens160
<IP_ADDRESS> via <IP_ADDRESS> dev ens160
root@86# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
<IP_ADDRESS>         <IP_ADDRESS>    <IP_ADDRESS>         UG    0      0        0 ens160
<IP_ADDRESS>      <IP_ADDRESS>         <IP_ADDRESS>     U     0      0        0 docker0
<IP_ADDRESS>    <IP_ADDRESS>         <IP_ADDRESS>   U     0      0        0 ens160
<IP_ADDRESS>   <IP_ADDRESS>   <IP_ADDRESS> UGH   0      0        0 ens160
<IP_ADDRESS>   <IP_ADDRESS>   <IP_ADDRESS> UGH   0      0        0 ens160
root@86# telnet <IP_ADDRESS> 528
Trying <IP_ADDRESS>...
Connected to <IP_ADDRESS>.
Escape character is '^]'.

[root@56]# ip route show
default via <IP_ADDRESS> dev ens224 proto static metric 102
<IP_ADDRESS>/24 dev ens224 proto kernel scope link src <IP_ADDRESS> metric 102
[root@56]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
<IP_ADDRESS>         <IP_ADDRESS>    <IP_ADDRESS>         UG    102    0        0 ens224
<IP_ADDRESS>    <IP_ADDRESS>         <IP_ADDRESS>   U     102    0        0 ens224

@lambdai do you see any incorrect configurations from them?

@thangnn4688
I could be wrong but IMHO it seems neither route table is complete. However, normally the specialize routing rules are stored in tables other than table 0. And you may want to dump the rules by ip route show table all.
The point is it's you that set up the routing table. Envoy original_src listener filter should be configured to align with your routing.
Checkout this example
https://docs.mitmproxy.org/stable/howto-transparent/#full-transparent-mode-on-linux

@thangnn4688 I could be wrong but IMHO it seems neither route table is complete. However, normally the specialize routing rules are stored in tables other than table 0. And you may want to dump the rules by ip route show table all.
The point is it's you that set up the routing table. Envoy original_src listener filter should be configured to align with your routing.
Checkout this example https://docs.mitmproxy.org/stable/howto-transparent/#full-transparent-mode-on-linux

@lambdai i tried your URL to configure Iptables as its guide, but still can not make "envoy.filters.listener.original_src" to work proberly.
Could you share me a simple example of iptables configuration that can make "envoy.filters.listener.original_src" to work proberly?

@lambdai could you help me to create a basic configuration for Iptables to support extension "envoy.filters.listener.original_src" ?
I had tried to do it many times but still not ok.

@lambdai in my lab, downstream server and upstream server are in the same subnet (vlan). I read some documents about TPROXY with method Direct Server Return, thay said that downstream server and upstream server should not be in the same subnet.
I use tcpdump to capture packet flow in downstream server, envoy server and upstream server when downstream send tcp packet to upstream, then i see the session SYN between downstream and upstream (not go through Envoy proxy) but it's not success.
Do you think i miss any DSR configurations in three nodes?


The file string is missing

I have ignored that file. My Parse.com and facebook app ids were there. Kindly create your own app at parse and facebook and insert those ids in the strings.xml file

I did that, I was just trying help. Kindly thank you ever so much!

i appreciate it. thanks

It would be better to include that file. Some other resources like activity titles are also there. Maybe you should use a separate xml file for your private data then ignore that file. ;)


Add custom style

wow, seems you dropped those lines from README.md? Nevermind, feel free to remove them from my commit. This is one thing I had (custom style)

now that this is moved, this PR is not needed!

Yes, sorry for the mess. I was unhappy with the settings in the .env :P


Some nodes stops participating in leader elections with tcp transport

Hi,
I try to start example/RaftNode and saw what some nodes can stop participating in leader elections.
What can lead to this behavior?
.NET Core SDK (reflecting any global.json):
Version:   3.1.401
Commit:    5b6f5e5005
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.17763
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\3.1.401\
Host (useful for support):
Version: 3.1.7
Commit:  fcfdef8d6b
The host also has the Hyper-V role installed, if relevant.
node1:
cmd: RaftNode.exe tcp 3262
New cluster leader is elected. Leader address is <IP_ADDRESS>:3264
Term of local cluster member is 911. Election timeout 00:00:00.2750000
Consensus cannot be reached
Term of local cluster member is 911. Election timeout 00:00:00.2750000
New cluster leader is elected. Leader address is <IP_ADDRESS>:3264
Term of local cluster member is 913. Election timeout 00:00:00.2330000
Consensus cannot be reached
Term of local cluster member is 913. Election timeout 00:00:00.2330000
New cluster leader is elected. Leader address is <IP_ADDRESS>:3264
Term of local cluster member is 919. Election timeout 00:00:00.2880000

node2:
cmd: RaftNode.exe tcp 3263
New cluster leader is elected. Leader address is <IP_ADDRESS>:3264
Term of local cluster member is 911. Election timeout 00:00:00.2720000
Consensus cannot be reached
Term of local cluster member is 911. Election timeout 00:00:00.2720000
New cluster leader is elected. Leader address is <IP_ADDRESS>:3264
Term of local cluster member is 913. Election timeout 00:00:00.2720000
Consensus cannot be reached
Term of local cluster member is 913. Election timeout 00:00:00.2720000
New cluster leader is elected. Leader address is <IP_ADDRESS>:3264
Term of local cluster member is 919. Election timeout 00:00:00.1820000

node3: Problem node
cmd: RaftNode.exe tcp 3264
Consensus cannot be reached
Term of local cluster member is 465. Election timeout 00:00:00.1930000
New cluster leader is elected. Leader address is <IP_ADDRESS>:3263
Term of local cluster member is 469. Election timeout 00:00:00.2030000
Consensus cannot be reached
Term of local cluster member is 469. Election timeout 00:00:00.2030000

In fact, I have seen the same behavior when trying to use RaftCluster with TCP transport in our project and cannot find the problem. So I tried to reproduce the problem with the example project.
Another problem is that after a while, the worker node stops with an assertion error:
Process terminated. Assertion failed.
   at DotNext.Net.Cluster.Consensus.Raft.TransportServices.ClientExchange.ProcessInboundMessageAsync(PacketHeaders headers, ReadOnlyMemory`1 payload, EndPoint sender, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\TransportServices\ClientExchange.cs:line 70
   at DotNext.Net.Cluster.Consensus.Raft.Tcp.TcpClient.ClientNetworkStream.Exchange(IExchange exchange, Memory`1 buffer, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\Tcp\TcpClient.cs:line 59
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at DotNext.Net.Cluster.Consensus.Raft.Tcp.TcpClient.ClientNetworkStream.Exchange(IExchange exchange, Memory`1 buffer, CancellationToken token)
   at DotNext.Net.Cluster.Consensus.Raft.Tcp.TcpClient.Enqueue(IExchange exchange, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\Tcp\TcpClient.cs:line 139
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at DotNext.Net.Cluster.Consensus.Raft.Tcp.TcpClient.Enqueue(IExchange exchange, CancellationToken token)
   at DotNext.Net.Cluster.Consensus.Raft.TransportServices.ExchangePeer.SendAsync[TResult,TExchange](TExchange exchange, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\TransportServices\ExchangePeer.cs:line 48
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at DotNext.Net.Cluster.Consensus.Raft.TransportServices.ExchangePeer.SendAsync[TResult,TExchange](TExchange exchange, CancellationToken token)
   at DotNext.Net.Cluster.Consensus.Raft.TransportServices.ExchangePeer.VoteAsync(Int64 term, Int64 lastLogIndex, Int64 lastLogTerm, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\TransportServices\ExchangePeer.cs:line 68
   at DotNext.Net.Cluster.Consensus.Raft.RaftClusterMember.DotNext.Net.Cluster.Consensus.Raft.IRaftClusterMember.VoteAsync(Int64 term, Int64 lastLogIndex, Int64 lastLogTerm, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\RaftClusterMember.cs:line 78
   at DotNext.Net.Cluster.Consensus.Raft.CandidateState.VotingState.VoteAsync(IRaftClusterMember voter, Int64 term, IAuditTrail`1 auditTrail, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\CandidateState.cs:line 35
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at DotNext.Net.Cluster.Consensus.Raft.CandidateState.VotingState.VoteAsync(IRaftClusterMember voter, Int64 term, IAuditTrail`1 auditTrail, CancellationToken token)
   at DotNext.Net.Cluster.Consensus.Raft.CandidateState.VotingState..ctor(IRaftClusterMember voter, Int64 term, IAuditTrail`1 auditTrail, CancellationToken token) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\CandidateState.cs:line 55
   at DotNext.Net.Cluster.Consensus.Raft.CandidateState.StartVoting(Int32 timeout, IAuditTrail`1 auditTrail) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\CandidateState.cs:line 131
   at DotNext.Net.Cluster.Consensus.Raft.RaftCluster`1.DotNext.Net.Cluster.Consensus.Raft.IRaftStateMachine.MoveToCandidateState() in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\RaftCluster.cs:line 661
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at DotNext.Net.Cluster.Consensus.Raft.RaftCluster`1.DotNext.Net.Cluster.Consensus.Raft.IRaftStateMachine.MoveToCandidateState()
   at DotNext.Net.Cluster.Consensus.Raft.FollowerState.Track(TimeSpan timeout, IAsyncEvent refreshEvent, Action candidateState, CancellationToken[] tokens) in g:\work\VSNET\github\dotNext\src\cluster\DotNext.Net.Cluster\Net\Cluster\Consensus\Raft\FollowerState.cs:line 34
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining)
   at System.Threading.Tasks.Task.RunContinuations(Object continuationObject)
   at System.Threading.Tasks.Task`1.TrySetResult(TResult result)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetResult(TResult result)
   at DotNext.Threading.QueuedSynchronizer.WaitAsync(WaitNode node, TimeSpan timeout, CancellationToken token) in g:\work\VSNET\github\dotNext\src\DotNext.Threading\Threading\QueuedSynchronizer.cs:line 121
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining)
   at System.Threading.Tasks.Task.RunContinuations(Object continuationObject)
   at System.Threading.Tasks.Task`1.TrySetResult(TResult result)
   at System.Threading.Tasks.TaskFactory.CompleteOnInvokePromise.Invoke(Task completingTask)
   at System.Threading.Tasks.Task.RunContinuations(Object continuationObject)
   at System.Threading.Tasks.Task.TrySetResult()
   at System.Threading.Tasks.Task.DelayPromise.CompleteTimedOut()
   at System.Threading.TimerQueueTimer.CallCallback(Boolean isThreadPool)
   at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
   at System.Threading.TimerQueue.FireNextTimers()

@Eykhler , do you use Raft for replication or consensus only?

I use Raft for consensus only.

Currently, I'm running RaftNode example on Windows 10 Enterprise x64. I'll check uptime tomorrow. At this moment I can't reproduce the issue. @Eykhler , you can try to play with configuration of election timeout. Probably, 150ms/300ms is not an option for your network.

Got it. I will increase the election timeouts and observe the application behavior.

Now I can confirm that bug exists. It's strange but I can't reproduce it on Linux, only on Windows. I have a fix, bug extra time is required for testing because it's not possible to cover this fix with unit test.

It would be great if you have a chance to check the fix from develop branch.

I've tested the changes from the develop branch and can reproduce the error with two nodes starting them sequentially (election timeouts 200/400). Nodes cannot reach consensus and one of them hangs.

After a couple days of tests I can conclude that the develop branch contains a fix for this bug. TCP transport was tested on Windows 10 and Windows 2019 server exactly with the same .NET runtime as described in this issue.
Make sure that you're running the latest build from develop branch. I recommend to use dotnet run RaftNode -- tcp 3262 for sure instead of EXE file.

My bad. I've tested the develop branch from the fork.
Now, after an hour of testing changes from the original project, I can't reproduce the bug.
Thank you for the quick fix!

Patched version is now published on NuGet.


alias confliction

Describe the bug
A clear and concise description of what the bug is.
due to the plugin using /as it conflicts with adamanteshields /as i command
tried forcing it in the sponge config so that adamanteshield prioritizes is but no luck.. this is a big problem for anyone that requires their server to use block loggers.
To Reproduce
Steps to reproduce the bug.
Environment:

Sponge version: [e.g. spongevanilla-1.12.2-7.1.6]
AmberShop version [e.g. 1.0.4]

Stacktrace/Crash report
You may put it on https://paste.ubuntu.com if possible.

/ambershop is also ok.


Crashes after (successfully) programming

I haven't done any investigation as to the cause yet, but in case it's a known bug I figured I'd report it; this consistently happens for me on Linux with an HX8K breakout board:
[emily@yukari:~/src/fpga-playground/blinky-nmigen]$ sudo iceprog -S result/top.bin
Please touch the device.
init..
cdone: low
reset..
cdone: low
programming..
cdone: high
Bye.
*** buffer overflow detected ***: iceprog terminated
Aborted

I tried running iceprog in valgrind, but don't get an error. (I'm on Ubuntu 18.04.3 LTS.) No idea what's going on here. My guess would be atextit() handlers being run in a different order on my system and yours.
Can you create a stack backtrace for this and post it here?

Annoyingly, the segfault seems to be in libftdi:
*** buffer overflow detected ***: /home/emily/src/icestorm/iceprog/iceprog terminated

Thread 1 "iceprog" received signal SIGABRT, Aborted.
0x00007ffff7a60be0 in raise () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
(gdb) bt
#0  0x00007ffff7a60be0 in raise () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
#1  0x00007ffff7a61dc1 in abort () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
#2  0x00007ffff7aa22ac in __libc_message () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
#3  0x00007ffff7b2ef68 in __fortify_fail_abort () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
#4  0x00007ffff7b2ef81 in __fortify_fail () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
#5  0x00007ffff7b2d070 in __chk_fail () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
#6  0x00007ffff7b2ee87 in __fdelt_warn () from /nix/store/g88xj01xv7xzdx9dy2zwga0vk56fpfbm-glibc-2.27/lib/libc.so.6
#7  0x00007ffff7e324a0 in _usb_async_cleanup () from /nix/store/ppqm9bwznn6lx18pwzrsk4iiaswp6yd2-libftdi-0.20/lib/libftdi.so.1
#8  0x00007ffff7e3397a in ftdi_usb_close () from /nix/store/ppqm9bwznn6lx18pwzrsk4iiaswp6yd2-libftdi-0.20/lib/libftdi.so.1
#9  0x000000000052f110 in mpsse_close () at mpsse.c:361
#10 0x000000000052b49c in main (argc=-17319724, argv=0x616000000080) at iceprog.c:975

I'm on NixOS unstable (which is a pretty weird environment, but that shouldn't matter too much here), using libftdi 0.20, and I'm programming an HX8K breakout board.

Okay, maybe NixOS is actually to blame here; it has both libftdi at 0.20 and libftdi1 at 1.4, and the segfault doesn't occur with the latter. I guess I'll update the icestorm package to use the newer version.

This seems to be an old, known bug in libftdi. Not sure why nixpkgs has the old version packaged, but this probably isn't an icestorm bug.


Andreja switch from Male neck to Female neck

Seems BGS typed too fast and used male neck instead of female neck on Andreja. All other textures use female on her.

Details
\ [00] Starfield.esm \ [42] GRUP Top "NPC_" \ [1961] LC165_Lodge_Andreja "Andreja" [NPC_:0010A3DA] \ [29] Morph Groups \ [19] Morph Blend \ [0] BMPN - Blend Name
male_eu_yo1_Neck to female_eu_yo1_Neck
Game Version
<IP_ADDRESS>
Language
English (EN)
New Game
Yes
Reproduction Steps
default settings in starfield.esm

Picture one with female_eu_yo1_Neck

Picture 2 vanilla with male_eu_yo1_Neck


Add self.update_schema, defaults to self.schema

This allows more flexibility while being backwards compatible.
I opened this as a draft for discussion, since I haven't written any tests for it yet.
My use case was a complex SQLAlchemy model where I didn't want to reuse the create schema for updating, since I needed to remove some fields.
What do you think?

I think that this would be a good idea to add as an option.  We can default to the create schema if the user does not provide a update schema.  We would need to add this to all of the routers.

I think that this would be a good idea to add as an option.  We can default to the create schema if the user does not provide a update schema.  We would need to add this to all of the routers.

@andreipopovici what's the status on this? I can finish it up if you like

🙏 I'm busy with other projects and this fell to the wayside. Thank you!
On Thu, Feb 25, 2021 at 21:01 Adam Watkins<EMAIL_ADDRESS>wrote:

@andreipopovici https://github.com/andreipopovici what's the status on
this? I can finish it up if you like
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/awtkns/fastapi-crudrouter/pull/27#issuecomment-786129639,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIXE6IX4YUPCQR6JTUEOATTA2NABANCNFSM4WJHRQ4Q
.


Fix demo deploy volume dir permission issue

Localstack was creating the ./volume dir as root user, causing an issue in the deploy script.  This volume is not needed since we don't persist any data between in localstack between deployments, so just removed all together.

Looks good to me.


World Bank provider fix

So apparently Indicator topic is string option not string...

Just fixed this in #7. I had to change the URL too to avoid hitting cache on my machine...

But thanks for all the help debugging this :)


Release v0.2.0

Hey! I want to update Jekyll Teams to this but it's not on RubyGems. :(

https://github.com/benbalter/squad_goals/releases/tag/v0.2.0

As an added bonus, I even released v0.1.0! https://github.com/benbalter/squad_goals/releases/tag/v0.1.0


Apply python linting and formatting rules to this repository

A lot of the Python scripts are not complying with standard python formatting rules. We should enable tools which check the files are complaint.
Some tools which we should look at are;

pep8
black
pylint
Something which checks for trailing whitespace.
Something which checks for license headers.

Setting these up can be showing by looking at the F4PGA repositories.

@umarcor - Can you help here?

@mohanad0mohamed Could you please take a look here?

@atorkmabrains This issue has been addressed in PV repo

@mithro I think we can close this as that was addressed in the PV repo.

@atorkmabrains I have assumed that we will add new Pcell generators. And for regression used in models, linting issues have been fixed in Mabrains/PR repo.

Thanks @FaragElsayed2 I could see the linting issues has been fixed in Mabrains and Efabless versions.
@mithro Could we close this issue?

@mithro I have opened another issue for merging of Efabless updates #109 .
I'll close this issue. Please don't hesitate to open if you think we still need this issue. As soon as we update Google version with Efabless, we should have the linting code here.


TypeError: init() got an unexpected keyword argument 'output_filename'

I get this error when running the training
%set_env MEDLEYDB_PATH=/home/ec2-user/SageMaker/medleydb
%cd /home/ec2-user/SageMaker/music-trees
! python music_trees/search.py --name height-v1

Stacktrace:
env: MEDLEYDB_PATH=/home/ec2-user/SageMaker/medleydb
/home/ec2-user/SageMaker/music-trees
Global seed set to 42
/home/ec2-user/SageMaker/medleydb/medleydb/__init__.py:64: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  INST_TAXONOMY = yaml.load(fhandle)
/home/ec2-user/SageMaker/medleydb/medleydb/__init__.py:72: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  MIXING_COEFFICIENTS = yaml.load(fhandle)
/home/ec2-user/SageMaker/medleydb/medleydb/__init__.py:94: UserWarning: The medleydb audio was not found at the expected path: None This module will still function, but without the ability to access any of the audio.
  UserWarning
Global seed set to 42
2021-11-12:13:59:08,293 INFO     [tune.py:748] Initializing Ray automatically.For cluster usage or custom Ray initialization, call `ray.init(...)` before `tune.run`.
2021-11-12 13:59:09,772	WARNING experiment.py:272 -- No name detected on trainable. Using DEFAULT.
2021-11-12 13:59:09,773	INFO registry.py:70 -- Detected unknown callable for trainable. Converting to class.
2021-11-12 13:59:09,780	INFO logger.py:606 -- pip install 'ray[tune]' to see TensorBoard files.
2021-11-12 13:59:09,780	WARNING callback.py:115 -- The TensorboardX logger cannot be instantiated because either TensorboardX or one of it's dependencies is not installed. Please make sure you have the latest version of TensorboardX installed: `pip install -U tensorboardx`
(pid=24752) Global seed set to 42
(pid=24752) /home/ec2-user/SageMaker/medleydb/medleydb/__init__.py:64: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
(pid=24752)   INST_TAXONOMY = yaml.load(fhandle)
(pid=24752) /home/ec2-user/SageMaker/medleydb/medleydb/__init__.py:72: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
(pid=24752)   MIXING_COEFFICIENTS = yaml.load(fhandle)
(pid=24752) /home/ec2-user/SageMaker/medleydb/medleydb/__init__.py:94: UserWarning: The medleydb audio was not found at the expected path: None This module will still function, but without the ability to access any of the audio.
(pid=24752)   UserWarning
(pid=24752) Global seed set to 42
== Status ==
Current time: 2021-11-12 13:59:09 (running for 00:00:00.15)
Memory usage on this node: 1.6/15.4 GiB
Using AsyncHyperBand: num_stopped=0
Bracket: Iter 60000.000: None
Resources requested: 1.0/4 CPUs, 1.0/1 GPUs, 0.0/8.63 GiB heap, 0.0/4.31 GiB objects (0.0/1.0 accelerator_type:T4)
Result logdir: /home/ec2-user/SageMaker/music-trees/runs/height-v1-11.12.2021/height-v1
Number of trials: 5/5 (4 PENDING, 1 RUNNING)
+---------------------+----------+----------------------+----------+
| Trial name          | status   | loc                  |   height |
|---------------------+----------+----------------------+----------|
| DEFAULT_b5663_00000 | RUNNING  | <IP_ADDRESS>:24752 |        4 |
| DEFAULT_b5663_00001 | PENDING  |                      |        2 |
| DEFAULT_b5663_00002 | PENDING  |                      |        0 |
| DEFAULT_b5663_00003 | PENDING  |                      |        3 |
| DEFAULT_b5663_00004 | PENDING  |                      |        1 |
+---------------------+----------+----------------------+----------+

(ImplicitFunc pid=24752) PARSING KNOWN ARGS
(ImplicitFunc pid=24752) root
(ImplicitFunc pid=24752) ├── aerophones
(ImplicitFunc pid=24752) │   ├── free aerophones
(ImplicitFunc pid=24752) │   │   └── interruptive free aerophones
(ImplicitFunc pid=24752) │   │       └── interruptive free aerophones_
(ImplicitFunc pid=24752) │   │           ├── accordion
...

Traceback (most recent call last):
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/trial_runner.py", line 890, in _process_trial
    results = self.trial_executor.fetch_result(trial)
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/ray_trial_executor.py", line 788, in fetch_result
    result = ray.get(trial_future[0], timeout=DEFAULT_GET_TIMEOUT)
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/_private/client_mode_hook.py", line 105, in wrapper
    return func(*args, **kwargs)
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/worker.py", line 1625, in get
    raise value.as_instanceof_cause()
ray.exceptions.RayTaskError(TuneError): ray::ImplicitFunc.train_buffered() (pid=24752, ip=<IP_ADDRESS>, repr=<types.ImplicitFunc object at 0x7f1bbef16400>)
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/trainable.py", line 224, in train_buffered
    result = self.train()
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/trainable.py", line 283, in train
    result = self.step()
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/function_runner.py", line 381, in step
    self._report_thread_runner_error(block=True)
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/function_runner.py", line 529, in _report_thread_runner_error
    ("Trial raised an exception. Traceback:\n{}".format(err_tb_str)
ray.tune.error.TuneError: Trial raised an exception. Traceback:
ray::ImplicitFunc.train_buffered() (pid=24752, ip=<IP_ADDRESS>, repr=<types.ImplicitFunc object at 0x7f1bbef16400>)
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/function_runner.py", line 262, in run
    self._entrypoint()
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/function_runner.py", line 331, in entrypoint
    self._status_reporter.get_checkpoint())
  File "/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ray/tune/function_runner.py", line 599, in _trainable_func
    output = fn()
  File "music_trees/search.py", line 110, in run_trial
    return mt.train.train(hparams, use_ray=True)
  File "/home/ec2-user/SageMaker/music-trees/music_trees/train.py", line 107, in train
    output_filename=exp_dir / 'profiler-report.txt'),
TypeError: __init__() got an unexpected keyword argument 'output_filename'

looks like pytorch-lightning==1.2.1 is required. fixed bfc3e4f4f1614f37eed698d93046c1909ed13f3d

Thanks so I have changed it and now pytorch-lightning was installed
/home/ec2-user/SageMaker/music-trees
Obtaining file:///home/ec2-user/SageMaker/music-trees
Requirement already satisfied: pytorch-lightning==1.2.1 in /home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages (from music-trees==0.0.1) (1.2.1)
...

but I get a

due to this error
so I have upgraded to version latest pytorch-lightning.
So this is wiped out!


RedshiftQuery doesn't set port

by default, when tasks from luigi.contrib.redshift have RedshiftTarget as an output, they do not set the port. e.g. in RedshiftQuery:
`
def output(self):
    """
    Returns a RedshiftTarget representing the executed query.
    Normally you don't override this.
    """
    return RedshiftTarget(
        host=self.host,
        database=self.database,
        user=self.user,
        password=self.password,
        table=self.table,
        update_id=self.update_id
    )

`
RedshiftTarget is based on PostgresTarget.
So if your redshift host doesn't include the port, these Tasks will fail, because they will default back to 5432.
so if your Redshift instance is running on the default port, your tasks will fail until you explicitly override the output method, passing the port to the RedshiftTarget constructor.
Not a massive issue, for sure, but for consistencies sake, this ought to be changed.

Can you not just specific the port with <host>:<port> and it be extracted within PostgresTarget's init()?

Thats true. I guess I'm just being pedantic because it means you have to
format the arguments differently for different databases.
On Tue, 24 Jul 2018, 18:57 Dillon Stadther<EMAIL_ADDRESS>wrote:

Can you not just specific the port with : and it be extracted
within PostgresTarget's init()
https://github.com/spotify/luigi/blob/master/luigi/contrib/postgres.py#L125-L129
?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/spotify/luigi/issues/2473#issuecomment-407496626, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AE0C7UDWQHuuRvAgnZTHQWSCYfegLtddks5uJ2AngaJpZM4Vc4z2
.

By default surely the preferable behaviour is for the task to behave
equivalent to PostgresQuery, and just using the default Redshift port?
On Tue, 24 Jul 2018, 18:57 Dillon Stadther<EMAIL_ADDRESS>wrote:

Can you not just specific the port with : and it be extracted
within PostgresTarget's init()
https://github.com/spotify/luigi/blob/master/luigi/contrib/postgres.py#L125-L129
?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/spotify/luigi/issues/2473#issuecomment-407496626, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AE0C7UDWQHuuRvAgnZTHQWSCYfegLtddks5uJ2AngaJpZM4Vc4z2
.

If you have a non-breaking code recommendation to enable the optional ability to provide explicit port, i'll review!

Will get on that tomorrow :)
On Tue, 24 Jul 2018, 19:52 Dillon Stadther<EMAIL_ADDRESS>wrote:

If you have a non-breaking code recommendation to enable the optional
ability to provide explicit port, i'll review!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/spotify/luigi/issues/2473#issuecomment-407514024, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AE0C7bQUm_M0QFfn3bT7c2CSc6zq43F3ks5uJ2z4gaJpZM4Vc4z2
.


question: what would be the simplest way to customize abbreviations?

for instance, my designer wants a capital 'M' for millions v lowercase 'm',
i see i could overwrite my entire locale spec, but i was hoping for a more terse way,
something like:
numeral.language().override({abbreviations: {million: 'M'}})
or i could use underscore/lodash extend() or default() against the abbreviation object if there was a method to return it, but right now it looks like numeral.language() just returns the string name of the language...
regards,
tony.

I came with the same question -- on the numeral home page, I can run numeral.languageData() and get back the object configuring the language. Then I could make my change and away we go -- but it doesn't seem possible with the version on CDN.
In other words, I think we want to be able to tweak the abbreviation without having to tweak anything else. Seems simple but not possible?

@cymen you should be able to using the CDN version as it shouldn't be any different then having the JS loaded locally.
You can modify the object that's returned from numeral.languageData() using underscore/lodash to nil out the abbreviations or do as @wopian showed to overwrite everything.
_.assign(numeral.languageData(), {abbreviations: {}})

It is currently numeral.localeData('en').

In chinese culture, we don't use thousands as a abbreviation, but in 10k, as a '1万'.
Is there any way to make a custom 4 digit per abbreviation local config?

i disabled abbreviations and currencies by adding following two line after setting up locale for numeral
numeral.localeData().abbreviations = {};
numeral.localeData().currency = {};


Dev0.5.4

Initial value of RejoinAfterKickRequiresInvite to False
Fixed Send disconnected user list after updated in host local.
Fixed SendToAll uses config value for Reliability.


Make the console and imgui support utf-8 (Chinese)

I hope you can release a Chinese version of the console. For the time being, I have made some changes to the code, and I will optimize the content of my changes if I have time.
I set the save format of Console.cpp to Unicode-codepage 1200

Do you have proper font management in place?
Do you have proper language management in place?
I dont think you have any single of these things in there judging by what you are committing here...
We cannot make it support one language but not others. We cannot load all glyphs for all languages at once for a font either with system ImGui is using. These need to be managed completely and properly. Without proper managment, you replace one problem with another... That is one giant thing for me here.
Another one, we want to have support for multiple fonts as this was much more requested than this right here. Already have something in place for this.
Now tell me how this what you have here would work with that. That is even more work to get done I'd say :)
Personally, this is a big nope from me, but I'm not the owner of this repo so, we'll see how he responds.

Do you have proper font management in place?
Do you have proper language management in place?
I dont think you have any single of these things in there judging by what you are committing here...
We cannot make it support one language but not others. We cannot load all glyphs for all languages at once for a font either with system ImGui is using. These need to be managed completely and properly. Without proper managment, you replace one problem with another... That is one giant thing for me here.
Another one, we want to have support for multiple fonts as this was much more requested than this right here. Already have something in place for this.
Now tell me how this what you have here would work with that. That is even more work to get done I'd say :)
Personally, this is a big nope from me, but I'm not the owner of this repo so, we'll see how he responds.

Like I dont try now to completely disrespect this btw, just pointing out that what you did will just not work for general use case at all.
More of what my issue with this as a whole is.
If you can make some proper font/language managment that works well with shitty ImGui one which I dont think we can get around easily without even more work, nice.
But just replacing English with Chinnese and calling it Chinnese support is not right.

Like I dont try now to completely disrespect this btw, just pointing out that what you did will just not work for general use case at all.
More of what my issue with this as a whole is.
If you can make some proper font/language managment that works well with shitty ImGui one which I dont think we can get around easily without even more work, nice.
But just replacing English with Chinnese and calling it Chinnese support is not right.

Like I dont try now to completely disrespect this btw, just pointing out that what you did will just not work for general use case at all.
More of what my issue with this as a whole is.
If you can make some proper font/language managment that works well with shitty ImGui one which I dont think we can get around easily without even more work, nice.
But just replacing English with Chinnese and calling it Chinnese support is not right.

I agree with what you said, I will close this request.
I know my behavior is too low-level, and I can understand your thoughts and opinions

Like I dont try now to completely disrespect this btw, just pointing out that what you did will just not work for general use case at all.
More of what my issue with this as a whole is.
If you can make some proper font/language managment that works well with shitty ImGui one which I dont think we can get around easily without even more work, nice.
But just replacing English with Chinnese and calling it Chinnese support is not right.

I agree with what you said, I will close this request.
I know my behavior is too low-level, and I can understand your thoughts and opinions


Cannot enable multiturn extraction in QnA

Describe the bug
It seems that multiturn is not supported by importing URL when creating a QnA kb in Composer. It is supported when creating a KB from scratch and after edits to its .qna file. We should consider removing the multiturn extraction checkbox to avoid customer confusion and anxiety in the KB creation flow.

Version
The main branch as of October 29, 2020
Browser

[x] Chrome

OS

[x] Windows

Expected behavior
We can bring back the multiturn extraction checkbox when multiturn qna is supported by importing URL when creating a QnA kb in Composer.
Screenshots
Importing URL with multiturn extraction checked in Composer: There is no hierarchy and tested multiturn did not work.

Importing URL with multiturn extraction checked in QnA portal: See the hierarchy and tested multiturn worked.

Additional context
Additional description and clarification of how to use multiturn qna will be covered in the docs.

This is a regression bug  in bf-lu package, I'm following up with @feich-ms .


unable to run

running on Ubuntu 15.04. Have the following errors. Tried to upgrade package of six, does not work.
(myevn) osboxes@osboxes:~/myevn/test$ iepy
Traceback (most recent call last):
File "/home/osboxes/myevn/lib/python3.4/site-packages/pkg_resources/init.py", line 614, in _build_master
ws.require(requires)
File "/home/osboxes/myevn/lib/python3.4/site-packages/pkg_resources/init.py", line 920, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/osboxes/myevn/lib/python3.4/site-packages/pkg_resources/init.py", line 812, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (six 1.5.2 (/home/osboxes/myevn/lib/python3.4/site-packages), Requirement.parse('six>=1.7'), {'mock'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/osboxes/myevn/bin/iepy", line 5, in
from pkg_resources import load_entry_point
File "/home/osboxes/myevn/lib/python3.4/site-packages/pkg_resources/init.py", line 3020, in
working_set = WorkingSet._build_master()
File "/home/osboxes/myevn/lib/python3.4/site-packages/pkg_resources/init.py", line 616, in _build_master
return cls._build_from_requirements(requires)
File "/home/osboxes/myevn/lib/python3.4/site-packages/pkg_resources/init.py", line 629, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/home/osboxes/myevn/lib/python3.4/site-packages/pkg_resources/init.py", line 812, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (six 1.5.2 (/home/osboxes/myevn/lib/python3.4/site-packages), Requirement.parse('six>=1.7'), {'mock'})

Same issue here,  first tried with pip install (Python 2.7)
sudo pip install iepy==0.9.4
leads to the error:
Collecting iepy==0.9.4
Downloading iepy-0.9.4.tar.gz (556kB)
100% |████████████████████████████████| 557kB 371kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 20, in
File "/tmp/pip-build-K1_2ph/iepy/setup.py", line 7, in
with open(path.join(HERE, 'README.rst'), encoding='utf-8') as f:
TypeError: 'encoding' is an invalid keyword argument for this function
----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-K1_2ph/iepy
Then tried with with
sudo pip3 install iepy==0.9.4
and installation did finish, and the library and Django project files are installed.  But the iepy command cannot be executed, having the same error as kevin1515 mentioned.

Running use python3 and in a virtualenv could figure it out.But I encounter another problem just post in new issue.

Hello everyone, same issue here. I am on Ubuntu 15.04 and followed the instructions here: http://iepy.readthedocs.org/en/latest/installation.html
When running iepy --download-third-party-data I get:
Traceback (most recent call last):
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 612, in _build_master
ws.require(requires)
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 918, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 810, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (six 1.5.2 (/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages), Requirement.parse('six>=1.7'), {'mock'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/francesca/PY_VIRTUALENV/bin/iepy", line 5, in
from pkg_resources import load_entry_point
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 3018, in
working_set = WorkingSet._build_master()
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 614, in _build_master
return cls._build_from_requirements(requires)
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 627, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 810, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (six 1.5.2 (/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages), Requirement.parse('six>=1.7'), {'mock'})
If I upgrade "six' (to v 1.10.0) I get:
Traceback (most recent call last):
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 612, in _build_master
ws.require(requires)
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 918, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 810, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (six 1.10.0 (/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages), Requirement.parse('six==1.5.2'), {'django-extra-views', 'iepy'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/francesca/PY_VIRTUALENV/bin/iepy", line 5, in
from pkg_resources import load_entry_point
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 3018, in
working_set = WorkingSet._build_master()
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 614, in _build_master
return cls._build_from_requirements(requires)
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 627, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/home/francesca/PY_VIRTUALENV/lib/python3.4/site-packages/pkg_resources/init.py", line 805, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: six==1.5.2
Thanks in advance for your help.

Hi! I was also experiencing this issue and I was able to find a workaround. After some digging around in the virtualenv I established that the issue was that iepy requires (through pip at least) six==1.5.2. Featureforge, another dependence, requires mock, whose latest version, 1.3.0, requires six>=1.7, causing the conflict. The workaround is
pip uninstall mock
and
pip install mock==1.1.0
This earlier version does not put any version requirements on six, just its presence. The intermediate version 1.2.0 instead requires six>=1.7 and so does not solve the conflict.
Hope this helps!

That worked for me! Thank you sbriglie!

Hi all,
I'm receiving the follow error message.  Seems to be related to what sbriglie and other are discussing here.  Can anyone help point me in the right direction for how to fix?  I'm running Ubuntu 14.04 inside of a Docker container on a Macbook Pro machine.  I was able to install all IEPY dependencies, Java, etc, but get hung up with the error below when I try to pip install IEPY itself.  I'm wondering if it could somehow be connected to the fact that python 3 and pip does not work when calling just $ python or pip.  I need to specify python3 and pip3 for everything.  I've tried creating an alias, but it doesn't seem to resolve the problem.  I've also installed mock 1.1.0 as sbriglie suggests above and it doesn't seem to fix either.  Thanks in advance for any and all help!
Downloading/unpacking featureforge==0.1.5 (from iepy)
Downloading featureforge-0.1.5.tar.gz
Running setup.py (path:/tmp/pip_build_root/featureforge/setup.py) egg_info for package featureforge
Traceback (most recent call last):
File "", line 17, in
File "/tmp/pip_build_root/featureforge/setup.py", line 11, in
long_description = open(os.path.join(base_path, 'README.rst')).read()
File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 1383: ordinal not in range(128)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 17, in
File "/tmp/pip_build_root/featureforge/setup.py", line 11, in
long_description = open(os.path.join(base_path, 'README.rst')).read()

File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 1383: ordinal not in range(128)

Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/featureforge
Storing debug log for failure in /root/.pip/pip.log

delgesu1745: your issues is about installing FeatureForge https://github.com/machinalis/featureforge which is one of the IEPY dependencies, and its related with your python not been able to work with unicode characters.
Can you try in your shell to configure your environment like this
export LANG=en_US.UTF-8
and retry?

Respect the issue with six, it's solved on develop now.


pytest ini/command line name collisions?

Not sure how I am supposed to define/name options for a particular plugin to stop them colliding with other plugins' options.

I think prefixing them all with nbsmoke is good practice.

Ok, lucky guess then :)


Review repo security

After chatting/reviewing this with @bjlittle we have updated this to include the Code Scanning Alerts, and are happy to close this as completed.