Internal Error when sending notification to the NetConf client

Just as with your previous post Confd_notification_send error "Malformed XML" this looks like an application memory issue

Need more input on the issue, e.g. a libconfd trace with timestamp. If you can have the libconfd trace set to CONFD_PROTO_TRACE debug level, you can match the notification and other API calls timestamps with the entry you see in the developer log on the ConfD side.

For example, here I am sending a NETCONF config change notification over the NETCONF stream,

Application:

static void send_cfg_change(void)
{
    confd_tag_value_t vals[11];
    int i = 0;
    struct in_addr in;
    confd_hkeypath_t *kp;
    int msock;
    struct sockaddr_in addr;

    addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    addr.sin_family = AF_INET;
    addr.sin_port = htons(CONFD_PORT);

    maapi_socket(&msock, &addr);
    maapi_xpath2kpath(msock, "/interfaces/interface", &kp);
    close(msock);

    inet_pton(AF_INET, "160.160.160.160", &in);

    CONFD_SET_TAG_XMLBEGIN(&vals[i],   ncn_netconf_config_change, ncn__ns);  i++;
    CONFD_SET_TAG_XMLBEGIN(&vals[i],   ncn_changed_by,            ncn__ns);      i++;
    CONFD_SET_TAG_STR(&vals[i],        ncn_username,              "admin");  i++;
    CONFD_SET_TAG_UINT32(&vals[i],     ncn_session_id,            0);        i++;
    CONFD_SET_TAG_IPV4(&vals[i],       ncn_source_host,           in);  i++;
    CONFD_SET_TAG_XMLEND(&vals[i],     ncn_changed_by,            ncn__ns);  i++;
    CONFD_SET_TAG_ENUM_VALUE(&vals[i], ncn_datastore,             ncn_running); i++;
    CONFD_SET_TAG_XMLBEGIN(&vals[i],   ncn_edit,                  ncn__ns);  i++;
    CONFD_SET_TAG_OBJECTREF(&vals[i],  ncn_target,                kp);i++;
    CONFD_SET_TAG_XMLEND(&vals[i],     ncn_edit,                  ncn__ns);  i++;
    CONFD_SET_TAG_XMLEND(&vals[i],     ncn_netconf_config_change, ncn__ns);  i++;

    send_notification(vals, i);
    confd_free_hkeypath(kp);
}

libconfd trace with debug level set to CONFD_PROTO_TRACE:

...
sending cfg change
TRACE Connected (maapi) to ConfD
TRACE MAAPI_XPATH2HKP 
 7-May-2017::12:59:09.837 14939/7fffca3bb3c0/5 SEND op=228 isrel=0 th=-1 #Bin</interfaces/interfac(1)....>
 7-May-2017::12:59:09.837 14939/7fffca3bb3c0/5 GOT [221572658,[1945824463|321503962]]
 --> CONFD_OK
TRACE NOTIFICATION_SEND NETCONF

 7-May-2017::12:59:09.837 14939/7fffca3bb3c0/4 SEND op=15 isrel=0 th=-1 {170,'NETCONF',undefined,{19,{2017,5,7,10,59,9,837561,0,0}},0,{hxml,[{[1244620176|2103098691],start},{[1244620176|737643097],start},{870658415,#Bin<admin>},{372565948,{12,0}},{1399987302,{160,160,160,160}},{[1244620176|737643097],stop},{449538578,{28,0}},{[1244620176|1716487530],start},{1914145912,{34,[221572658,[1945824463|321503962]]}},{[1244620176|1716487530],stop},{[1244620176|2103098691],stop}]}}

netconf-console client side printout:

$ netconf-console --create-subscription=NETCONF
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
  <ok/>
</rpc-reply>
<?xml version="1.0" encoding="UTF-8"?>
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
  <eventTime>2017-05-07T10:59:09.837561+00:00</eventTime>
  <netconf-config-change xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-notifications">
    <changed-by>
      <username>admin</username>
      <session-id>0</session-id>
      <source-host>160.160.160.160</source-host>
    </changed-by>
    <datastore>running</datastore>
    <edit>
      <target xmlns:notif="http://tail-f.com/ns/test/notif">/notif:interfaces/notif:interface</target>
    </edit>
  </netconf-config-change>
</notification>