sorry, forgot to reply-all

Hi Ben,

When i use the same command in sample test application (just int main()..)
they work fine. but when I add them in my multithreaded application, it
does not work.  Please see below Strace output of the application.   even
fully specifying path to vppctl and cli.sock is not working

since it is multithreaded, the main process creates the app
(vppcom_app_create).
another thread configures the interfaces using the CLI (vppctl) - which is
failing these commands
one thread is using VCL to receive, another thread is using VCL to transmit.
before VCL Rx and Tx threads are started, configuration thread tries to
configure the VPP interface using the CLI.

We ran into issues while making this application (that uses VCL)  work with
another application that used VAPI to configure VPP, and had to revert back
the code to vpp cli for other application.

commands that fail from my multithreaded application:
 /usr/bin/vppctl -s /run/vpp/cli.sock  create sub-interfaces
HundredGigabitEthernet12/0/0 701
 /usr/bin/vppctl -s /run/vpp/cli.sock set interface state
HundredGigabitEthernet12/0/0 up
 /usr/bin/vppctl -s /run/vpp/cli.sock set interface state
HundredGigabitEthernet12/0/0.701up
/usr/bin/vppctl -s /run/vpp/cli.sock  set interface ip address
HundredGigabitEthernet12/0/0.701 fd0d:1:2:cc:a5a5:301f:fe3a:a5a5/64



[pid 2536742] rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[],
sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fbced84f790},
{sa_handler=0x55ee9d32d180, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART,
sa_restorer=0x7fbced84f790}, 8) = 0
*[pid 2536742] execve("/usr/bin/vppctl", ["/usr/bin/vppctl", "-s",
"/run/vpp/cli.sock", "ip", "mroute", "add",
"ff38:23:2001:5b0:2000::3002/128", "via", "tuntap-0", "Accept"],
0x55ee9ead72c0 /* 27 vars */) = 0*
[pid 2536742] brk(NULL)                 = 0x55fce62d4000
[pid 2536742] arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc94d85710) = -1 EINVAL
(Invalid argument)
[pid 2536742] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file
or directory)
[pid 2536742] openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 0
[pid 2536742] fstat(0, {st_mode=S_IFREG|0644, st_size=62967, ...}) = 0
[pid 2536742] mmap(NULL, 62967, PROT_READ, MAP_PRIVATE, 0, 0) =
0x7ffb8ce4f000
[pid 2536742] close(0)                  = 0
[pid 2536742] openat(AT_FDCWD, "/lib64/libvppinfra.so.20.05.1",
O_RDONLY|O_CLOEXEC) = 0
[pid 2536742] read(0,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\230\0\0\0\0\0\0"..., 832)
= 832
[pid 2536742] fstat(0, {st_mode=S_IFREG|0755, st_size=509240, ...}) = 0
[pid 2536742] mmap(NULL, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffb8ce4d000
[pid 2536742] mmap(NULL, 2603336, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 0, 0) = 0x7ffb8c9bb000
[pid 2536742] mprotect(0x7ffb8ca35000, 2093056, PROT_NONE) = 0
[pid 2536742] mmap(0x7ffb8cc34000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 0, 0x79000) = 0x7ffb8cc34000
[pid 2536742] mmap(0x7ffb8cc36000, 2376, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ffb8cc36000
[pid 2536742] close(0)                  = 0
[pid 2536742] openat(AT_FDCWD, "/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 0
[pid 2536742] read(0,
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\305\0\0\0\0\0\0"...,
832) = 832
[pid 2536742] fstat(0, {st_mode=S_IFREG|0755, st_size=2714928, ...}) = 0
[pid 2536742] mmap(NULL, 3674432, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 0, 0) = 0x7ffb8c639000
[pid 2536742] mprotect(0x7ffb8c7ba000, 2093056, PROT_NONE) = 0
[pid 2536742] mmap(0x7ffb8c9b9000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 0, 0x180000) = 0x7ffb8c9b9000
[pid 2536742] close(0)                  = 0
[pid 2536742] openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 0
[pid 2536742] read(0,
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2607\2\0\0\0\0\0"..., 832)
= 832
[pid 2536742] fstat(0, {st_mode=S_IFREG|0755, st_size=4176104, ...}) = 0
[pid 2536742] mmap(NULL, 3938144, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 0, 0) = 0x7ffb8c277000
[pid 2536742] mprotect(0x7ffb8c430000, 2093056, PROT_NONE) = 0
[pid 2536742] mmap(0x7ffb8c62f000, 24576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 0, 0x1b8000) = 0x7ffb8c62f000
[pid 2536742] mmap(0x7ffb8c635000, 14176, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ffb8c635000
[pid 2536742] close(0)                  = 0
[pid 2536742] mmap(NULL, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffb8ce4a000
[pid 2536742] arch_prctl(ARCH_SET_FS, 0x7ffb8ce4a740) = 0
[pid 2536742] mprotect(0x7ffb8c62f000, 16384, PROT_READ) = 0
[pid 2536742] mprotect(0x7ffb8c9b9000, 4096, PROT_READ) = 0
[pid 2536742] mprotect(0x7ffb8cc34000, 4096, PROT_READ) = 0
[pid 2536742] mprotect(0x55fce5ec7000, 4096, PROT_READ) = 0
[pid 2536742] mprotect(0x7ffb8ce5f000, 4096, PROT_READ) = 0
[pid 2536742] munmap(0x7ffb8ce4f000, 62967) = 0
[pid 2536742] mmap(NULL, 131072, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffb8ce2a000

*[pid 2536742] socket(AF_UNIX, SOCK_STREAM, 0) = 0[pid 2536742] connect(0,
{sa_family=AF_UNIX, sun_path="/run/vpp/cli.sock"}, 110) = 0*

*[pid 2536742] ioctl(0, TCGETS, 0x7ffc94d85410) = -1 ENOTTY (Inappropriate
ioctl for device)[pid 2536742] epoll_create1(0)          = 9*
[pid 2536742] epoll_ctl(9, EPOLL_CTL_ADD, 0, {EPOLLIN|EPOLLPRI|EPOLLERR,
{u32=0, u64=140720308486144}}) = 0
[pid 2536742] epoll_ctl(9, EPOLL_CTL_ADD, 0, {EPOLLIN|EPOLLPRI|EPOLLERR,
{u32=0, u64=140720308486144}}) = -1 EEXIST (File exists)
[pid 2536742] close(9)                  = 0
[pid 2536742] writev(2, [{iov_base="main: epoll_ctl[0]: File exists\n",
iov_len=32}], 1main: epoll_ctl[0]: File exists
) = 32
[pid 2536742] exit_group(1)             = ?
[pid 2536701] <... read resumed>"", 4096) = 0
[pid 2536742] +++ exited with 1 +++
[pid 2536701] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED,
si_pid=2536742, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
[pid 2536701] futex(0x2ab46dc, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 2536697] <... futex resumed>)      = 0
[pid 2536701] close(22 <unfinished ...>
[pid 2536697] futex(0x2ab4678, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>

On Tue, Nov 17, 2020 at 11:07 AM Benoit Ganne (bganne) <bga...@cisco.com>
wrote:

> > Could anyone suggest anything else to check
>
> You can try to trace you process to see what is going on, eg.
> ~# strace -f ./a.out
>
> > we had few issues with vpp
> > api/vcl libraries and have not decided to pursue vpp - api for now, so
> > vppctl is the only option.
>
> Can you share what prevents you from using the API? This is what is
> supposed to be used by an external controller. I do not think it is a good
> idea to use vppctl in the long run (nonetheless because errors are hard to
> diagnose, as you can see tight now).
>
> Best
> ben
>


-- 

Thanks and regards,
Aniket Pugaonkar
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#18069): https://lists.fd.io/g/vpp-dev/message/18069
Mute This Topic: https://lists.fd.io/mt/78297645/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to