Hello all, I'm new in the list, so first of all I would like to say hi to all the list and say that openSer is a fantastic product, and that the documentation available on the internet is also fantastic. I managed to get my openSer server working with advanced features without having to subscribe to this list. Well, but if I subscribed, is because something has gone bad.
Ok. The company I work for has a system for handling prepaid and postpaid calls. And I was designed to develop a new alternative for handling these prepaid and postpaid calls via VOIP, so I chose openSer as the server, after googleing on the web. One condition I had since the start is that I would have to integrate the solution to the company's DB, and that was another reason why I chose openSer, because of the perl module. With it I could write a script that would do that integration for me.
So I started installing and developing the openSer server with the perl scripts. And it worked fine! The server did all that it had to do. So I went to the tests. First test: load test...
And it fails for many reasons. After investigating I discovered that the debug option in the openser.cfg is very important in high load contexts. A debug value greater than 2 or 3 will decrease greatly the server's performance. I had to do some code cleanings in the openser.cfg and perl scripts also.
The other and main reason is that for some unknown reason the openSer server crashes when using perl scripts that communicate with DB in high load contexts. For some reason the perl script receives a sig_segv (segmentation fault) and this signal is passed to all others threads and then the openSer server dies.
This error is that kind of error that is specially difficult to find, because there are too many different systems involded. The path from openSer to the DB would be:
openSer -> perl module -> perl -> perl DBI (DBD::ODBC) -> unixODBC -> FreeTDS -> MS SQLServer
Can you guys provide me some light in fixing this problem?
Thanks in advance, Murilo Yoshida
On Friday 21 September 2007, Murilo Lacerda Yoshida wrote:
Hello all, I'm new in the list, so first of all I would like to say hi to all the list and say that openSer is a fantastic product, and that the documentation available on the internet is also fantastic. [..]
Hello Murilo,
nice to hear that. :-)
The other and main reason is that for some unknown reason the openSer server crashes when using perl scripts that communicate with DB in high load contexts. For some reason the perl script receives a sig_segv (segmentation fault) and this signal is passed to all others threads and then the openSer server dies.
This error is that kind of error that is specially difficult to find, because there are too many different systems involded. The path from openSer to the DB would be:
openSer -> perl module -> perl -> perl DBI (DBD::ODBC) -> unixODBC -> FreeTDS -> MS SQLServer
Yes, there are quite a bit modules involved.
Take a look into the core dump (set core_dump = yes) with gdb, this should give you further informations about the cause of the segmention fault. To get a better backtrace install the debug package (debian) or compile with debugging enabled. If the error is located in openser, please post the backtrace also on the list.
Cheers,
Henning