Re: [ccache] Corrupt objects from three colliding compiles

2010-05-09 Thread Joel Rosdahl
On 2010-05-06 19:14, Wilson Snyder wrote:

 [...]
 [1273161404.432174,2424 ] === 2010-05-06 11:56:44 ===
 [1273161404.432636,2424 ] Hostname: maserati
 [1273161404.432643,2424 ] Cwd: /nfs/compiling/dir02
 [1273161404.432646,2424 ] Source file: INV.c
 [1273161404.432648,2424 ] Object file: INV.o
 [1273161404.432657,2424 ] Trying direct lookup
 [1273161404.439730,2424 ] Looking for object file hash in 
 /nfs/ccache-dir/0/3/8/f19fe0a63fc088a9c570845a0a4eb-584.manifest
 [1273161404.440126,2424 ] Did not find object file hash in manifest
 [1273161404.440134,2424 ] Running preprocessor
 [1273161404.469188,2084 ] === 2010-05-06 11:56:44 ===
 [1273161404.469515,2084 ] Hostname: bird07
 [1273161404.469519,2084 ] Cwd: /nfs/compiling/dir03
 [1273161404.469521,2084 ] Source file: INV.c
 [1273161404.469523,2084 ] Object file: INV.o
 [1273161404.469532,2084 ] Trying direct lookup
 [1273161404.471093,2084 ] Looking for object file hash in 
 /nfs/ccache-dir/0/3/8/f19fe0a63fc088a9c570845a0a4eb-584.manifest
 [1273161404.475427,2084 ] Did not find object file hash in manifest
 [1273161404.475434,2084 ] Running preprocessor
 [1273161404.487509,2424 ] Got object file hash from preprocessor
 [1273161404.492494,2424 ] Object file 
 /nfs/ccache-dir/2/b/2/eedf0591498af8e5f3a27fcc89c4f-69975.o not in cache

Job 2424 doesn't see the object file in the cache...

 [1273161404.492522,2424 ] Running real compiler

...and decides to create it.

 [1273161404.511123,21936] === 2010-05-06 11:56:44 ===
 [1273161404.511506,21936] Hostname: bat05
 [1273161404.511510,21936] Cwd: /nfs/compiling/dir04
 [1273161404.511513,21936] Source file: INV.c
 [1273161404.511515,21936] Object file: INV.o
 [1273161404.511523,21936] Trying direct lookup
 [1273161404.514058,21936] Looking for object file hash in 
 /nfs/ccache-dir/0/3/8/f19fe0a63fc088a9c570845a0a4eb-584.manifest
 [1273161404.517648,21936] Did not find object file hash in manifest
 [1273161404.517654,21936] Running preprocessor
 [1273161404.523658,2084 ] Got object file hash from preprocessor
 [1273161404.542730,2084 ] Created INV.o from 
 /nfs/ccache-dir/2/b/2/eedf0591498af8e5f3a27fcc89c4f-69975.o

But here, job 2084 sees the object file in the cache ~34 ms before the
object file was created...

 [1273161404.564688,21936] Got object file hash from preprocessor
 [1273161404.569955,2084 ] Added object file hash to 
 /nfs/ccache-dir/0/3/8/f19fe0a63fc088a9c570845a0a4eb-584.manifest
 [1273161404.570387,2084 ] Succeded getting cached result
 [1273161404.576412,2424 ] Stored in cache: 
 /nfs/ccache-dir/2/b/2/eedf0591498af8e5f3a27fcc89c4f-69975.o

...by job 2424 here. Maybe the clocks are more than 12 ms apart?

 [1273161404.588776,21936] Created INV.o from 
 /nfs/ccache-dir/2/b/2/eedf0591498af8e5f3a27fcc89c4f-69975.o   ***BAD OBJECT***
 [1273161404.596098,2424 ] Created INV.o from 
 /nfs/ccache-dir/2/b/2/eedf0591498af8e5f3a27fcc89c4f-69975.o
 [1273161404.630619,21936] Added object file hash to 
 /nfs/ccache-dir/0/3/8/f19fe0a63fc088a9c570845a0a4eb-584.manifest
 [1273161404.634864,21936] Succeded getting cached result
 [1273161404.638443,2424 ] Added object file hash to 
 /nfs/ccache-dir/0/3/8/f19fe0a63fc088a9c570845a0a4eb-584.manifest
 
 It looks like the third job's read of the cache is stuck in
 between the first's write and the second's.  Note that times
 may be off by 8ms, this would put the bad object read right
 on top of the object update by the second compile when it
 hits the NFS server.

Since renames should be atomic on NFS, I don't see any problem here, but
I'm by no means an NFS expert.

-- Joel
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


[ccache] amd64 buildworld (FreeBSD 8.0p2) consistently fails with ccache

2010-05-09 Thread Christer Edwards
I've been testing the use of ccache on my FreeBSD machines and I've
found that 'make buildworld' will consistently fail when ccache is
activated on my amd64 machines, while it performs as expected on my
i386 machines. I have tested on both platforms with and without
compile options, such as -jX, CFLAGS and CXXFLAGS. With or without
these options on i386 it compiles successfully, but with or without
these options on amd64 it fails.

It appears that it fails at building lib32 related files but I'm not
familiar enough with buildworld or ccache to be sure. What more
information can I provide toward troubleshooting and hopefully
resolving this situation?

