You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Test GET http://localhost:1234/
Test POST http://localhost:1234/ with a size of 0
Test HEAD http://localhost:1234/
Test GET http://localhost:1234/directory
Test GET http://localhost:1234/directory/youpi.bad_extension
Test GET http://localhost:1234/directory/youpi.bla
Test GET Expected 404 on http://localhost:1234/directory/oulalala
Test GET http://localhost:1234/directory/nop
Test GET http://localhost:1234/directory/nop/
Test GET http://localhost:1234/directory/nop/other.pouic
Test GET Expected 404 on http://localhost:1234/directory/nop/other.pouac
Test GET Expected 404 on http://localhost:1234/directory/Yeah
Test GET http://localhost:1234/directory/Yeah/not_happy.bad_extension
Test Put http://localhost:1234/put_test/file_should_exist_after with a size of 1000
Test Put http://localhost:1234/put_test/file_should_exist_after with a size of 10000000
Test POST http://localhost:1234/directory/youpi.bla with a size of 100000000
Test POST http://localhost:1234/directory/youpla.bla with a size of 100000000
Test POST http://localhost:1234/directory/youpi.bla with a size of 100000 with special headers
Test POST http://localhost:1234/post_body with a size of 0
Test POST http://localhost:1234/post_body with a size of 100
Test POST http://localhost:1234/post_body with a size of 200
Test POST http://localhost:1234/post_body with a size of 101
Test multiple workers(5) doing multiple times(15): GET on /
Test multiple workers(20) doing multiple times(5000): GET on /
Test multiple workers(128) doing multiple times(50): GET on /directory/nop
Test multiple workers(20) doing multiple times(5): Put on /put_test/multiple_same with size 1000000
Test multiple workers(20) doing multiple times(5): Post on /directory/youpi.bla with size 100000000
Accept OK
Accept OK
Accept OK
Accept OK
Accept OK
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::1:: 16 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::1:: 17 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::1:: 18 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::1:: 19 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::4::
OOOOOOO END 3938
::4::
OOOOOOO OK 3938
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::1:: 16 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::4::
OOOOOOO END 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO OK 3938
::4::
OOOOOOO END 3938
::4::
OOOOOOO OK 3938
::1:: 9 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
GET MESSAGE SUCCESS
RESETREQUEST) BODY SIZE: 0
STATUS CODE: 200
SET WRITE FD :D
::4::
OOOOOOO END 3938
::1:: 16 ::
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzipGET / HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
CASE 3
select error
9
4
22
12
9
FATAL ERROR ON LAST TEST: Post http://localhost:8080/directory/youpi.bla: net/http: HTTP/1.x transport connection broken: malformed HTTP version "Status:"
이렇게 하니까 직접 보내지고!!!! 대신 형식이 맞지 않아서 에러가 나옵니다. 암튼 직접 물려준다는 것의 의미는 이런 것이 아닐까... 그래서 내일 시도해볼 건, 일단 헤더만 정리해주고 그 다음부터 clientfd로 직접 쏴주게요.
Activity
yechoi42 commentedon Apr 3, 2021
Test POST http://localhost:1234/directory/youpi.bla with a size of 100000 with special headers
hochan222 commentedon Apr 7, 2021
Report
other issue occurs => retest
hochan222 commentedon Apr 7, 2021
HTTP_X_SECRET_HEADER_FOR_TEST defines response message
hochan222 commentedon Apr 7, 2021
success
hochan222 commentedon Apr 7, 2021
success 마지막 woker만 남음
hochan222 commentedon Apr 7, 2021
yechoi42 commentedon Apr 11, 2021
feature/multirequest
Test multiple workers(5) doing multiple times(15): GET on /
통과
Test multiple workers(20) doing multiple times(5000): GET on /
실패
run.sh: line 55: 2965 Killed: 9 ./Webserv config/${file_name}
hochan222 commentedon Apr 11, 2021
와... ㅠㅠㅠ
yechoi42 commentedon Apr 11, 2021
20 workers
모두 SYN_SENT인데 accept이 안된 걸까요?
hochan222 commentedon Apr 11, 2021
네 established가 되어야 연결된거에요 그전에 클라이언트에서 synsent로 기다립니다.
hochan222 commentedon Apr 11, 2021
혹시 tester말고 webserv상태도 보여주실수있나요?
yechoi42 commentedon Apr 11, 2021
그건 어떻게 확인하나요???
웹서브는 아래 메세지와 함께 스스로 죽었어요
run.sh: line 55: 2965 Killed: 9 ./Webserv config/${file_name}
아래처럼 계속 읽어오려고 시도하다 죽어요. GET MESSSAGE SUCCESS 란 문구가 안나온 걸로 봐서는, getMessage 리턴값이 SUCCESSS는 아니네요.
일단 제가 짐작하는 문제 원인은
hochan222 commentedon Apr 11, 2021
앗앗 죽어서 사라졌나봐요. 원래는 아래 바로나옵니다. 그러면 SENT_SYN이 나오는 이유는 accept되기전에 Webserv 가 중단돼서인것같습니다.
Sock 관리실패면 select err 9가 떳을텐데 음..
이게 동일 문제인지는 모르겠으나 지금 계속 검색중인데 close()만으로 소켓이 끊어졌다고 확신할수없는것같습니다. ( close가 바로 버퍼까지 비워주는건아닌것같습니다)
저도 온전치 못한 메세지때문인것같기도합니다 음음.. 뭔가 끊어주는 기준을 정해야할것같아요 로그는 어떤가요?
yechoi42 commentedon Apr 11, 2021
Test multiple workers(5) doing multiple times(15): GET on /
Test multiple workers(20) doing multiple times(5000): GET on /
두개가 같은 요청이라서 구분을 할 수가 없네요 ㅠㅠ 이게 5워커의 요청인지 20워커의 요청인지, 20워커의 요청이 들어오기나 한 것인지... 제 생각엔 들어오지도 않았을 것 같습니다
yechoi42 commentedon Apr 11, 2021
그렇네요... 왜 죽어버리지 .... 아무튼 읽지도 못한채로 죽어버리는 거니까... 반짤려서 온다고 생기는 문제는 아니겠네요.
run.sh: line 55: 3665 Killed: 9 ./Webserv config/${file_name}
이런 메세지 나오면서 죽잖아요. 혹시 3665 이게 pid 같은데, webserv의 부모 pid겠죠? cgi pid가 죽는다고 프로그램이 꺼지진 않을테니.. .
그리고 앞선 메세지에서 저희 요청이 정상처리되면 close 안하기 때문에 close 하는 부분은 지금은 없는 것 같아요. 아니면 tester의 close 문제 얘기하는 거에요?
hochan222 commentedon Apr 11, 2021
생각해보니 SENT_SYN 가 서로 연결되기 전 상태니까 read peek문제가 있더라도 그 전에 발생한 문제겠네요..
http://hyacinth.byus.net/moniwiki/wiki.php/TCP%20%EC%97%B0%EA%B2%B0%20%EC%83%81%ED%83%9C%20%EC%9D%98%EB%AF%B8
hochan222 commentedon Apr 11, 2021
저희쪽 close에관한 것이었는데 생각해보니 그 문제는 아닌것같아요 생각 조금 더 해보겠습니다.
yechoi42 commentedon Apr 11, 2021
ret ==0 일때도 continue를 해줬던 게 가장 큰 문제였고 그건 fail 처리해줬습니다.
그 다음 문제는 위 처럼 로그를 찍어봤는데 메세지가 잘린 채로 들어왔는데 parse를 시도하는 게 문제입니다.
아래 부분이 파싱을 시도하려하는 메세지입니다.
yechoi42 commentedon Apr 11, 2021
Test multiple workers(20) doing multiple times(5000): GET on /
성공
Test multiple workers(128) doing multiple times(50): GET on /directory/nop
성공
Test multiple workers(20) doing multiple times(5): Put on /put_test/multiple_same with size 1000000
성공
눈물이 난다...............ㅠㅠㅠㅠㅠㅠㅠㅠ흫아하앟악
yechoi42 commentedon Apr 11, 2021
Test multiple workers(20) doing multiple times(5): Post on /directory/youpi.bla with size 100000000
시도중
이거 근데 저희 한번 할 때도 오래걸리거든요... 근데 총 100번 하니까.... 시간이 이게... 아마 두시간 걸릴듯;;; 개선이 필요하긴 하겠네요
jwon42 commentedon Apr 11, 2021
와우.............................ㅜㅡㅜ
yechoi42 commentedon Apr 11, 2021
아무튼 앞에 것들의 주된 개선사항은
hochan222 commentedon Apr 11, 2021
@yechoi42 @jwon42 와ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 대박이에요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 와....>!!!! 와 ㅠㅠㅠㅠㅠㅠㅠㅠ 너무 고생하셨어요 ㅠㅠㅠㅠ 흐흐흐흐흐휴ㅠㅠㅠㅠㅠ
hochan222 commentedon Apr 11, 2021
@yechoi42 @jwon42 제가 테스터기라도 기깔나게 만들어 놓겠습니다.
yechoi42 commentedon Apr 11, 2021
Test multiple workers(20) doing multiple times(5): Post on /directory/youpi.bla with size 100000000
GG, So far so good! Run your own tests now! :D
hochan222 commentedon Apr 12, 2021
ㅠㅠㅠㅠㅠㅠㅠ
hochan222 commentedon Apr 21, 2021
while 1 ; do ls -al ; sleep 1 ; clear ; done
yechoi42 commentedon Apr 22, 2021
오늘 시도해본 것
이렇게 하니까 직접 보내지고!!!! 대신 형식이 맞지 않아서 에러가 나옵니다. 암튼 직접 물려준다는 것의 의미는 이런 것이 아닐까... 그래서 내일 시도해볼 건, 일단 헤더만 정리해주고 그 다음부터 clientfd로 직접 쏴주게요.
hochan222 commentedon Apr 22, 2021
@yechoi42 직접 보내지나 검증을 몇가지 해보았습니다.
검증
우선 검증을 위해 헤더는 동일하게 안보내주었습니다. 클라이언트로 테스트해보았는데 직접물린경우 아무것도 출력되지않습니다.
오류 추정