More information on the problem with ODBC from Barrry: Note: This is using a Postgresql driver, but there is a chance that similar problematic code could be in other ODBC drivers.
Here's a description of the issue we had.
Recently, while load testing the FreeSWITCH system we discovered a crash at an approximate load of 560 simultaneous calls. This problem turned out to be difficult to find because the stack was being corrupted so we could not trace the crash reliably.
Eventually, we got lucky and trapped a crash with gdb active and a mildly corrupted stack. The problem turned out to be an issue with a tcp/ip select() call. The default fdset variable used by the select() call only allowed 1024 file descriptors to be used by the entire system. Since FreeSWITCH uses two file descriptors (SIP) per call we exceeded that number quite quickly. Technically, we were corrupting the stack at the 500 call level, but the stack wasn't getting corrupted 'enough' to crash until we approached 560 simultaneous calls.
The fdset variable/select() call that was causing the issue was in the Postgresql v8.4 0200 Driver code. We contacted the Postgresql developers list and almost immediately received a patch from them. The patch converted the select() call to a Linux poll call. Problem solved. We were able to test the system to 2500 simultaneous calls.
Barry Nicholson
-- View this message in context: http://freeswitch-users.2379917.n2.nabble.com/Freeswitch-Crashed-by-ODBC32-d... Sent from the freeswitch-users mailing list archive at Nabble.com.