[asterisk-bugs] [Asterisk 0013546]: Partial writes on Manager API

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Dec 8 09:28:18 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13546 
====================================================================== 
Reported By:                srt
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   13546
Category:                   Core/ManagerInterface
Reproducibility:            random
Severity:                   minor
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           1.4.21.2 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-09-23 08:35 CDT
Last Modified:              2008-12-08 09:28 CST
====================================================================== 
Summary:                    Partial writes on Manager API
Description: 
Sometimes writing manager events with ast_carefulwrite in manager.c only
results in a partial write i.e. not all data is written to the socket.
There is no check for this and no code to send the missing data. As a
workaround increasing the writetimeout in manager.conf mitigates this
issue.
See
http://jira.reucon.org/browse/AJ-174?focusedCommentId=10522#action_10522
for details.
====================================================================== 

---------------------------------------------------------------------- 
 (0095947) Erik van Pienbroek (reporter) - 2008-12-08 09:28
 http://bugs.digium.com/view.php?id=13546#c95947 
---------------------------------------------------------------------- 
We've also been hit by this bug using Asterisk 1.6.0.3-rc1. We're using the
AMI interface from a remote computer. If a large amount of messages need to
be sent by the manager API, some messages may get lost (for example with
the QueueStatus command).

We've figured out this is caused by the fact that there's no error
handling performed after fflush() is called in the function send_string()
in manager.c. As already mentioned by davidw, the errno = EAGAIN situation
needs to be handled to solve this bug. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-12-08 09:28 Erik van PienbroekNote Added: 0095947                          
======================================================================




More information about the asterisk-bugs mailing list