1. 현상
macOS 상에서 수행 중인 파이썬 프로그램에서 다음과 같은 에러가 발생했습니다.
Python(57868) MallocStackLogging: can't turn off malloc stack logging because it was not enabled. Python(57901) MallocStackLogging: can't turn off malloc stack logging because it was not enabled.
2. 해결방법
에러 메시지를 분석해보면 MallocStackLogging 관련 경고가 발생하고 있습니다. 이는 일반적으로 메모리 할당(alloc)과 해제(free) 로그를 추적하는 기능과 관련이 있습니다.
🔍 MallocStackLogging 경고 원인 분석
1. 메모리 할당 디버깅 기능이 비활성화된 상태에서 해제하려고 시도
→ MallocStackLogging은 macOS에서 메모리 누수 및 오류 추적을 위해 사용되는 기능입니다.
→ 코드에서 MallocStackLogging을 비활성화하려 했으나, 애초에 활성화되지 않았다는 의미입니다.
2. Selenium WebDriver 관련 문제
→ webdriver.Chrome(options) 실행 시 발생할 가능성이 높음.
→ malloc stack logging 기능이 활성화되지 않은 환경에서 macOS의 메모리 관리 시스템이 Chrome 드라이버 실행 시 영향을 줄 수 있음.
3. MacOS 환경에서 Python의 메모리 관련 문제
→ 특정한 시스템 환경에서 발생하는 것으로 보이며, 파이썬과 크롬 드라이버 간의 충돌 가능성이 있음.
🛠 해결 방법
✅ 1. 크롬 드라이버의 옵션 변경
기존 코드에서 크롬 드라이버를 실행하는 부분을 다음과 같이 변경해보세요.
options = webdriver.ChromeOptions()
options.add_argument("--disable-gpu") # GPU 비활성화
options.add_argument("--no-sandbox") # 샌드박스 모드 해제
options.add_argument("--disable-dev-shm-usage") # 공유 메모리 사용 비활성화
options.add_argument("--disable-software-rasterizer") # 소프트웨어 가속 비활성화
options.add_argument("--headless=new") # 최신 headless 모드 사용
driver = webdriver.Chrome(options=options)
✅ --headless=new 옵션을 추가하면 새로운 헤드리스 모드를 사용하여 안정성을 높일 수 있습니다.
✅ 2. Python 메모리 할당 관련 환경 변수 설정
터미널에서 다음 명령을 실행 후 다시 시도해보세요.
export MallocStackLogging=0
이후에 Python 스크립트를 실행하면 문제가 해결될 가능성이 높습니다.
✅ 3. Python 실행 시 환경 설정 추가
Python 실행 시 MallocStackLogging을 비활성화할 수 있도록 다음과 같이 실행하세요.
MallocStackLogging=0 python3 main.py
이렇게 하면 MallocStackLogging 관련된 경고가 무시될 것입니다.
🔥 결론
• 에러 자체는 크롬 드라이버 실행과 관련된 macOS의 메모리 관리 기능에서 발생한 것으로 보임.
• 크롬 드라이버 실행 옵션을 조정하거나, macOS에서 MallocStackLogging을 비활성화하면 문제를 해결할 수 있음.
• 가장 빠른 해결 방법: export MallocStackLogging=0 실행 후 다시 시도.