-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
implement port mirroring #11
Comments
Instead of a built-in tcpdump, what about adding a mirroring node instead ? |
That sounds like a better idea :) I'll adjust the title and description. |
Ack that port mirroring and tcpdump, depending on context, are different requirements, but this may be achievable already with the use of dpdk-dumpcap (secondary process) |
The docstring of event_base_foreach_event() states explicitly that modifying events in the callback function is unsafe and will cause crashes. event_free_finalize tries to acquire a lock that is already held when the callback is called. Leading to a deadlock: (gdb) bt ... DPDK#3 ___pthread_mutex_lock (mutex=0x504000001550) at pthread_mutex_lock.c:93 DPDK#4 0x00007f3f211b8485 in event_finalize_impl_ (flags=65536, ev=0x50c000005200, cb=0x4031ba <finalize_fd>) DPDK#5 0x00000000004042ed in close_connections (ev=0x50c000005200) at main/api.c:174 ... DPDK#10 0x00007f3f211b263a in event_base_foreach_event (base=0x517000006d00, fn=0x40429f <close_connections>, arg=0x0) DPDK#11 0x0000000000404a3a in api_socket_stop () at main/api.c:253 DPDK#12 0x00000000004072aa in main (argc=4, argv=0x7ffcc575d898) at main/main.c:210 Only use event_base_foreach_event() for iterating over the events that we actually want to free (namely, ones that have read_cb and write_cb as callbacks). Only *after* returning from event_base_foreach_event(), call event_free_finalize on all these events. Fixes: 8653320 ("main: close active connections on shutdown") Signed-off-by: Robin Jarry <[email protected]>
The docstring of event_base_foreach_event() states explicitly that modifying events in the callback function is unsafe and will cause crashes. event_free_finalize tries to acquire a lock that is already held when the callback is called. Leading to a deadlock: (gdb) bt ... DPDK#3 ___pthread_mutex_lock (mutex=0x504000001550) at pthread_mutex_lock.c:93 DPDK#4 0x00007f3f211b8485 in event_finalize_impl_ (flags=65536, ev=0x50c000005200, cb=0x4031ba <finalize_fd>) DPDK#5 0x00000000004042ed in close_connections (ev=0x50c000005200) at main/api.c:174 ... DPDK#10 0x00007f3f211b263a in event_base_foreach_event (base=0x517000006d00, fn=0x40429f <close_connections>, arg=0x0) DPDK#11 0x0000000000404a3a in api_socket_stop () at main/api.c:253 DPDK#12 0x00000000004072aa in main (argc=4, argv=0x7ffcc575d898) at main/main.c:210 Only use event_base_foreach_event() for iterating over the events that we actually want to free (namely, ones that have read_cb and write_cb as callbacks). Only *after* returning from event_base_foreach_event(), call event_free_finalize on all these events. Fixes: 8653320 ("main: close active connections on shutdown") Signed-off-by: Robin Jarry <[email protected]>
The docstring of event_base_foreach_event() states explicitly that modifying events in the callback function is unsafe and will cause crashes. event_free_finalize tries to acquire a lock that is already held when the callback is called. Leading to a deadlock: (gdb) bt ... #3 ___pthread_mutex_lock (mutex=0x504000001550) at pthread_mutex_lock.c:93 #4 0x00007f3f211b8485 in event_finalize_impl_ (flags=65536, ev=0x50c000005200, cb=0x4031ba <finalize_fd>) #5 0x00000000004042ed in close_connections (ev=0x50c000005200) at main/api.c:174 ... #10 0x00007f3f211b263a in event_base_foreach_event (base=0x517000006d00, fn=0x40429f <close_connections>, arg=0x0) #11 0x0000000000404a3a in api_socket_stop () at main/api.c:253 #12 0x00000000004072aa in main (argc=4, argv=0x7ffcc575d898) at main/main.c:210 Only use event_base_foreach_event() for iterating over the events that we actually want to free (namely, ones that have read_cb and write_cb as callbacks). Only *after* returning from event_base_foreach_event(), call event_free_finalize on all these events. Fixes: 8653320 ("main: close active connections on shutdown") Signed-off-by: Robin Jarry <[email protected]>
Allow mirroring traffic from a port to a linux tap interface so that we can run regular
tcpdump
on it.Example:
The text was updated successfully, but these errors were encountered: