-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Evaluation] ./tester 테스트 케이스 #249
Comments
Test POST http://localhost:1234/directory/youpi.bla with a size of 100000 with special headers
|
HTTP_X_SECRET_HEADER_FOR_TEST defines response message |
|
feature/multirequest Test multiple workers(5) doing multiple times(15): GET on / Test multiple workers(20) doing multiple times(5000): GET on / |
와... ㅠㅠㅠ |
20 workers 모두 SYN_SENT인데 accept이 안된 걸까요?
|
네 established가 되어야 연결된거에요 그전에 클라이언트에서 synsent로 기다립니다. |
혹시 tester말고 webserv상태도 보여주실수있나요? |
그건 어떻게 확인하나요??? 웹서브는 아래 메세지와 함께 스스로 죽었어요 아래처럼 계속 읽어오려고 시도하다 죽어요. GET MESSSAGE SUCCESS 란 문구가 안나온 걸로 봐서는, getMessage 리턴값이 SUCCESSS는 아니네요.
일단 제가 짐작하는 문제 원인은
|
앗앗 죽어서 사라졌나봐요. 원래는 아래 바로나옵니다. 그러면 SENT_SYN이 나오는 이유는 accept되기전에 Webserv 가 중단돼서인것같습니다. Sock 관리실패면 select err 9가 떳을텐데 음.. 이게 동일 문제인지는 모르겠으나 지금 계속 검색중인데 close()만으로 소켓이 끊어졌다고 확신할수없는것같습니다. ( close가 바로 버퍼까지 비워주는건아닌것같습니다) 저도 온전치 못한 메세지때문인것같기도합니다 음음.. 뭔가 끊어주는 기준을 정해야할것같아요 로그는 어떤가요? |
Test multiple workers(5) doing multiple times(15): GET on / Test multiple workers(20) doing multiple times(5000): GET on / 두개가 같은 요청이라서 구분을 할 수가 없네요 ㅠㅠ 이게 5워커의 요청인지 20워커의 요청인지, 20워커의 요청이 들어오기나 한 것인지... 제 생각엔 들어오지도 않았을 것 같습니다 |
그렇네요... 왜 죽어버리지 .... 아무튼 읽지도 못한채로 죽어버리는 거니까... 반짤려서 온다고 생기는 문제는 아니겠네요. run.sh: line 55: 3665 Killed: 9 ./Webserv config/${file_name} 이런 메세지 나오면서 죽잖아요. 혹시 3665 이게 pid 같은데, webserv의 부모 pid겠죠? cgi pid가 죽는다고 프로그램이 꺼지진 않을테니.. . 그리고 앞선 메세지에서 저희 요청이 정상처리되면 close 안하기 때문에 close 하는 부분은 지금은 없는 것 같아요. 아니면 tester의 close 문제 얘기하는 거에요? |
생각해보니 SENT_SYN 가 서로 연결되기 전 상태니까 read peek문제가 있더라도 그 전에 발생한 문제겠네요.. |
저희쪽 close에관한 것이었는데 생각해보니 그 문제는 아닌것같아요 생각 조금 더 해보겠습니다. |
ret ==0 일때도 continue를 해줬던 게 가장 큰 문제였고 그건 fail 처리해줬습니다.
|
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 이거 근데 저희 한번 할 때도 오래걸리거든요... 근데 총 100번 하니까.... 시간이 이게... 아마 두시간 걸릴듯;;; 개선이 필요하긴 하겠네요 |
와우.............................ㅜㅡㅜ |
아무튼 앞에 것들의 주된 개선사항은
|
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 |
ㅠㅠㅠㅠㅠㅠㅠ |
while 1 ; do ls -al ; sleep 1 ; clear ; done |
오늘 시도해본 것
이렇게 하니까 직접 보내지고!!!! 대신 형식이 맞지 않아서 에러가 나옵니다. 암튼 직접 물려준다는 것의 의미는 이런 것이 아닐까... 그래서 내일 시도해볼 건, 일단 헤더만 정리해주고 그 다음부터 clientfd로 직접 쏴주게요. |
@yechoi42 직접 보내지나 검증을 몇가지 해보았습니다. 검증우선 검증을 위해 헤더는 동일하게 안보내주었습니다. 클라이언트로 테스트해보았는데 직접물린경우 아무것도 출력되지않습니다.
오류 추정
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('localhost', 8080))
cmd = "POST /directory/YoupiBanane/aa.bla HTTP/1.1\r\nAccept: */*\r\nUser-Agent: rawtester\r\nHost: localhost:8080\r\nContent-Length: 7\r\n\r\nabcdefg"
mysock.send(cmd)
while True:
data = mysock.recv(466)
if(len(data) < 1):
break
print(data.decode())
mysock.close() |
The text was updated successfully, but these errors were encountered: