После апгрейда на Apache 1.3.26rusPL30.13 стали проявляться странные проблемы, с непонятной пероятностью перестали субмитится формы, т.е. при POST запросе параметры просто не поступают в скрипт. Иногда валится "Invalid method in request submit". Меня пользователи заваливают сообщениями о том же, и вот в данный форум тоже сообщение через раз добавилось, как видно тоже апач проабгрейдили. Подобные глюк проявляется во всех браузерах (тестировал IE 5.0, Mozilla 1.0, netscape 4.76).
Извините за пространное сообщение - бегу проводить диагностику, что выясню напишу позже подробнее.Пока подозрения падают на следующий код:
--- apache_1.3.22/src/main/http_protocol_orig.c Fri Jun 22 05:43:54 2001
+++ apache_1.3.22/src/main/http_protocol.c Sun Jun 23 15:56:34 2002
@@ -1913,6 +1913,9 @@
}
r->remaining = atol(lenp);
+ if (r->remaining < 0) {
+ return HTTP_BAD_REQUEST;
+ }
}
if ((r->read_body == REQUEST_NO_BODY) &&
@@ -2049,6 +2052,10 @@
}
len_to_read = get_chunk_size(buffer);
+ if (len_to_read < 0) {
+ r->connection->keepalive = -1;
+ return -1;
+ }
if (len_to_read == 0) { /* Last chunk indicated, get footers */
if (r->read_body == REQUEST_CHUNKED_DECHUNK) {
Блин, это сообщение с 4 раза проскочило :-((( У меня на серваках тоже самое творится.
Hi,>Блин, это сообщение с 4 раза проскочило :-((( У меня на серваках
>тоже самое творится.истинно так, post глюкает. А зачем upgrade'ился? Для RA ведь тот метод
завала не рабочий.Для RA пока еще в maillist'е ничего нет, те глюк обнаружен, но пока
не локализован:
>истинно так, post глюкает. А зачем upgrade'ился? Для RA ведь тот метод
>завала не рабочий.У меня в куче мест CharsetDisable On, а при этом очень даже рабочий завал получается.
>Для RA пока еще в maillist'е ничего нет, те глюк обнаружен, но
>пока не локализован:
Уже ищут. http://apache.lexa.ru/mail-archive/msg03897.html
Жаль что на apache-rus не подписан, а apache-talk пока молчат.
Выяснил, что проблема только в Russian apache.Кстати, Тутубалину тоже валятся репорты, но причина пока не ясна:
http://apache.lexa.ru/mail-archive/msg03897.html
>Выяснил, что проблема только в Russian apache.
>
>Кстати, Тутубалину тоже валятся репорты, но причина пока не ясна:
>http://apache.lexa.ru/mail-archive/msg03897.htmlбум ждать
В mod_cgi.c в 1.3.26 изменили конструкцию (242 строка):if ((r->method_number == M_POST || r->method_number == M_PUT)
&& dbuf && *dbuf) {
fprintf(f, "\n%s\n", dbuf);
}Т.е. вместо && *dbuf добавили "&& dbuf && *dbuf",
Я поменял обратно, т.е. оставил && *dbuf - проблема исчезла, осталось выяснить
почему эффект проявляется только в Russian Apache.Выслал информацию Тутубалину, посмотрим что он скажет.
Я поторопился с выводами, проблема была из-за другого куска кода:apache-1.3-rus/src/main/http_protocol.c Mon Jun 24 19:23:36 2002
***************
*** 2187,2193 ****
--- 2187,2198 ----
"Invalid Content-Length");
return HTTP_BAD_REQUEST;
}
+ #ifdef RUSSIAN_APACHE
+ if(r->ra_codep)
+ r->ra_codep->bytes_remaining = r->remaining;
+ #endif
}
ftp://ftp.lexa.ru/pub/apache-rus/diffs/pl30_13-30_14_a.diff.gz