Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Ramazan Ja-Far                       2:5020/400     24 Jul 2002  20:55:41
 To : All
 Subject : offline squid, "age > min_age" and cache miss
 -------------------------------------------------------------------------------- 
 
 Hi, all!
 Обнаружил такую проблему - squid не всегда отдаёт имеющуюся
 в кэше устаревшую страницу (в оффлайновом режиме).
 
 К примеру, http://www.redhat.com/advice/ask.html
 Шапчатый сервер (апач) изначально возвращает эту страницу без
 заголовков expire (EX:-1) и last modified (LM:-1).
 В логе видно, что ask.html складывается (SWAPOUT) в кэш.
 // BTW, у меня в конфиге min-age == 7 минут.
 Входим в оффлайн, запрашиваем страницу, получаем ERROR страницу:
   While trying to retrieve the URL: http://www.redhat.com/advice/ask.html
   The following error was encountered: * Connection Failed
   The system returned: (101) Network is unreachable
 
 В /var/log/squid/cache.log видим, что объект определён как устаревший:
 2002/07/24 18:24:00| refreshCheck: 'http://www.redhat.com/advice/ask.html'
 2002/07/24 18:24:00| STALE: age 75105 > min 420
 2002/07/24 18:24:00| Staleness = 74685
 2002/07/24 18:24:00| refreshCheck: Matched '^http://[^/]+redhat 420 100% 259200'
 2002/07/24 18:24:00| refreshCheck: age = 75105
 2002/07/24 18:24:00|    check_time:     Wed, 24 Jul 2002 15:24:00 GMT
 2002/07/24 18:24:00|    entry->timestamp:       Tue, 23 Jul 2002 18:32:15 GMT
 
 Теперь сходим обновить ask.html, при помощи /usr/sbin/client:
 HTTP/1.0 200 OK
 Date: Wed, 24 Jul 2002 15:48:22 GMT
 Server: Apache/1.3.12 (Unix)  (Red Hat/Linux) mod_perl/1.24
 Set-Cookie: pg-session-id=52aade8db076b8ee1ae7499c94a132e3;
   path=/; domain=www.redhat.com
 Content-Length: 29272
 Cache-Control: public
 Content-Type: text/html; charset=iso-8859-1
 X-Cache: MISS from cherokee.ultraworld.kiev.ua
 Proxy-Connection: close
 
 BTW, ключ этого ask.html вчера был 2CBC4F228BF71BFED0DF60B310E0FF1A,
 по данным вчерашнего store.log
 Посмотрим, что у нас в /var/log/squid/store.log сейчас:
 1027525706.309 RELEASE 00 000011D0 2CBC4F228BF71BFED0DF60B310E0FF1A   ?        
 ?         ?         ? ?/? ?/? ? ?
 1027525709.529 SWAPOUT 00 000000B4 2CBC4F228BF71BFED0DF60B310E0FF1A  200
 1027525 702        -1        -1 text/html 29272/29272
 GET http://www.redhat.com/advice/ask.html
 
 И что происходило в /var/log/squid/cache.log в то же самое время:
 2002/07/24 18:48:24| refreshCheck: 'http://www.redhat.com/advice/ask.html'
 2002/07/24 18:48:24| STALE: age 76569 > min 420
 ...
 2002/07/24 18:48:25| getMaxAge: 'http://www.redhat.com/advice/ask.html'
 2002/07/24 18:48:26| ctx: enter level  0: 'http://www.redhat.com/advice
 /ask.html'
 2002/07/24 18:48:26| refreshCheck: 'http://www.redhat.com/advice/ask.html'
 2002/07/24 18:48:26| FRESH: age 64 <= min 420
 ...
 2002/07/24 18:49:03| ctx: exit level  0
 
 Видимо, squid прибил кэшированный ask.html и перезаписал.
 Прошла пара минут, я вывел squid в оффлайн и он успел
 выдать ask.html из кэша (пока ещё файл не устарел):
 2002/07/24 18:52:07| refreshCheck: 'http://www.redhat.com/advice/ask.html'
 2002/07/24 18:52:07| FRESH: age 225 <= min 420
 
 Спустя 15 минут устаревший ask.html из кэша уже не отдаётся:
 [ramazan@cherokee ramazan]$ /usr/sbin/client -v
   "http://www.redhat.com/advice/ask.html"
 HTTP/1.0 503 Service Unavailable
 Server: Squid/2.4.STABLE6
 Mime-Version: 1.0
 Date: Wed, 24 Jul 2002 16:09:35 GMT
 Content-Type: text/html
 Content-Length: 743
 Expires: Wed, 24 Jul 2002 16:09:35 GMT
 X-Squid-Error: ERR_CONNECT_FAIL 101
 X-Cache: MISS from cherokee.ultraworld.kiev.ua
 
 Старость ask.html на момент последнего запроса подтверждает
 /var/log/squid/cache.log:
 2002/07/24 19:09:35| refreshCheck: 'http://www.redhat.com/advice/ask.html'
 2002/07/24 19:09:35| STALE: age 1273 > min 420
 
 Я даже посмотрел в "CacheMgr@localhost: objects" - есть наш файл:
 KEY 2CBC4F228BF71BFED0DF60B310E0FF1A
   STORE_OK      NOT_IN_MEMORY SWAPOUT_DONE PING_DONE   
   CACHABLE,DISPATCHED,VALIDATED
   LV:1027525702 LU:1027526975 LM:-1        EX:-1       
   0 locks, 0 clients, 3 refs
   Swap Dir 0, File 0X0000B4
 Т.е. он лежит _мёртвым_ грузом?
 
 Вот такая фигня. Что самое интересное, это очень сильно смахивает
 на баг или багофичу, т.к. в принципе устаревшие страницы мой
 squid выдаёт. К примеру, http://users.g.com.ua/~batmanb/box/a1/index.shtml
 HTTP/1.0 200 OK
 Date: Wed, 24 Jul 2002 00:38:56 GMT
 Server: Apache/1.3.12 (Unix) rus/PL29.4
 Content-Type: text/html; charset=koi8-u
 Expires: Thu, 01 Jan 1970 00:00:01 GMT
 Last-Modified: Wed, 24 Jul 2002 00:38:56 GMT
 X-Cache: HIT from cherokee.ultraworld.kiev.ua
 
 При этом index.shtml тоже устаревший (я смотрел в cache.log):
 2002/07/24 19:22:12| refreshCheck: 'http://users.g.com.ua/~batmanb/box/
 a1/index.shtml'
 2002/07/24 19:22:12| STALE: expires 1 < check_time 1027527732
 
 Только index.shtml - устаревший по другой причине: expires < now,
 а ask.html по причине age > min_age.
 Может поэтому squid его не отдаёт из кэша?
 Или squid не понял заголовок Cache-Control: public?
 Судя по исходникам сквида, с CacheControl: public там всё
 в порядке...
 
 Буду признателен за любые соображения или хотя бы подтверждение
 воспроизводимости бага на ваших системах.
 
 -- 
 Bye!
 Ramazan
 --- ifmail v.2.15dev5
  * Origin: Svit Online (post does not reflect views of Golden Tele (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 offline squid, "age > min_age" and cache miss   Ramazan Ja-Far   24 Jul 2002 20:55:41 
Архивное /ru.linux/348435dbd81ab.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional