sdk icon indicating copy to clipboard operation
sdk copied to clipboard

[Bug] Infinite loop when building with vite

Open oleh-nb opened this issue 1 year ago • 3 comments

🐛 Bug Report

Building a project with vite build hangs because of an infinite resolution loop.

Steps to Reproduce

git clone https://github.com/oleh-nb/aleo-bug-infinite-loop.git
cd aleo-bug-infinite-loop
npm install
npm run build

Check the logs. They should look like this

Code snippet to reproduce

import { ProgramManager } from "@aleohq/sdk";
new ProgramManager();

Stack trace & error message

Click to expand
  vite:resolve 0.06ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +261ms
  vite:resolve 0.28ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.26ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.24ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +495ms
  vite:resolve 0.30ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.34ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.67ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +634ms
  vite:resolve 0.66ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.23ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.17ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +645ms
  vite:resolve 0.25ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.42ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.33ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +752ms
  vite:resolve 0.49ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.22ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.19ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +651ms
  vite:resolve 0.23ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.38ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.25ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +642ms
  vite:resolve 0.40ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.24ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.22ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +647ms
  vite:resolve 0.34ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.18ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.21ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +669ms
  vite:resolve 0.41ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.19ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.31ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +672ms
  vite:resolve 0.37ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.22ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.21ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +704ms
  vite:resolve 0.21ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.37ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.18ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +653ms
  vite:resolve 0.46ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.22ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.23ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +660ms
  vite:resolve 0.37ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.25ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.21ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +740ms
  vite:resolve 0.27ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.38ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.19ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +660ms
  vite:resolve 0.37ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.23ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.24ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +677ms
  vite:resolve 0.61ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.22ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.16ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +643ms
  vite:resolve 0.39ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.20ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.23ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +746ms
  vite:resolve 0.45ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.22ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.21ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +679ms
  vite:resolve 0.48ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.23ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.13ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +692ms
  vite:resolve 0.52ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.37ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.25ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +686ms
  vite:resolve 0.38ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.22ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.21ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +666ms
  vite:resolve 0.39ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.22ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.24ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +675ms
  vite:resolve 0.25ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.35ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.24ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +662ms
  vite:resolve 0.53ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.21ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms
  vite:resolve 0.18ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +678ms
  vite:resolve 0.30ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.19ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms

Expected Behavior

Project should be built

Your Environment

  • Aleo SDK Version: 0.6.9
  • Rust Version: cargo 1.75.0 (1d8b05cdd 2023-11-20)
  • Computer OS: macos 14.2.1

oleh-nb avatar Feb 14 '24 09:02 oleh-nb

Hey I believe this was a bug in vite: https://github.com/vitejs/vite/issues/13367

They allegedly fixed it in version 5.

onetrickwolf avatar Feb 14 '24 15:02 onetrickwolf

Its either not fixed or it's a different bug. I am pretty sure it's a different bug. Any idea where or why this bug occurs?

Its something related to these three files

vite:resolve 0.06ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/worker.js +261ms
  vite:resolve 0.28ms worker.js -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/sdk/dist/worker.js +0ms
  vite:resolve 0.26ms assets/aleo_wasm.wasm -> /Users/oleh-nb/Documents/Projects/aleo/bug/node_modules/@aleohq/wasm/dist/assets/aleo_wasm.wasm +0ms

olehmisar avatar Feb 14 '24 15:02 olehmisar

Hmm I'll take a look pretty sure this is an issue with vite though seems like a similar issue and I don't see anything weird in our code. Looks like it's something to do with how vite handles nested workers which we do use.

I'll see if I can replicate in a simple example and report it to vite. I previously spent a lot of time on this and was unable to find a workaround, was waiting for them to fix it but if I find something I'll let you know. In our examples the temporary solution was to use webpack for the builds while using vite for dev but I know that's not ideal. Sorry about any inconvenience. Will try to figure something out here.

onetrickwolf avatar Feb 14 '24 16:02 onetrickwolf