YungTatyu / webserv

HTTP/1.1 server written in cpp.
1 stars 0 forks source link

Issue268 return timeout response #269

Closed ayase-mstk closed 3 months ago

ayase-mstk commented 3 months ago

killするときに送るシグナルをSIGKILLからSIGTERMに変更しました。これはtestの中でwebservがSIGKILLだとうまく子プロセスをkillできていなかったからです。 これは不確かですが、SIGKILLは端末が紐づけられていないと機能しないのかもしれません。 Linuxプログラミングインターフェースを読む限りでもSIGTERMの方がプロセスをkillするシグナルとしては一般的なようです。

timeoutしたのがcgiだった場合に、killしたプロセスをwaitして回収するようにしました。 いまはhandleTimeoutEventの方だけで行っているのですが、本来はworker_connectionsでプロセスをkillしたときも回収しないとなので、ほかのところでまとめてwaitpidするように変更するかもしれません。例えばServerのloopの最後とか? そのプロセスが少しオーバーヘッドを生み出しそうで懸念しています。

504エラーレスポンスが返せていなかったので返すようにしました。 server_res_testにもcgiがタイムアウトしたときに504を返すテストを追加しました。

ayase-mstk commented 3 months ago

cgi のテストがfailしているようです。

そのようですね。正直原因はなぞです。clearResData()を消しただけでなぜこのようになるのか、、、