Cheers,

-- 
Christer Edwards
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


Re: [ccache] amd64 buildworld (FreeBSD 8.0p2) consistently fails with ccache

2010-05-09 Thread Christer Edwards
On Sun, May 9, 2010 at 11:17 AM, Joel Rosdahl j...@rosdahl.net wrote:
 That's strange. Which ccache version are you using? If you're using 2.4,
 please try 3.0pre0.

[r...@stringer /usr/src]# ccache -V
ccache version 3.0pre0

It just failed for me again. I did not turn on logging, but this is
where it failed, if this gives you any hints:

=== lib/csu/i386-elf (obj,depend,all,install)
rm -f .depend
CC='/usr/local/libexec/ccache/world-cc' mkdep -f .depend -a
-I/usr/src/lib/csu/i386-elf/../common
-I/usr/src/lib/csu/i386-elf/../../libc/include
/usr/src/lib/csu/i386-elf/crt1.c /usr/src/lib/csu/i386-elf/crti.S
/usr/src/lib/csu/i386-elf/crtn.S
/usr/local/libexec/ccache/world-cc -march=native -O2
-fno-strict-aliasing -pipe -I/usr/src/lib/csu/i386-elf/../common
-I/usr/src/lib/csu/i386-elf/../../libc/include -std=gnu99
-Wsystem-headers -Werror -Wall -Wno-format-y2k -W
-Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes
-Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch
-Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline
-Wnested-externs -Wredundant-decls -Wno-pointer-sign -c
/usr/src/lib/csu/i386-elf/crt1.c
{standard input}: Assembler messages:
{standard input}:27: Error: suffix or operands invalid for `mov'
*** Error code 1

Stop in /usr/src/lib/csu/i386-elf.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

I can run it again with logging enabled if you need.

Ooh, and this build was using CFLAGS/CXXFLAGS. I can test again
without those if needed as well.

-- 
Christer Edwards
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


[ccache] [PATCH] Move mkstemp() replacement to before its use.

2010-05-09 Thread Ramiro Polla
$subj


0001-Move-mkstemp-replacement-to-before-its-use.patch
Description: Binary data
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


Re: [ccache] amd64 buildworld (FreeBSD 8.0p2) consistently fails with ccache

2010-05-09 Thread Christer Edwards
On Sun, May 9, 2010 at 11:17 AM, Joel Rosdahl j...@rosdahl.net wrote:
 You can enable debug logging by setting CCACHE_LOGFILE to a log file
 path and then send the log of a failed compilation here.

I've enabled logging and I would attach the logfile, but it is 12M
total size. I've included the tail end, just leading up to the
failure:

[78023] === 2010-05-09 14:54:37 ===
[78023] Base directory: /usr/obj/lib32/usr/src/gnu/lib/csu
[78023] Source file: /usr/src/gnu/lib/csu/../../../contrib/gcc/crtstuff.c
[78023] Object file: crtend.So
[78023] Trying direct lookup
[78023] Looking for object file hash in
/usr/.ccache/7/d/95616197a1156b28cdd39a8047d5db-9623.manifest
[78023] Did not find object file hash in manifest
[78023] Running preprocessor
[78023] Got object file hash from preprocessor
[78023] Object file
/usr/.ccache/c/a/512e749085241d05f1a72bfb1fa910-77439.o not in cache
[78023] Running real compiler
[78023] Stored in cache: /usr/.ccache/c/a/512e749085241d05f1a72bfb1fa910-77439.o
[78023] Created crtend.So from
/usr/.ccache/c/a/512e749085241d05f1a72bfb1fa910-77439.o
[78023] Added object file hash to
/usr/.ccache/7/d/95616197a1156b28cdd39a8047d5db-9623.manifest
[78040] === 2010-05-09 14:54:37 ===
[78040] Base directory: /usr/obj/lib32/usr/src/lib/csu/i386-elf
[78040] Compiler option -E is unsupported
[78040] Failed; falling back to running the real compiler
[78047] === 2010-05-09 14:54:37 ===
[78047] Base directory: /usr/obj/lib32/usr/src/lib/csu/i386-elf
[78047] Source file: /usr/src/lib/csu/i386-elf/crt1.c
[78047] Object file: crt1.o
[78047] Trying direct lookup
[78047] Looking for object file hash in
/usr/.ccache/c/9/ea7ce3c6c0dcbf8e347e950e9ff6ea-1903.manifest
[78047] Did not find object file hash in manifest
[78047] Running preprocessor
[78047] Got object file hash from preprocessor
[78047] Object file
/usr/.ccache/f/a/86dcc9067c2597ce7a0dbd718899ac-23567.o not in cache
[78047] Running real compiler
[78047] Compiler gave exit status 1

This build had no CFLAGS or CXXFLAGS and exited at the same point.

What other information can I provide?

[r...@stringer /usr/src]# ccache -s
cache directory /usr/.ccache
cache hit (direct)   871
cache hit (preprocessed)1039
cache miss 30393
called for link 1342
multiple source files  5
compile failed 2
not a C/C++ file3316
no input file  2
files in cache 30393
cache size 107.8 Mbytes
max cache size   1.0 Gbytes

-- 
Christer Edwards
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache