Broken Pipe Question
I am running a heartbeat… Asterisk 11.15.0 – same behaviour is noticed on
1.4.43 also
I issue a call through the API that does the below. just UserEvent and Hangup
— Executing [s@heartbeat:1] UserEvent(“Local/s@heartbeat-0000000f;2”,
“HeartBeat, Noop”) in new stack
— Executing [s@heartbeat:2] Hangup(“Local/s@heartbeat-0000000f;2”, “”)
in new stack
== Spawn extension (heartbeat, s, 2) exited non-zero on
‘Local/s@heartbeat-0000000f;2’
[Dec 16 13:57:01] ERROR[1956]: utils.c:1440 ast_careful_fwrite: fwrite()
returned error: Broken pipe
I get “many” broken pipes (last line above) in the
/var/log/asterisk/messages file. Is there a way to more correctly close and not get that message?
Action: Originate\r\n Channel: Local/s@smvoice-heartbeat/n\r\n Context: heartbeat\r\n Exten: s\r\n Priority: 1\r\n
Thanks,
jerry
3 thoughts on - Broken Pipe Question
Assuming you are talking about the Asterisk Management Interface (AMI).
I have seen many broken pipe messages cause by the AMI client closing the connection before reading the response from the server. Some of the Asterisk Munin-Node plugins suffered from this problem.
After you issue your command, you need to read the response. You should get a line that says ‘–END COMMNAD–‘ or an error response. Since the dialplan is executing, I doubt you will get an error.
Your client should issue a Logoff action, then read all the responses until it gets the ‘Thanks for all the fish.’ response. Then close the socket.
Hi Dale,
I am in fact doing all the items you suggest. here is a log.
For normal commands I am logging off just fine. Its just the heartbeat command I am getting an error on when logging out.
Thoughts?
Jerry
—-
Jerry,
asterisk_execute() event_list=0 retU last_command=’Action: Logoff’
Response: Error[CR ][LF ]Message: Missing action in request[CR ][LF ][CR
][LF ]
Shows an error. Perhaps the originate did not complete before the logoff was sent? I have never used original in AMI so it is just a guess.
Dale