데드락 탐지 건에 대해서 질문이 있습니다.
안녕하세요,
데드락 탐지 건에서 질문을 하고 싶습니다.
제가 강사님 프로젝트를 다운받아서 코드를 제대로 살펴보았음에도 육안으로 구분한 것이라 제가 간과한 부분이 있을 수도 있습니다.
영상 마지막 부분에 std::stack<int32> 부분은 선언하지 않고, 순전히 영상 전의 내용과 고친 부분의 후로 나뉘기는 하지만 결과는 동일합니다.
결과적으로는 무한루프가 발생하는데,
이게 DFS 내부적인 로직이 꼬여서 무한루프가 발생하는 것인지, 아니면 스레드 끼리의 DeadLock 으로 인해서 생긴 무한루프 때문에 충돌이 난 것인지 제가 확인을 할 방법이 없습니다. (정확히는 디버깅 미숙 숙련도 이슈입니다.)
혹시 어디 부분이 제가 빠트렸거나 유추 가능한 원인요인들이 있을까요?
https://drive.google.com/file/d/1HYHZMhf6wkkHxvqLIpAU1-SsSNKS4rO3/view?usp=drive_link
답변 1
2
영상 마지막 부분의
thread_local std::stack<int32> LLockStack;
은 꼭 넣어주시고 그거에 맞게 코드를 수정해야 합니다.
그러면 문제는 해결됩니다!
추가 후 ServerCore를 다시 빌드했는지 꼭 확인해보세요.
두 번째로는 디버깅 숙련도 미숙하신 상황을 인지하셨으면
가급적 며칠이 걸리더라도 헤딩을 해서
디버깅 실력을 키우고 연습을 더 하셔야 합니다.
회사에 가서 이런 상황이 발생하면
느긋하게 상사한테 찾아달라고 할 수 없기 때문이죠.
디버깅이 아니라 알고리즘 이해도가 부족해서
DFS 싸이클 판정 원리가 이해가 힘들다면,
이 또한 알고리즘을 공부해야 하는 이유입니다.
그럼 힘내세요
Memory Pool에서 오버플로우 질문입니다.
0
63
2
포토폴리오 및 진로 관련하여 고민입니다.
0
112
1
포토폴리오 관련 고민입니다.
0
62
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
82
2
성능 테스트 결과
0
103
2
게임 서버 Stateful, Stateless 진로 고민
0
121
1
WaitOnAddress와 Sleep의 차이 질문
0
83
1
궁금한거 있습니다.
0
82
2
JobTimer 구동 스레드
0
107
2
TryPop() 동작 관련 질문
0
81
1
로드맵 C#서버 C++서버 방향성 질문
0
148
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
73
1
생명주기를 위한 의도적 복사
0
87
2
락프리의 실무에서 사용 질문
0
141
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
101
2
mutex와 sleep 차이점
0
117
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
152
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
96
1
공부법 관련해서
0
183
2
MakeShared 함수 관련
0
114
1
지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.
0
144
2
운영체제관련 질문입니다
0
131
1
send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.
0
117
2
메모리 풀 질문있습니다.
0
124
1





