Anvar Bagautdinov wrote:
> Добрый день
>
> Наткнулся на следующую неприятность, при большом размере
> дискового cache выделенного для oops (в моем случае это 140G)
> некорестно отрабатывает кострукции (total_free*100)/total_blks
> в clean_disk.c.
>
> int total_free=35888054
> 35888054*100=3588805400 это больше int ( 2147483647)
> И то что мы делим на total_blks уже роли не играет так кам
> мы уже переполнили int.
>
> Все бы ничего, если бы такая конструкция использовалась только
> в выводе, но она же используется и для определения не пора ли
> удалять старые обьекты и как результат только положненные
> обьекты в storage тут же удаляются expire.
>
> Пачт прилагается. Хотя возможно нужно просто перевести всех их
> к uint64 и забыть. Но это уже решать автору, как с его точки зрения
> правильно.
>
> FreeBSD 5.2.1-RELEASE, oops последний cvs.
> # ./oops -V
> oops version 1.5.23
> CC=cc
> CFLAGS=-O2 -pipe -mcpu=pentiumpro -fPIC -D_REENTRANT -DFREEBSD
> -D_THREAD_SAFE -DFD_SETSIZE=2048 -I. -DWITH_LARGE_FILES
> -I/usr/local/include -I/usr/local/include/db4 -export-dynamic
> LIBS=-lc_r -lfl -lfl -lpam -lcrypt /usr/local/lib/libpcreposix.a
> /usr/local/lib/libpcre.a -L/usr/local/lib -ldb4
>
>
> --
> 20, Karl Marx Avenue, Phone: +7-3832-462484
> Russia, Novosibirsk 630092 E-mail: [EMAIL PROTECTED]
> --- src/clean_disk.c.orig Wed Dec 19 21:15:16 2001
> +++ src/clean_disk.c Fri Aug 27 12:59:10 2004
> @@ -182,7 +182,7 @@
> {
> if ( forced_cleanup )
> return(1);
> - if ( ( low_free > 0 ) && ((total_free*100)/total_blks < low_free) )
> + if ( ( low_free > 0 ) && ((total_free*100.)/total_blks < low_free) )
а зачем тут плавучка?
не проще ли тогда уж total_free/total_blks*100?
--
There is no likelihood man can ever tap the power of the atom.
-- Robert Millikan, Nobel Prize in Physics, 1923
=====================================================================
If you would like to unsubscribe from this list send message to
[EMAIL PROTECTED] with "unsubscribe oops" in message body.
Archive is accessible on http://lists.paco.net/oops-rus/