AGI::ReadParse() does not recieve EOF in STDIN


#1

Hi,

This issue is related to voicemail. When system has been idle for more than 5 minutes, in teh first call to voicemail the process just hangs and user keeps listening the ring. After some troubleshooting what we found that in AGI::ReadParse() the STDIN does not contain all the parameters, and since it doesn’t reveive EOF character in STDIN the ReadParse() gets stuck in IO.

When user hangsup and makes another call it then goes through properly. The issue can be reproduced everytime the system sits idle for approximately 5 minutes.

Please help.

Regards,
Nandu


#2

What version of asterisk are you running? Are you sure the problem is not with the system, or hard drive(s) going to standby and thus missing some packets or something timing out while trying to read / write something to a hard drive spinning up?


#3

Asterisk version is 1.6.2.13. And since it’s an interprocess comunication harddisk should not be an issue.


#4

EOF “characters” don’t exist on the pipe. There would have to be a serious OS bug for close not to propagate down the pipe.

A spun down disk may delay the loading of the AGI program.

At least on some Unix systems, pipes are actually backed by disk space.