pwrite() bug?

Alexey Promokhov ayp at ayp.msk.ru
Mon Mar 25 04:09:56 UTC 2002



Hi!

I'm using inn-2.3.2, linux-2.4.17, glibc-2.2.5. News are in tradspool
format, overview is tradindexed.

After nonessential local troubles I've been forced to rebuild whole overview
database. First I've rebuild history file, then tried to run 'makehistory
-x -O -T /var/tmp'. But the following messages did ocurred:

makehistory[29415]: tradindexed: packgroup cant write to /usr/local/news/spool/overview/f/r/s/ftn.r50.sysop-NEW.IDX: No such file or directory
makehistory: Can't write overview data "@05010000005B000000010000000000000000@"

I've tried to locate problem with gdb. Problem is near ov3.c, line 1021,
function OV3packgroup(). nbytes argument to pwrite() is 95472, but
pwrite()'s return value is
91104. errno==2 ("No such file or directory") both before pwrite() and
after it.

I've looked in pwrite()'s man. As I understand, pwrite should return either
count of successively written bytes, or -1 if error. ov3.c check if
pwrite() return is nbytes argument, and trigger error if not. So error is
triggered here. But it's like that pwrite() does not thinks that it's a
error.

So, where is an error? Is it in glibc, or in pwrite, or with my hands?

I've tried to #define HAVE_PWRITE=0 in config.h, to try included
pwrite.c. But it's even not compiling (pwrite.o didn't appeared).


-- 
Alexey Promokhov <ayp#ayp.msk.ru>, 2:5020/2388.1513, http://ayp.msk.ru


More information about the inn-bugs mailing list