I did an experiment to try to simplify the problem, and rule out mqueue concurrency/locking issues:

   modparam("pv", "shvset", "lasttm=i:-1")

   modparam("rtimer", "timer", "name=test;interval=1;mode=1")
   modparam("rtimer", "exec", "timer=test;route=TEST_ROUTE")

   route[TEST_ROUTE] {
           while(1) {
                   if($shv(lasttm) < 0)
                           $shv(lasttm) = $TV(sn);
                   else {
                           $var(gap) = $TV(sn) - $shv(lasttm);

                           if($var(gap) >= 1) {
xlog("L_INFO", "Presented time gap: $var(gap)\n");
                           }
                   }

                   $shv(lasttm) = $TV(sn);
           }
   }

And here's what I saw in the log:

Jul 23 21:10:07 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:12 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:13 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:16 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:18 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:21 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:23 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:29 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:30 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:34 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:36 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:38 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:39 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:40 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1 Jul 23 21:10:43 diminuendo-1 /usr/local/sbin/kamailio[26073]: INFO: Presented time gap: 1

When I repeated the experiment with interval=3:

Jul 23 21:11:51 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1 Jul 23 21:11:52 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1 Jul 23 21:11:54 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1 Jul 23 21:11:55 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1 Jul 23 21:11:56 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1 Jul 23 21:11:59 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1 Jul 23 21:12:03 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1 Jul 23 21:12:04 diminuendo-1 /usr/local/sbin/kamailio[26132]: INFO: Presented time gap: 1

So, something is definitely interrupting the possibility of continuous execution of these rtimer tasks.

--
Alex Balashov - Principal
Evariste Systems LLC
235 E Ponce de Leon Ave
Suite 106
Decatur, GA 30030
Tel: +1-678-954-0670
Fax: +1-404-961-1892
Web: http://www.evaristesys.com/, http://www.alexbalashov.com/

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to