O_DIRECT error, user space programming

From: Leto Angelo
Date: Wed Nov 29 2006 - 09:49:30 EST


Hi,
I got an:
*** glibc detected *** double free or corruption (!prev): 0x84c01000 ***
using O_DIRECT with threads: this error appends if I run several threads
wich are reading several files (opened with O_RDONLY|O_DIRECT) at the same
time.
The error doesn't appends if I open the files whithout O_DIRECT or if I
place a pthread_join after each thread call.
I'm sure that no double free is done.
kernel version: 2.6.17 SMP PREEMPT
glibc version: 2.3.6
filesystem: ext3
g++ used: g++ (GCC) 4.0.4 20060507 (prerelease) (Debian 4.0.3-3)
Does somebody knows the reasons of the error? There are limitation to use
O_DIRECT on a multithread application?
Thanks in advance for any help.
A.

ps. I can provide the source code code (135 lines of C++) if it is useful
to uinderstand better the problem


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/