Hi All My client has rather an old environment, very old, but it is not in my hands. We are moving a Perl script from Perl 5.6.1 on Solaris 8 to Perl 5.10.0 on Solaris 10. The script which works correctly on the old environment, gets http requests, spawn children to handle them using fork() and use $SIG{CHLD} = \&waitme; to handle the children and their various possible exit codes. All these components are written in rather simple style that adhere with the common recommended way in the documentation.

The program use a home growen module: use XXX::YYY; it is the same module in both environments. When this use statement is commented out, the program works flawlessly in the new environment, providing I do not use any function of that module. However, as soon as I un-comment the use statement and repeat the simple tests, I get 'segmentation fault' after the child exits and the parent (or the waitme routine) try to wrap up.

I need some guidance on what to look at and/or how to set my tests, so I can find what the heck does this module violate!!! This is not so much a coding question as much as it is a request for advice, what should I focus on, and how do I approach this.

We need to know more about the module. Is the module written in pure perl or does it use the C extension? How did you install it on the new system? Do you have a test suite for it? Did it pass all the tests when you installed it? Does the module itself use modules which may not be installed or may have version issues? Good Luck, Bill

1. Is the module written in pure perl or does it use the C extension? A. It is written in pure Perl, however, it is in charge of connecting to various databases, so it does call all these drivers.

2. How did you install it on the new system? A. I do not know. It works in the new system for few years already, flawlessly. I am moving the last few remnants of the old system.

3. Do you have a test suite for it? A. No.

4. Did it pass all the tests when you installed it? A. See above, it works flawlessly.

5. Does the module itself use modules which may not be installed or may have version issues? A. See above. There is no version issue.

Again, there is an issue, but I do not know how to go about testing it. The problem seem to me to be related to the clean up of a child thread in multi-threaded program. We do not have any other multi-threaded program in the new system. Thanks ZA