08-03-2014
12,315,
4,560
Join Date: Jul 2012
Last Activity: 22 November 2019, 4:29 PM EST
Location: San Jose, CA, USA
Posts: 12,315
Thanks Given: 952
Thanked 4,560 Times in 3,818 Posts
You say you have a multi-process application and you say you are using the POSIX threads library. These are two very different things, but you have the same issue either way. You have multiple threads (or processes) updating data that has not been properly protected against simultaneous access. If you have a multi-process application, the shared data could be in a file or could be in a shared memory segment. If you have a multi-threaded single process application, the shared data could be in a file, a shared memory segment, or any non-thread-local storage in the process. It could be caused by using an api like read() into a global buffer. It could caused by a statement like a++; for some variable shared by more than one thread/process. It could be thousands of other things in you millions of LOC.
If you can figure out what data is being screwed up on a multi-processor system, start by looking at everything that references that data.
Good luck...