기타&일상

localhost한테 차인 썰 푼다

LSH2118 2024. 10. 14. 22:56

평화롭게 프런트게임 만들던 어느 날

 

갑자기 localhost가 접속을 거부했다

나는 vs code문제인 줄 알고 껐다가 켜보기도 하고

 

브라우저문제인 줄 알고 창을 껐다 켜보기 도 했다

 

그래도 연결할 수 없다고 하니 답답할 참에 터미널에 이상한 글자가 출력되었던걸 발견했다

이게 뭐야?

<--- Last few GCs --->

[29172:0000022393C75740]     8406 ms: Mark-Compact 457.4 (498.5) -> 360.5 (401.0) MB, 212.67 / 0.02 ms  (+ 0.1 ms in 2 steps since start of marking, biggest step 0.1 ms, walltime since start of marking 2564 ms) (average mu = 0.961, current mu = 0.936) all[29172:0000022393C75740]    11789 ms: Scavenge 744.5 (785.0) -> 744.5 (785.0) MB, 192.74 / 0.00 ms  (average mu = 0.961, current mu = 0.936) allocation failure; 


<--- JS stacktrace --->

FATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 00007FF6D08E0B6B node::SetCppgcReference+18123
 2: 00007FF6D08524D8 DSA_meth_get_flags+92504
 3: 00007FF6D12C9821 v8::Isolate::ReportExternalAllocationLimitReached+65
 4: 00007FF6D12B2F78 v8::Function::Experimental_IsNopFunction+1336
 5: 00007FF6D1114A20 v8::Platform::SystemClockTimeMillis+659328
 6: 00007FF6D0EE58F9 v8::base::Thread::StartSynchronously+540185
 7: 00007FF6D0ED83FF v8::base::Thread::StartSynchronously+485663
 8: 00007FF6D0ED5B11 v8::base::Thread::StartSynchronously+475185
 9: 00007FF6D0FBE642 v8::base::Thread::StartSynchronously+1428322
10: 00007FF6D0FB8472 v8::base::Thread::StartSynchronously+1403282
11: 00007FF6D0F563AE v8::base::Thread::StartSynchronously+1001678
12: 00007FF6D0EE0123 v8::base::Thread::StartSynchronously+517699
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
Starting the development server...


<--- Last few GCs --->

[31476:000001DE291D28A0]     8079 ms: Scavenge 455.0 (494.6) -> 455.0 (494.6) MB, 75.09 / 0.00 ms  (average mu = 0.996, current mu = 0.995) allocation failure; 
[31476:000001DE291D28A0]    11931 ms: Mark-Compact 839.0 (878.6) -> 648.3 (688.0) MB, 669.15 / 0.04 ms  (+ 0.1 ms in 2 steps since start of marking, biggest step 0.1 ms, walltime since start of marking 5296 ms) (average mu = 0.926, current mu = 0.904) all

<--- JS stacktrace --->

FATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 00007FF6D08E0B6B node::SetCppgcReference+18123
 2: 00007FF6D08524D8 DSA_meth_get_flags+92504
 3: 00007FF6D12C9821 v8::Isolate::ReportExternalAllocationLimitReached+65
 4: 00007FF6D12B2F78 v8::Function::Experimental_IsNopFunction+1336
 5: 00007FF6D1114A20 v8::Platform::SystemClockTimeMillis+659328
 6: 00007FF6D0EE58F9 v8::base::Thread::StartSynchronously+540185
 7: 00007FF6D0ED83FF v8::base::Thread::StartSynchronously+485663
 8: 00007FF6D0ED5B11 v8::base::Thread::StartSynchronously+475185
 9: 00007FF6D0FBE642 v8::base::Thread::StartSynchronously+1428322
10: 00007FF6D0FB8472 v8::base::Thread::StartSynchronously+1403282
11: 00007FF6D0F563AE v8::base::Thread::StartSynchronously+1001678
12: 00007FF6D0EE0123 v8::base::Thread::StartSynchronously+517699
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
 7: 00007FF6D0ED83FF v8::base::Thread::StartSynchronously+485663
 8: 00007FF6D0ED5B11 v8::base::Thread::StartSynchronously+475185
 9: 00007FF6D0FBE642 v8::base::Thread::StartSynchronously+1428322
10: 00007FF6D0FB8472 v8::base::Thread::StartSynchronously+1403282
11: 00007FF6D0F563AE v8::base::Thread::StartSynchronously+1001678
12: 00007FF6D0EE0123 v8::base::Thread::StartSynchronously+517699
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
 9: 00007FF6D0FBE642 v8::base::Thread::StartSynchronously+1428322
