Sat 08 Jul 2006 02:36:56 PM UTC, comment #1:
I just realised that I misreported this bug. I moved the small file out, and it's happened to another file. I moved that one out, and it's still happening:
#0 0x083241af in tiger_tree_fd (fd=85, len=1048576, pos=0, block_size=0, digest=0xb484f0bc "") at src/daemon/common/commonHasher_c.c:89
#1 0x08324204 in tiger_tree_fd (fd=85, len=1048576, pos=0, block_size=0, digest=0xb484f13c "") at src/daemon/common/commonHasher_c.c:118
#2 0x08324204 in tiger_tree_fd (fd=85, len=1048576, pos=0, block_size=0, digest=0xb484f1bc "") at src/daemon/common/commonHasher_c.c:118
#3 0x08324204 in tiger_tree_fd (fd=85, len=1048576, pos=0, block_size=0, digest=0xb484f23c "") at src/daemon/common/commonHasher_c.c:118
So, it has nothing to do with the small file and clearly I need some coffee because I should have realised that before (block_size set to 0, not the size of the file).
|
Sat 08 Jul 2006 02:19:32 PM UTC, original submission:
On startup I get a segfault if a file smaller than 1024 bytes is shared. Here's part of the bt:
#0 0x083241af in tiger_tree_fd (fd=87, len=962, pos=0, block_size=0, digest=0xb47d10bc "") at src/daemon/common/commonHasher_c.c:89
#1 0x08324204 in tiger_tree_fd (fd=87, len=962, pos=0, block_size=0, digest=0xb47d113c "") at src/daemon/common/commonHasher_c.c:118
#2 0x08324204 in tiger_tree_fd (fd=87, len=962, pos=0, block_size=0, digest=0xb47d11bc "") at src/daemon/common/commonHasher_c.c:118
#3 0x08324204 in tiger_tree_fd (fd=87, len=962, pos=0, block_size=0, digest=0xb47d123c "") at src/daemon/common/commonHasher_c.c:118
#4 0x08324204 in tiger_tree_fd (fd=87, len=962, pos=0, block_size=0, digest=0xb47d12bc "") at src/daemon/common/commonHasher_c.c:118
#5 0x08324204 in tiger_tree_fd (fd=87, len=962, pos=0, block_size=0, digest=0xb47d133c "") at src/daemon/common/commonHasher_c.c:118
#6 0x08324204 in tiger_tree_fd (fd=87, len=962, pos=0, block_size=0, digest=0xb47d13bc "") at src/daemon/common/commonHasher_c.c:118
This goes on indefinitely until the segfault. Looking at the code, it appears that you're not handling the case when 'block_size' < BLOCK_SIZE.
|