URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 18065
[ Назад ]

Исходное сообщение
"Проблемы с Apache 1.3.26"

Отправлено uldus , 24-Июн-02 10:41 
После апгрейда на 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) {


Содержание

Сообщения в этом обсуждении
"RE: Проблемы с Apache 1.3.26"
Отправлено uldus , 24-Июн-02 10:42 
Блин, это сообщение с 4 раза проскочило :-((( У меня на серваках тоже самое творится.

"RE: Проблемы с Apache 1.3.26"
Отправлено lavr , 24-Июн-02 11:00 
Hi,

>Блин, это сообщение с 4 раза проскочило :-((( У меня на серваках
>тоже самое творится.

истинно так, post глюкает. А зачем upgrade'ился? Для RA ведь тот метод
завала не рабочий.

Для RA пока еще в maillist'е ничего нет, те глюк обнаружен, но пока
не локализован:

http://apache.lexa.ru/mail-archive/


"RE: Проблемы с Apache 1.3.26"
Отправлено uldus , 24-Июн-02 11:10 
>истинно так, post глюкает. А зачем upgrade'ился? Для RA ведь тот метод
>завала не рабочий.

У меня в куче мест CharsetDisable On, а при этом очень даже рабочий завал получается.

>Для RA пока еще в maillist'е ничего нет, те глюк обнаружен, но
>пока не локализован:
Уже ищут. http://apache.lexa.ru/mail-archive/msg03897.html
Жаль что на apache-rus не подписан, а apache-talk пока молчат.


"RE: Проблемы с Apache 1.3.26 RUS"
Отправлено uldus , 24-Июн-02 11:08 
Выяснил, что проблема только в Russian apache.

Кстати, Тутубалину тоже валятся репорты, но причина пока не ясна:
http://apache.lexa.ru/mail-archive/msg03897.html


"RE: Проблемы с Apache 1.3.26 RUS"
Отправлено lavr , 24-Июн-02 12:44 
>Выяснил, что проблема только в Russian apache.
>
>Кстати, Тутубалину тоже валятся репорты, но причина пока не ясна:
>http://apache.lexa.ru/mail-archive/msg03897.html

бум ждать


"RE: Проблемы с Apache 1.3.26"
Отправлено Maxim Chirkov , 24-Июн-02 13:12 
В 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.

Выслал информацию Тутубалину, посмотрим что он скажет.


"RE: Проблемы с Apache 1.3.26"
Отправлено Maxim Chirkov , 24-Июн-02 22:47 
Я поторопился с выводами, проблема была из-за другого куска кода:

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