10: 00007FF6D0FB8472 v8::base::Thread::StartSynchronously+1403282
11: 00007FF6D0F563AE v8::base::Thread::StartSynchronously+1001678
12: 00007FF6D0EE0123 v8::base::Thread::StartSynchronously+517699
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
10: 00007FF6D0FB8472 v8::base::Thread::StartSynchronously+1403282
11: 00007FF6D0F563AE v8::base::Thread::StartSynchronously+1001678
12: 00007FF6D0EE0123 v8::base::Thread::StartSynchronously+517699
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
12: 00007FF6D0EE0123 v8::base::Thread::StartSynchronously+517699
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
15: 00007FF6D0F574E2 v8::base::Thread::StartSynchronously+1006082
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
15: 00007FF6D0F574E2 v8::base::Thread::StartSynchronously+1006082
16: 00007FF6D0DED3C9 v8::CodeEvent::GetFunctionName+79321
15: 00007FF6D0F574E2 v8::base::Thread::StartSynchronously+1006082
16: 00007FF6D0DED3C9 v8::CodeEvent::GetFunctionName+79321
16: 00007FF6D0DED3C9 v8::CodeEvent::GetFunctionName+79321
17: 00007FF6D137B1AE v8::PropertyDescriptor::writable+678094
17: 00007FF6D137B1AE v8::PropertyDescriptor::writable+678094
18: 00007FF6D13B522C v8::PropertyDescriptor::writable+915788
18: 00007FF6D13B522C v8::PropertyDescriptor::writable+915788
19: 00007FF6D1396B9E v8::PropertyDescriptor::writable+791230
20: 00007FF6D12EC750 v8::PropertyDescriptor::writable+93808
21: 00007FF651AC6484
21: 00007FF651AC6484
Starting the development server...


<--- Last few GCs --->

[25540:0000029C3F050080]     8529 ms: Scavenge 459.2 (497.7) -> 459.2 (497.7) MB, 93.76 / 0.00 ms  (average mu = 0.996, current mu = 0.995) allocation failure; 
[25540:0000029C3F050080]    13647 ms: Mark-Compact 843.2 (881.7) -> 648.4 (687.3) MB, 649.09 / 0.03 ms  (+ 25.0 ms in 2 steps since start of marking, biggest step 24.9 ms, walltime since start of marking 7050 ms) (average mu = 0.937, current mu = 0.922) a

<--- JS stacktrace --->

FATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 00007FF6D08E0B6B node::SetCppgcReference+18123
 2: 00007FF6D08524D8 DSA_meth_get_flags+92504
 3: 00007FF6D12C9821 v8::Isolate::ReportExternalAllocationLimitReached+65
 4: 00007FF6D12B2F78 v8::Function::Experimental_IsNopFunction+1336
 5: 00007FF6D1114A20 v8::Platform::SystemClockTimeMillis+659328
 6: 00007FF6D0EE58F9 v8::base::Thread::StartSynchronously+540185
 7: 00007FF6D0ED83FF v8::base::Thread::StartSynchronously+485663
 8: 00007FF6D0ED5B11 v8::base::Thread::StartSynchronously+475185
 9: 00007FF6D0FBE642 v8::base::Thread::StartSynchronously+1428322
10: 00007FF6D0FB8472 v8::base::Thread::StartSynchronously+1403282
11: 00007FF6D0F563AE v8::base::Thread::StartSynchronously+1001678
12: 00007FF6D0EE0123 v8::base::Thread::StartSynchronously+517699
13: 00007FF6D0F57BE1 v8::base::Thread::StartSynchronously+1007873
14: 00007FF6D0F57324 v8::base::Thread::StartSynchronously+1005636
15: 00007FF6D0F574E2 v8::base::Thread::StartSynchronously+1006082
16: 00007FF6D0DED3C9 v8::CodeEvent::GetFunctionName+79321
17: 00007FF6D137B1AE v8::PropertyDescriptor::writable+678094
18: 00007FF6D13B522C v8::PropertyDescriptor::writable+915788
19: 00007FF6D1396B9E v8::PropertyDescriptor::writable+791230
20: 00007FF6D12EC750 v8::PropertyDescriptor::writable+93808
21: 00007FF651977144

 

겁나 길어서 gpt한테 물어보니까

 

Node.js 애플리케이션이 메모리 할당 문제로 인해 발생한 것으로 보입니다.

JavaScript heap out of memory 오류는 애플리케이션이 사용 가능한 메모리 한계를 초과했을 때 발생합니다.

 

애플리케이션이 사용 가능한 메모리 한계를 초과

이걸 설명해서 풀어보면

Node.js 애플리케이션이 너무 많은 데이터를 처리하거나 메모리를 많이 사용하는 작업을 하다가 메모리 부족 현상이 일어났다. 그래서 애플리케이션이 더 이상 정상적으로 실행되지 않고 오류가 발생한 거다. 

 

보통 대용량 데이터처리메모리 누수, 노드 모듈의 버그로 인해 이런 현상이 발생하는데 

문제는 내가 작성한 코드는 대용량의 데이터처리가 필요가 없고, 메모리 누수도 아닌 것 같았다

 

그러면 노드 모듈의 버그로 저런 오류가 떴다는 건데 그래서 gpt에 물어보니까 

노드 모듈을 그냥 단순히 삭제하고 다시 설치하라는 거였다

rm -rf node_modules
npm install
npm start

그래서 이렇게 node_modules을 지우고 다시 설치 후에 실행을 하니 정상적으로 돌아왔다

 

다시 알아보니까 의존성의 문제로도 이러한 오류가 발생할 수 있었다

특정 라이브러리나 의존성이 문제될때에도 그냥 지우고 다시 설치하면 된다고 한다

 

이걸 왜 적었냐?

그냥 한번 기록으로 남겨두고 싶었다

 

Node.js에 기본 메모리가 1.5G라는 것도 이 오류를 해결하면서 알게 되었고,

여러모로 재미있어서 블로그로 남겨 보았다

 

만약에 순수하게 메모리 문제로 저런 오류가 발생했다면

node --max-old-space-size=4096 [your_script.js]

 

이렇게 적으면 된다고 한다

'기타&일상' 카테고리의 다른 글

2025를 맞이 하며  (0) 2025.01.07