[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: squid отдает данные из кеша через раз обновляя данные?



On Fri, Jul 23, 2010 at 02:47:24PM +0400, Dmitry A. Zhiglov wrote:
> >> Уважаемое сообщество, прошу помощи в понимании следующей ситуации.
> >>
> >> Есть программа на С под задачу - зайти через прокси в интернет (squid
> >> 2.6STABLE12 + ad), забрать файл с данными (три цифры внутри файла) и
> >> положить его в папку. И вот так с частотой 1 раз в секунду.
> >>
> >> Вчера наблюдал ситуацию, когда в консоль программа писала значения
> >> один раз корректные, затем нули, затем опять корректные значения.
> >
> > попали в момент перезаписи файла? он ведь и перезаписывается раз в секунду как раз наверно?
> 
> 
> Узнал следующее. Данные формирует php скрипт, о перезаписи файла речь не идет.
> 
> 
> >
> >> Данные у источника в интернете не изменялись "в нуль", это
> >> проверялось. Лечилось перезапуском программы.
> >>
> >> Программист утверждает, что программа тупая как валенок. Забирает по
> >> http то, что ей отдает сервер.
> >
> > что отдаёт программа когда в файле один только EOF?
> 
> 
> Байт в байт возвращает, что получил. Данные парсятся как раз по
> управляющим байтам.

Думаю, вопрос Дениса бил "как точно парсятся".  Если делается fscanf()
(или sscanf() или вообще *scanf()) или strtod()/strtol(), проверяется
ли заранее, строка пуста ли?  Если такой проверки нет и по какой-то
причине wget выдаст празный файл, то *scanf() и strto*() выпарсят
с него один нуль.

Проверьте каким-то образом, wget не выдает ли 0-length files - или
допишите програму чтоб проверяла, не пустая ли строка прежде чем парсить.

Всего лучшего,
Петр

-- 
Peter Pentchev	roam@space.bg    roam@ringlet.net    roam@FreeBSD.org
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
because I didn't think of a good beginning of it.

Attachment: signature.asc
Description: Digital signature


Reply to: