This is an intermittent problem (it doesn't happen all the time).
Version:
[root@lab002189-flip-server install]# kamctl fifo version
Server:: kamailio (4.3.3 (x86_64/linux))
Build:: mi_core.c compiled on 17:06:31 Oct 5 2015 with gcc 4.4.7
Flags:: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, DBG_QM_MALLOC, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
GIT:: e275bc
Full log:
[root@lab002189-flip-server install]# cat /var/log/kamailio/kamailio.log
2015-10-06T06:50:44.443018+09:00 lab002189-flip-server /usr/local/src/git/kamailio-4.3/kamailio[6126]: WARNING: dispatcher [dispatch.c:792]: ds_load_db(): no dispatching data in the db -- empty destination set
2015-10-06T06:50:56.409999+09:00 lab002189-flip-server /usr/local/src/git/kamailio-4.3/kamailio[6110]: ERROR: acc [acc_cdr.c:199]: db_write_cdr(): failed to convert string to double - 111.
2015-10-06T06:50:56.410019+09:00 lab002189-flip-server /usr/local/src/git/kamailio-4.3/kamailio[6110]: ERROR: acc [acc_cdr.c:636]: cdr_on_failed(): failed to write cdr!
The code is this in modules/acc/acc_cdr.c:
case TYPE_DOUBLE:
VAL_TYPE(db_cdr_vals+i)=DB1_DOUBLE;
VAL_NULL(db_cdr_vals+i)=0;
double_val = strtod(cdr_value_array[i].s, &end);
if(errno && (errno != EAGAIN)) {
LM_ERR("failed to convert string to double - %d.\n", errno);
goto error;
}
VAL_DOUBLE(db_cdr_vals+i) = double_val;
break;
The value errno=111 (ECONNREFUSED) doesn't make sense for strtod so i understand the problem is that the errno is not being zeroed before entering the loop that processes the cdr data, so errno is being set somewhere else, strtod is successful but the errno check fails.
—
Reply to this email directly or view it on GitHub.