cube-js / cube

📊 Cube — Universal semantic layer platform for AI, BI, spreadsheets, and embedded analytics
https://cube.dev
Other
17.96k stars 1.78k forks source link

Unknown system error -86 when spawning binary from @cubejs-backend/query-orchestrator (darwin-arm64) #8949

Closed vieira closed 1 week ago

vieira commented 1 week ago

Describe the bug When running cube-server I see some errors in the logs like:

Error querying db scheduler-b760bd0f-c771-4b85-9f41-47c90f65225f
   Error: spawn Unknown system error -86
    at QueryQueue.parseResult (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/query-orchestrator/src/orchestrator/QueryQueue.js:394:13)
    at QueryQueue.executeInQueue (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/query-orchestrator/src/orchestrator/QueryQueue.js:225:19)
    at PreAggregationLoadCache.keyQueryResult (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/query-orchestrator/src/orchestrator/PreAggregations.ts:439:75)
    at async Promise.all (index 0)
    at PreAggregationLoader.loadPreAggregationWithKeys (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/query-orchestrator/src/orchestrator/PreAggregations.ts:649:30)
    at PreAggregationLoader.loadPreAggregation (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/query-orchestrator/src/orchestrator/PreAggregations.ts:579:22)
    at preAggregationPromise (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/query-orchestrator/src/orchestrator/PreAggregations.ts:2238:30)
    at QueryOrchestrator.fetchQuery (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/query-orchestrator/src/orchestrator/QueryOrchestrator.ts:218:9)
    at OrchestratorApi.executeQuery (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/server-core/src/core/OrchestratorApi.ts:98:20)
    at /Users/vieira/Developer/platform/node_modules/@cubejs-backend/server-core/src/core/RefreshScheduler.ts:605:13
    at async Promise.all (index 0)
    at RefreshScheduler.refreshPreAggregations (/Users/vieira/Developer/platform/node_modules/@cubejs-backend/server-core/src/core/RefreshScheduler.ts:590:5)

During install I noticed there was a post install step that downloads a native binary.

I have downloaded this file directly and after extracting it, trying to run index.node directly also produces an error.

EDIT: This seems to be unrelated.

The cause seems to be the cubestored binary in @cubejs-backend/cubestore/downloaded/latest/bin. On an Intel mac it runs fine but on ARM mac it fails to exec:

exec: Failed to execute process './cubestored': Bad CPU type in executable.

The environment where I'm running is macOS 15.1 on M4 MBP:

$ uname -a
Darwin giant.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:06:57 PDT 2024; root:xnu-11215.41.3~3/RELEASE_ARM64_T6041 arm64
$ sysctl machdep.cpu
machdep.cpu.cores_per_package: 12
machdep.cpu.core_count: 12
machdep.cpu.logical_per_package: 12
machdep.cpu.thread_count: 12
machdep.cpu.brand_string: Apple M4 Pro

To Reproduce Steps to reproduce the behavior:

  1. Install @cubejs-backend/server on an ARM64 Mac (?)
  2. Run cubejs-server dev-server
  3. Notice some query-orchestrator errors in the logs spawning.

Minimally reproducible Cube Schema It doesn't seem to be exclusive to preAggregations but having a preAggregation triggers the error quickly and any query that would use the preAggregation fails. Some other queries still succeed.

Version: 1.1.3 (also tested with 1.0.5 and 1.1.4, same issue)

ovr commented 1 week ago

@vieira, Could you give a try with the new release?

Thanks

vieira commented 1 week ago

@ovr Confirmed as fixed in 1.1.5. Thanks a lot!