I have a multi threaded server which works fine on 32 bit Linux(i686, 4 processor), but on 64 bit SUSE Linux(ia64 Itenium 2 family 16 processor Linux) it gives Segmentation fault.

Following is the problem description:

My client program connects/disconnects for each request. After few client requests, server gives segmentation fault. In my server program I use system() call to run a shell command. I found that segmentation fault is occurring on any file operation after that system() call.

Problem is occurring on 64 bit Linux (16 processors) - kernel:2.4.19-SMP, gcc version is 2.96 20000731 (Red Hat Linux 7.1 2.96-101).

It works fine on 32 bit machine(4 processors)- kernel: 2.4.18-3bigmem, gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)

Please note that system() call and file operations are synchronized. If I comment out the system() call it's working fine. I replaced system() by popen() but the problem still exists and now the debugger is pointing to pclose()! Also I added fflush() before popen() as man page for popen suggests that.

Help on this would be appreciated.