prestodb / presto

The official home of the Presto distributed SQL query engine for big data
http://prestodb.io
Apache License 2.0
16.06k stars 5.38k forks source link

Could not allocate working memory mmap failed with Cannot allocate memory for sizeClass 1 #22123

Closed Sujanhid closed 8 months ago

Sujanhid commented 8 months ago

i got this error while trying to start presto_server in presto-native-execution with velox....

Could not allocate working memory mmap failed with Cannot allocate memory for sizeClass 1, Source: RUNTIME, ErrorCode: INVALID_STATE

i have also tried this solution https://github.com/prestodb/presto/issues/19364 but it is not working for me what should i do now??

full error:

RUNTIME, ErrorCode: INVALID_STATE terminate called after throwing an instance of 'facebook::velox::VeloxRuntimeError' what(): Exception: VeloxRuntimeError Error Source: RUNTIME Error Code: INVALID_STATE Reason: Could not allocate working memory mmap failed with Cannot allocate memory for sizeClass 1 Retriable: False Function: SizeClass File:prestissimo/presto/presto-native-execution/velox/velox/common/memory/MmapAllocator.cpp Line: 605 Stack trace: 0 _ZN8facebook5velox7process10StackTraceC1Ei 1 _ZN8facebook5velox14VeloxExceptionC2EPKcmS3_St17basic_string_viewIcSt11char_traitsIcEES7_S7_S7_bNS14TypeES7 2 _ZN8facebook5velox6detail14veloxCheckFailINS0_17VeloxRuntimeErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvRKNS118VeloxCheckFailArgsET0 3 _ZN8facebook5velox6memory13MmapAllocator9SizeClassC2Emm 4 _ZN8facebook5velox6memory13MmapAllocatorC2ERKNS2_7OptionsE 5 _ZN8facebook5velox6memory13MemoryManagerC1ERKNS1_20MemoryManagerOptionsE 6 _ZN8facebook5velox6memory13MemoryManager10initializeERKNS1_20MemoryManagerOptionsE 7 _ZN8facebook6presto12PrestoServer21initializeVeloxMemoryEv 8 _ZN8facebook6presto12PrestoServer3runEv 9 main 10 0x0000000000029d8f 11 __libc_start_main 12 _start

Aborted at 1709882451 (unix time) try "date -d @1709882451" if you are using GNU date PC: @ 0x0 (unknown) SIGABRT (@0x620cb) received by PID 401611 (TID 0x7faaf0457780) from PID 401611; stack trace: @ 0x7faaf0621046 (unknown) @ 0x7faaef842520 (unknown) @ 0x7faaef8969fc pthread_kill @ 0x7faaef842476 raise @ 0x7faaef8287f3 abort @ 0x7faaefca2b9e (unknown) @ 0x7faaefcae20c (unknown) @ 0x7faaefcae277 std::terminate() @ 0x7faaefcae4d8 cxa_throw @ 0x560461975aeb __cxa_throw @ 0x5604618b2852 facebook::velox::detail::veloxCheckFail<>() @ 0x56046183298c facebook::velox::memory::MmapAllocator::SizeClass::SizeClass() @ 0x56046183834e facebook::velox::memory::MmapAllocator::MmapAllocator() @ 0x560461817bb8 facebook::velox::memory::MemoryManager::MemoryManager() @ 0x56046181a34a facebook::velox::memory::MemoryManager::initialize() @ 0x56045ebb6279 facebook::presto::PrestoServer::initializeVeloxMemory() @ 0x56045ebb994f facebook::presto::PrestoServer::run() @ 0x56045e9644ec main @ 0x7faaef829d90 (unknown) @ 0x7faaef829e40 libc_start_main @ 0x56045e977e15 _start

majetideepak commented 8 months ago

Can you share the configs used and details about the hardware?

Sujanhid commented 8 months ago

@majetideepak

Velox System Info v0.0.2 CMake Version: 3.22.1 System: Linux-6.5.0-21-generic Arch: x86_64\ C++ Compiler Version: 11.4.0 C Compiler Version: 11.4.0 RAM : 16 GB CPU: 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz presto: 0.285.1

config.properties:

coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8080 query.max-memory=5GB query.max-memory-per-node=1GB discovery-server.enabled=true discovery.uri=http://localhost:8080 presto.version=testversion

jvm.config:

-server -Xmx16G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError

node.properties:

node.environment=testing node.id=e4901aae-a1c9-4ff7-97a9-5687835ad54c node.internal-address=127.0.0.1 node.location=testing-location

No other resource-intensive application is running!!

majetideepak commented 8 months ago

As @czentgr mentioned in Slack,

In the config.properties used by the presto_server process add system-memory-gb=2.
by default it attempts to map 40GiB. This setting changes it to 2GiB.