Summary: | ASTERISK-15239: System completely hangs after executing an ODBC function | ||
Reporter: | Theo Belder (tbelder) | Labels: | |
Date Opened: | 2009-11-30 03:26:07.000-0600 | Date Closed: | 2011-06-07 14:00:45 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Functions/func_odbc |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | Currently I am working to upgrade asterisk 1.4.21 to 1.4.27. During testing of my dialplan I discovered that the system will completely hangs after executing an ODBC query in the h extension. The CLI shows no verbosity and debug messages. Also the SSH connection is dropped and no new SSH connection can be made. The only reaction of the system is a ping reply. The system has to be turned off and on to make the system work again!! This problem is introduced in asterisk 1.4.22. However, I cannot find out which change causes this problem. I have searched in the changelog for a possible cause, but I cannot find out. Below you can find the steps to reproduce. When the dialplan executes the odbc query in the h extension, the whole system hangs. ****** ADDITIONAL INFORMATION ****** dialplan: ------------- exten = 422,1,Noop(MAKE A CALL) exten = 422,n,Set(PCMEXT=${ODBC_CST(SELECT nr FROM viewextensiondata WHERE nr = '422' LIMIT 1)}) exten = 422,n,Dial(SIP/422) exten = h,1,Noop(HANGUP) exten = h,n,Set(PCMEXT=${ODBC_CST(SELECT nr FROM viewextensiondata WHERE nr = '422' LIMIT 1)}) exten = h,n,Hangup func_odbc.conf: ----------------------- [CST] dsn=cst read=${ARG1} | ||
Comments: | By: Tilghman Lesher (tilghman) 2009-11-30 10:32:56.000-0600 Are you starting Asterisk with the -p flag? By: Theo Belder (tbelder) 2009-12-01 01:32:16.000-0600 No, I'm starting asterisk with -vvvgc By: Theo Belder (tbelder) 2009-12-03 02:05:23.000-0600 What about this issue? Do you have any idea why this problem occurs? By: Tilghman Lesher (tilghman) 2009-12-03 10:34:20.000-0600 Other than using the p flag, I know of no other possible cause of a complete system hang. It's probably a kernel bug of some sort. By: Elazar Broad (ebroad) 2009-12-03 11:15:39.000-0600 What happens if you take out: exten = h,n,Hangup By: Theo Belder (tbelder) 2009-12-04 02:07:53.000-0600 This dialplan works fine: exten = 422,1,Noop(MAKE A CALL) exten = 422,n,Set(PCMEXT=${ODBC_CST(SELECT nr FROM viewextensiondata WHERE nr = '422' LIMIT 1)}) exten = 422,n,Dial(SIP/422) exten = h,1,Noop(HANGUP) exten = h,n,Hangup This will hang your system: exten = 422,1,Noop(MAKE A CALL) exten = 422,n,Dial(SIP/422) exten = h,1,Noop(HANGUP) exten = h,n,Set(PCMEXT=${ODBC_CST(SELECT nr FROM viewextensiondata WHERE nr = '422' LIMIT 1)}) exten = h,n,Hangup Only when executing an ODBC function in the h extension fails. This problem is introduced in version 1.4.22, in version 1.4.21 this problem did not occured. By: Theo Belder (tbelder) 2009-12-07 09:40:01.000-0600 A small update: I've discovered that the crash only occurs when the calling party hangs up. When the called party hangs up, the ODBC function will be executed without any problem. By: Theo Belder (tbelder) 2010-04-29 03:24:47 This issue may be closed. Upgrading to a newer kernel fixes the problem. Resolved in kernel version 2.6.23. But strange that some code change in asterisk (1.4.21->1.4.22) causes this issue... |