[asterisk-bugs] [Asterisk 0016081]: [patch] utils.c:938 ast_carefulwrite: Timed out trying to write causes corruption to astdb

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Jun 18 13:43:45 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=16081 
====================================================================== 
Reported By:                aragon
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   16081
Category:                   Resources/res_agi
Reproducibility:            have not tried
Severity:                   major
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           SVN 
JIRA:                       SWP-286 
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2009-10-15 10:02 CDT
Last Modified:              2010-06-18 13:43 CDT
====================================================================== 
Summary:                    [patch] utils.c:938 ast_carefulwrite: Timed out
trying to write causes corruption to astdb
Description: 
Agent addmember to local extensions causes the agent to be logged as
non-existent channels when ast_carefulwrite times out during login.

[Oct 15 10:40:07] NOTICE[29962]: utils.c:938 ast_carefulwrite: Timed out
trying to write
[Oct 15 10:40:07] NOTICE[29962]: utils.c:938 ast_carefulwrite: Timed out
trying to write

Here  is an example of the corruption where the same local extension is
logged twice.  The "outgoing" agent cannot logoff unless I manually remove
from astdb.  The local agent can logoff but since the outgoing cannot calls
entering queue fail to reach agents and the local channel cannot log back
in.

Local/3345 at queuefifteen-outgoing/n (dynamic) (Invalid) has taken no calls
yet
      Local/3345 at queuefifteen-agent/n (dynamic) (Not in use) has taken 2
calls (last was                                                            
    1915 secs ago)

======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0014843 1 in 3 incoming zap PRI calls do no hea...
related to          0015609 [patch] WARNING[23025]: channel.c:952 _...
====================================================================== 

---------------------------------------------------------------------- 
 (0123613) aragon (reporter) - 2010-06-18 13:43
 https://issues.asterisk.org/view.php?id=16081#c123613 
---------------------------------------------------------------------- 
It has been a long time since I updated this report.
This is still an issue with agi
I believe the cause is the agi timeout that waits a finite amount of time
for data and then passes whatever data it receives prior to timeout to
astdb.
This is a really big problem especially for agent login data since often
times not all agent login data is received in time.
The only workaround is to use fastagi and store data in a mysql database
instead of astdb file.
My assumption is that the delay is caused by the startup time required to
launch the agi application for each call.  This assumption is supported by
the reasoning that the fastagi acts as a service therefore the timeout is
not as service affecting.
There must be a more reliable method to use agi + astdb without using the
timeout mechanism??? 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-06-18 13:43 aragon         Note Added: 0123613                          
======================================================================




More information about the asterisk-bugs mailing list