Hello,

using normally a repository with fossil 1.33 for weeks, it seems that it
just broke. We can't use the repository anymore, and even "rebuild" fails, also 
with fossil trunk.

We noticed the problem when doing a commit:

""""
It says ERROR: [projects/file.txt] is 36923728 bytes on disk but 14328966 in 
the repository

NOTICE: Repository version of [projects/file.txt] stored in 
[file-24e13532928c08c6]

working checkout does not match what would have ended up in the repository:  
4e7e15d6a398903d00bccbdec6137d79 versus 4e5221153df5c4311d874b1a6cf4b991
""""



Now, doing a rebuild, it fails at ~20%:

""""
fossil: ./src/blob.c:206: blob_reset: Assertion 
`(pBlob)->xRealloc==blobReallocMalloc || (pBlob)->xRealloc==blobReallocStatic' 
failed.
Aborted
""""



With valgrind, it finds an overlapping memcpy() at ~2% of the rebuild:
With gdb on the valgrind failing point of current trunk, notice:

""""
(gdb) bt
#0  blobReallocStatic (pBlob=0x7fffffff6250, newSize=14328967) at 
./src/blob.c:194
#1  0x000000000040b3ba in blob_resize (pBlob=0x7fffffff6250, newSize=14328966) 
at ./src/blob.c:422
#2  0x000000000040b3f6 in blob_materialize (pBlob=0x7fffffff6250) at 
./src/blob.c:432
#3  0x00000000004598d0 in manifest_parse (pContent=0x7fffffff6250, rid=1864, 
pErr=0x0)
    at ./src/manifest.c:383
#4  0x000000000045d337 in manifest_crosslink (rid=1864, 
pContent=0x7fffffff6250, flags=0)
    at ./src/manifest.c:1811
(gdb) print *pBlob
$12 = {nUsed = 14328966, nAlloc = 14328966, iCursor = 0, blobFlags = 0, aData = 
0x1988a98 "\270\026\006\367\377\177", xRealloc = 0x40ab12 <blobReallocStatic>}
(gdb) print pNew
$13 = 0x1988a90 "\220 \225\001"
""""


As you see, the pointer returned by fossil_malloc(14328967) is 8 bytes before
pBlob->aData. Notice that it is the same "nUsed = 14328966" length as that of 
the file of the commit. That file, in fact, is a txt of 36923728 in length, but 
suspiciously, 14328966 is the exact length of the result of "fossil 
test-compress" it.


What may have happened? We don't know of any power outage in this computer that
may have broken the fs. We have been using the repository normally the last
weeks, doing commits.


-- 
(Escriu-me xifrat si saps PGP / Write ciphered if you know PGP)
PGP key D4831A8A - https://emailselfdefense.fsf.org/
_______________________________________________
fossil-dev mailing list
fossil-dev@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to