Skip to content
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

netconfd crashes #67

Open
lakshmi200 opened this issue Sep 3, 2019 · 1 comment
Open

netconfd crashes #67

lakshmi200 opened this issue Sep 3, 2019 · 1 comment

Comments

@lakshmi200
Copy link

Hi,

While testing the behavior of "when" statement, found that netconfd crashes consistently when trying to configure an invalid node.
Crash happens only when netconfd is running without candidate capability (i.e., with --target=running).

Below steps reproduce issue always.

  1. Modify toaster.yang to include below leaf nodes.

     leaf toasterWeight {
         type int32 {
             range "1 .. 10";
         }
         config true;
         default 5;
     }
     
     leaf A2 {
     when "../toast:toasterWeight <= 5";
         type int32 {
             range "1 .. 10";
         }
         config true;
         default 5;
     }
    
  2. Start netconfd with target as running
    netconfd --superuser=$USER --no-startup --module=toaster --target=running

  3. From yangcli, create toaster container with toasterWeight value=10
    create /toast:toaster/toasterWeight value=10

  4. Configure an invalid node. As per the above modified toaster yang, leaf A2 is invalid when toasterWeight value is 10.
    merge /toast:toaster/A2 value=5

netconfd crashes in this step after sending RPC OK.
Version of netconfd server that I'm using is 2.12-0.

Below are the logs and backtrace.

edit-transaction 333: operation merge on session 1 by [email protected]
at 2019-09-03T05:44:33Z on target 'running'
data: /--:A2

Error: Got 'minus', Expected: node identifier
0.1: error(245): wrong token type
netconfd: ../../../netconf/src/agt/agt_sys.c:1104: agt_sys_send_netconf_config_change: Assertion `leafval' failed.

Program received signal SIGABRT, Aborted.
0x00007ffff74eb4f5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb)
(gdb)
(gdb)
(gdb)
(gdb) bt
#0 0x00007ffff74eb4f5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff74eec5b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff74e41be in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007ffff74e4262 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#4 0x00007ffff7bb3d93 in agt_sys_send_netconf_config_change (scb=0x64b670, auditrecQ=0x7336d0) at ../../../netconf/src/agt/agt_sys.c:1104
#5 0x00007ffff7baa9a7 in agt_rpc_dispatch (scb=0x64b670, top=0x7fffffffded0) at ../../../netconf/src/agt/agt_rpc.c:1665
#6 0x00007ffff7bb4a7f in agt_top_dispatch_msg (ppscb=0x7fffffffdf78) at ../../../netconf/src/agt/agt_top.c:154
#7 0x00007ffff7bae6da in agt_ses_process_first_ready () at ../../../netconf/src/agt/agt_ses.c:939
#8 0x00007ffff7ba3006 in agt_ncxserver_run () at ../../../netconf/src/agt/agt_ncxserver.c:492
#9 0x00000000004012ce in netconfd_run () at ../../../netconf/src/netconfd/netconfd.c:281
#10 0x000000000040146e in main (argc=5, argv=0x7fffffffe208) at ../../../netconf/src/netconfd/netconfd.c:361
(gdb)

Attached the crash file created by netconfd in /var/crash.

Please suggest how to resolve this issue.

Thanks,
Lakshmi
_usr_sbin_netconfd.1000.crash.log

@vlvassilev
Copy link
Owner

vlvassilev commented Oct 9, 2019

Yuma123 will not support the option without candidate capability. I do not see any advantages in not using candidate. All testcases in the testsuites are written to assuming netconfd is started with candidate capability. The mainstream NETCONF devices use candidate too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants