# 10년 된 스팀 버그

> Clean Markdown view of GeekNews topic #12850. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=12850](https://news.hada.io/topic?id=12850)
- GeekNews Markdown: [https://news.hada.io/topic/12850.md](https://news.hada.io/topic/12850.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-01-14T10:10:48+09:00
- Updated: 2024-01-14T10:10:48+09:00
- Original source: [blog.freudenjmp.com](https://blog.freudenjmp.com/posts/no-user-logon/)
- Points: 1
- Comments: 1

## Topic Body

### Valve의 10년 된 Steam 문제, 모두가 Valve보다 너무 빠른가?

- Valve는 때때로 커뮤니티 피드백과 버그 보고에 대응하지 않는 것으로 보임.
- 10년 된 버그에 관한 이야기.

#### tl;dr

- 10년 이상 지속된 Counter-Strike의 `No user logon` 문제를 해결하기 위한 몇 가지 대중적인 해결책들이 실제로는 근본 원인을 해결하지 못함.
- 이 글을 구글을 통해 찾았다면, 다음 해결책들을 시도하지 말 것:
  * 게임 재설치
  * 게임 파일 검증
  * Steam 재시작
  * 컴퓨터 재시작
  * WiFi 비활성화

#### Introduction

- Counter-Strike는 Valve에 의해 개발된 유명한 게임임.
- 최근에 Counter-Strike 2(CS2)가 출시되어 Counter-Strike: Global Offensive(CS:GO)를 대체함.
- CS2는 많은 버그를 포함하고 있으며, 이로 인해 게임 경험이 좋지 않음.
- Valve는 CS2를 HackerOne 버그 바운티 프로그램에 포함시키지 않아 CS2와 관련된 버그 보고에 대해 보상을 지급하지 않음.

#### No user logon

- 커뮤니티가 수년간 보고한 버그들이 여전히 해결되지 않고 CS2에도 존재함.
- `No user logon` 오류는 게임 중 무작위로 발생함.
- 이 문제는 여러 포럼과 Valve의 공식 지원 포럼에서 여러 차례 보고됨.
- 제안된 해결책들은 실제로 문제를 해결하지 못함.

##### Esportal specific

- Esportal에서도 이 문제를 여러 해 동안 겪었으며, 실제로 문제를 해결하지는 못하고 발생 빈도를 줄이는 데 그쳤음.
- CS2에서는 처음에는 문제가 해결된 것처럼 보였으나 2024년 1월 첫 주에 문제 보고가 다시 증가함.

#### The symptoms

- `No user logon` 오류는 플레이어가 게임에 연결된 후 2-3분 후에 발생함.
- 스킨이 게임 시작 몇 분 후에야 나타나는 현상과 관련이 있을 수 있음.

#### Validation of the hypothesis

- Steam 인증과 관련된 문제일 가능성이 높음.
- `STEAM USERID validated`가 성공적으로 완료되기까지의 시간이 1월 3일 이전에는 2-3초였으나, 그 이후에는 약 1분 20초로 증가함.

#### NETWORK_DISCONNECT_STEAM_LOGON

- Steam 인증과 관련된 버그로 보임.
- `STEAMAUTH: Client Bob received failure code 8`이라는 로그가 발견됨.

#### Steam3 validation

- Steam3 서버는 사용자 인증을 담당함.
- 게임서버는 Steam3 서버에게 Steam ID의 유효성을 확인하도록 요청함.
- Steam3 서버가 유효성을 확인하는 동안 플레이어는 게임을 계속할 수 있으나 스킨은 할당되지 않음.

#### Making it trustable

- `CS2.exe`가 신뢰할 수 있는지 확인하는 과정이 필요함.
- `Steam.exe`는 현재 로그인된 계정을 알고 있으며, `CS2.exe`에서 보낸 Steam ID와 일치하는지 확인함.

#### NETWORK_DISCONNECT_LOOPSHUTDOWN

- `NETWORK_DISCONNECT_LOOPSHUTDOWN`이라는 또 다른 연결 해제 이유가 있음.
- 이는 게임 자체에 의해 자동으로 재연결 시도가 발생함을 의미함.

#### Loops in the Source engine

- Source 엔진은 특정 목표가 달성될 때까지 실행되는 루프를 가짐.
- `CS2.exe`는 여러 루프를 실행하며, 최종적으로 `game` 루프가 실행됨.

#### The disconnection

- 루프가 종료되면 `NETWORK_DISCONNECT_LOOPSHUTDOWN`으로 인해 연결이 해제될 수 있음.

#### CS2 startup procedure

- `CS2.exe`가 시작될 때 여러 루프를 실행하며, `levelload` 루프가 `game` 루프로 전환하기 전에 Steam ID 검증을 시작함.

GN⁺의 의견:
1. 이 글은 Valve의 게임인 Counter-Strike 시리즈에서 오랫동안 해결되지 않은 `No user logon` 버그에 대한 깊이 있는 분석을 제공함. 이는 게임 개발과 유지보수의 어려움을 이해하는 데 도움이 됨.
2. Valve가 커뮤니티의 피드백과 버그 보고에 적절히 대응하지 않는다는 점은 게임 개발사와 사용자 간의 소통의 중요성을 강조함.
3. 이 글은 소프트웨어 엔지니어링의 복잡성과 버그 추적 및 해결 과정에서의 도전을 잘 보여줌. 이는 버그를 해결하기 위한 체계적인 접근 방식의 필요성을 강조함.

## Comments



### Comment 22223

- Author: neo
- Created: 2024-01-14T10:10:48+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=38977128) 
- 첫 번째 댓글은 Steam의 세션 티켓 시스템에 대한 설명으로, 게임 클라이언트가 Steam 서버로부터 세션 티켓을 요청하고, 이를 게임 서버에 제공하여 Steam ID를 증명한다고 언급함. 게임 서버는 이 티켓을 Steam의 웹 API를 통해 검증해야 하며, CS2 클라이언트가 세션 티켓을 얻는 데 지연이 발생할 때 이를 처리하지 못하는 것 같다고 지적함.
  > "Steam의 세션 티켓 시스템에 대한 설명과 CS2 클라이언트의 지연 처리 문제 지적"

- 두 번째 댓글은 기사의 결론이 명확하지 않다고 지적하며, Counter-Strike 시작 방식의 문제점과 워싱턴에서의 유지보수 작업으로 인한 전 세계 플레이어의 문제 발생 가능성을 언급함. 또한, Steam ID 검증이 게임 루프 시작 전 마지막 단계로 이루어지기 때문에 유지보수 중 서버가 느려질 때 게임 시작을 방해할 수 있다고 설명함.
  > "Counter-Strike 시작 방식과 유지보수 작업이 문제 발생에 미치는 영향에 대한 분석"

- 세 번째 댓글은 멀티플레이어 게임을 시작하기 전에 인증을 완료하는 것이 필수가 아니라는 버그를 지적함.
  > "멀티플레이어 게임 시작 전 인증 완료의 필수성 부족 지적"

- 네 번째 댓글은 게임 클라이언트가 예기치 않게 충돌하는 원인을 동일한 방식으로 조사할 수 있는지 궁금해하며, GTA V의 로딩 시간 단축에 대한 연구를 언급함.
  > "게임 클라이언트 충돌 원인 조사와 GTA V 로딩 시간 단축 연구 언급"

- 다섯 번째 댓글은 기사의 문체가 너무 과장되었다고 지적하며, 핵심 내용으로 빠르게 진입할 것을 제안함.
  > "기사 문체의 과장과 핵심 내용 전달의 중요성 강조"

- 여섯 번째 댓글은 기사의 시작 부분에 문제 해결을 위한 간단한 요약을 추가할 것을 제안함.
  > "문제 해결을 위한 간단한 요약 추가 제안"

- 일곱 번째 댓글은 게임이 시작될 때만 levelloadloop가 실행되는지, 서버에 접속하고 맵을 로딩할 때도 실행되는지에 대한 질문을 함.
  > "levelloadloop 실행 시점에 대한 질문"

- 여덟 번째 댓글은 macOS에서 Steam 앱의 성능 개선을 바람.
  > "macOS에서의 Steam 앱 성능 개선 요구"

- 아홉 번째 댓글은 Valve의 보안 문제를 지적하며, CS:GO가 새로운 보고서에 대해 범위에서 제외되었다는 사실을 언급함.
  > "Valve의 보안 문제와 CS:GO 범위 제외 언급"

- 마지막 댓글은 과거에 서버 리스트와 활동 중인 플레이어 점수를 표시하는 도구를 만든 경험을 공유하며, 오래된 버그가 여전히 존재할 수 있다는 가능성을 제기함.
  > "과거 서버 리스트 표시 도구 개발 경험과 오래된 버그의 지속 가능성 언급"
