Open ghost opened 3 years ago
I suspect this might be related to the fact that sessions are duplicated. Are you running with port reuse enabled?
On a separate note, I recently found out that the listener code in upstream envoy has been considerably refactored and the new approach is not compatible with envoy-vpp. I'm working on a fix.
Do you mean reuse_port in envoy listener settings? As I checked, this option supposed to be true on default. Unfortunately, setting it manually doesn't change anything.
Yes, that's the config I was thinking about. I believe it's default enabled now on main but might not have been some months ago.
Either way, I've rebased the code onto latest envoy and have pulled in a more recent version of vpp. Could you try the latest patch and see if you're still hitting the issue? Everything seems to be working fine in my simple "proxy to backend" test (HttpConnectionManager). But that's not to say the zero-copy rx code has been tested / is compatible with all filters.
Yeah, I've tried only using simple http server. Everything seems to be working fine now if I compile it in release(-c opt) version. In debug build, I still get the same error in assert. envoy.log
Thanks for checking! For whatever reason, I'm not able to reproduce the error. Maybe it's because I'm using wrk as a client but I did try both release and debug imaged for vcl. So we can do two things:
You are right. I think that I didn't clean up my environment. I've rebuilt completely VPP and Envoy, everything seems to be working fine now. Thx for your help. I have one more question, do you know where I could find good knowledge resources about using VCL interface?
I've pulled last patch and built after that. I could check with clean build what happen if I set VCL_RX_ZC to 1.
Hi I've got a problem with latest version of envoy-vpp. Instance of an envoy get crashed after few requests. I tried to build everything in debug mode to check whats going on. After all I got an error in vpp library after first request from client.
/home/vagrant/envoy-vpp/vpp/src/vcl/vppcom.c:2046 (vppcom_session_free_segments) assertion 's->rx_bytes_pending < n_bytes' fails
Here I share full logs from an envoy instance: envoy.log