[Suzaku:00473] Re: suzaku uClinux apacheの質問 ( 追加質問)

kyosuke yoshizu email@hidden
2006年 3月 13日 (月) 16:49:57 JST


yoshizuです


何回も同じことを実施すると何10回かに1回は成功します

成功と失敗のパケットのやり取りを記述すると以下になります

失敗時は朱雀からの”HTTP1.0/200 OK”というデータの送信直後に
POSTデータの受信がぶつかるようなパケットトレースとなっています


vfork()の影響でしょうか?



--------------------------------------

成功時

Windows CE          朱雀


  SYN      →    
           ←  SYN ACK 
  ACK      →
    
      ここでTCPコネクション確立
 
  POST     →
           ← ACK

POST DATA  →
POST DATA  →
 
          ← ACK
      ACK  → 
          ← DATA(HTTP1.0/200 OK)


--------------------------------------

失敗時

Windows CE          朱雀


  SYN      →    
           ←  SYN ACK 
  ACK      →
   
      ここでTCPコネクション確立
  

  POST     →
           ← ACK

           ← DATA(HTTP1.0/200 OK)
 
POST DATA  →                 送信処理と受信処理がぶつか
る? 
POST DATA  →
         
           ← ACK

--------------------------------------
            




kyosuke yoshizu wrote:

> yoshizuです
>
> 他に調査手段がみつかりませんので
> 試してみたいと思います
>
> 下記について具体的な修正内容を教えてください
>
> 以上よろしくお願い致します
>
> >thttpdで作業していると思うのですが、uClinuxの場合問題が一つあります。
> >
> >uClinuxでは fork()ではなく vfork()を使うのですが、vfork()の場合、子が終
>> >するまで親は動けません。大きなデータをPOSTで処理する場合、これが
> >問題になります。
>
> >thttpdの libhttpd.cの中で pipe()処理している個所を一時ファイルにしてあ
> げる>と
> >大きなデータでも処理できるようになります。
>
> >でも、XPのIEでは問題無いのであれば、関係無いかな?
> >--
> >         yashi





suzaku メーリングリストの案内