oven-sh / bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
https://bun.sh
Other
73.15k stars 2.68k forks source link

`bun i` randomly hangs without lockfile #13256

Open sequencerr opened 1 month ago

sequencerr commented 1 month ago

What version of Bun is running?

No response

What platform is your computer?

No response

What steps can reproduce the bug?

tested on

https://github.com/sequencerr/bun-reporo-i-random-hang docker build -f ./Dockerfile . --progress=plain --no-cache

What is the expected behavior?

No response

What do you see instead?

See logs ``` #10 53.38 dist/mjs/index.d.ts #10 53.38 dist/cjs/unescape.d.ts #10 53.38 dist/mjs/unescape.d.ts #10 53.38 [minimatch] Extract .9feb9bfebfeef4cd-000002BA.minimatch (decompressed 95.59 KB tgz file in 3.16ms) #10 53.38 [minimatch] Extracted to .9feb9bfebfeef4cd-000002BA.minimatch (13.4ms) #10 53.38 [PackageManager] waiting for 6 tasks #10 54.33 [PackageManager] waiting for 5 tasks #10 55.33 [PackageManager] waiting for 5 tasks #10 56.33 [PackageManager] waiting for 5 tasks #10 56.34 [PackageManager] waiting for 5 tasks #10 57.33 [PackageManager] waiting for 5 tasks #10 58.33 [PackageManager] waiting for 5 tasks #10 59.33 [PackageManager] waiting for 5 tasks #10 60.33 [PackageManager] waiting for 5 tasks #10 60.34 [PackageManager] waiting for 5 tasks #10 61.33 [PackageManager] waiting for 5 tasks #10 62.33 [PackageManager] waiting for 5 tasks #10 63.33 [PackageManager] waiting for 5 tasks #10 64.33 [PackageManager] waiting for 5 tasks #10 64.34 [PackageManager] waiting for 5 tasks #10 65.33 [PackageManager] waiting for 5 tasks #10 66.33 [PackageManager] waiting for 5 tasks #10 67.33 [PackageManager] waiting for 5 tasks #10 68.33 [PackageManager] waiting for 5 tasks #10 68.34 [PackageManager] waiting for 5 tasks #10 69.33 [PackageManager] waiting for 5 tasks #10 70.33 [PackageManager] waiting for 5 tasks #10 71.33 [PackageManager] waiting for 5 tasks #10 72.33 [PackageManager] waiting for 5 tasks #10 72.34 [PackageManager] waiting for 5 tasks #10 73.33 [PackageManager] waiting for 5 tasks #10 74.33 [PackageManager] waiting for 5 tasks #10 75.33 [PackageManager] waiting for 5 tasks #10 76.33 [PackageManager] waiting for 5 tasks #10 76.34 [PackageManager] waiting for 5 tasks #10 77.33 [PackageManager] waiting for 5 tasks #10 78.33 [PackageManager] waiting for 5 tasks #10 79.33 [PackageManager] waiting for 5 tasks #10 80.33 [PackageManager] waiting for 5 tasks #10 80.34 [PackageManager] waiting for 5 tasks #10 81.33 [PackageManager] waiting for 5 tasks #10 82.33 [PackageManager] waiting for 5 tasks #10 83.33 [PackageManager] waiting for 5 tasks #10 84.33 [PackageManager] waiting for 5 tasks #10 84.34 [PackageManager] waiting for 5 tasks #10 85.33 [PackageManager] waiting for 5 tasks #10 86.33 [PackageManager] waiting for 5 tasks #10 87.33 [PackageManager] waiting for 5 tasks #10 88.33 [PackageManager] waiting for 5 tasks #10 88.34 [PackageManager] waiting for 5 tasks #10 89.33 [PackageManager] waiting for 5 tasks #10 90.33 [PackageManager] waiting for 5 tasks #10 91.33 [PackageManager] waiting for 5 tasks #10 92.33 [PackageManager] waiting for 5 tasks #10 92.34 [PackageManager] waiting for 5 tasks #10 93.33 [PackageManager] waiting for 5 tasks #10 94.33 [PackageManager] waiting for 5 tasks #10 95.33 [PackageManager] waiting for 5 tasks #10 96.33 [PackageManager] waiting for 5 tasks #10 96.34 [PackageManager] waiting for 5 tasks #10 97.33 [PackageManager] waiting for 5 tasks #10 98.33 [PackageManager] waiting for 5 tasks #10 99.33 [PackageManager] waiting for 5 tasks #10 100.3 [PackageManager] waiting for 5 tasks #10 100.3 [PackageManager] waiting for 5 tasks #10 101.3 [PackageManager] waiting for 5 tasks #10 102.3 [PackageManager] waiting for 5 tasks #10 103.3 [PackageManager] waiting for 5 tasks #10 104.3 [PackageManager] waiting for 5 tasks #10 104.3 [PackageManager] waiting for 5 tasks #10 105.3 [PackageManager] waiting for 5 tasks #10 106.3 [PackageManager] waiting for 5 tasks #10 107.3 [PackageManager] waiting for 5 tasks #10 108.3 [PackageManager] waiting for 5 tasks #10 108.3 [PackageManager] waiting for 5 tasks #10 109.3 [PackageManager] waiting for 5 tasks #10 110.3 [PackageManager] waiting for 5 tasks #10 111.3 [PackageManager] waiting for 5 tasks #10 112.3 [PackageManager] waiting for 5 tasks #10 112.3 [PackageManager] waiting for 5 tasks #10 113.3 [PackageManager] waiting for 5 tasks #10 114.3 [PackageManager] waiting for 5 tasks #10 115.3 [PackageManager] waiting for 5 tasks #10 116.3 [PackageManager] waiting for 5 tasks #10 116.3 [PackageManager] waiting for 5 tasks #10 117.3 [PackageManager] waiting for 5 tasks #10 118.3 [PackageManager] waiting for 5 tasks #10 119.3 [PackageManager] waiting for 5 tasks #10 120.3 [PackageManager] waiting for 5 tasks #10 120.3 [PackageManager] waiting for 5 tasks #10 121.3 [PackageManager] waiting for 5 tasks #10 122.3 [PackageManager] waiting for 5 tasks #10 123.3 [PackageManager] waiting for 5 tasks #10 124.3 [PackageManager] waiting for 5 tasks #10 124.3 [PackageManager] waiting for 5 tasks #10 125.3 [PackageManager] waiting for 5 tasks #10 126.3 [PackageManager] waiting for 5 tasks #10 127.3 [PackageManager] waiting for 5 tasks #another #8 915.2 [PackageManager] waiting for 2 tasks #8 916.2 [PackageManager] waiting for 2 tasks #8 916.2 [PackageManager] waiting for 2 tasks #8 917.2 [PackageManager] waiting for 2 tasks ```

I'm sure I have decent internet to download within 15 minutes. When everything is ok, it downloads within 1 minute

Additional information

also is normal that 1.1.22-alpine is v1.1.22-canary.96 (df33f2b2) (is canary)?

I kinda agree with copying bun.lockb into docker (as suggested in https://bun.sh/guides/ecosystem/docker) (even if other contributors to our project don't use bun, I may manually bun i and commit lockfile). but IMO installing should work without lockfile.

Jarred-Sumner commented 1 month ago

Are you able to reproduce this without alpine? In 1.1.22 instead of 1.1.22-alpine`?

sequencerr commented 1 month ago

Are you able to reproduce this without alpine? In 1.1.22 instead of 1.1.22-alpine`?

https://github.com/user-attachments/assets/4001573c-3cef-4e36-9b37-c427237eac43 in second try

xirf commented 1 month ago

i also have this problem with bun install v1.1.22-canary.96. Here some of the logs

[xirf@archlinux xirf-portofolio]$ bun i --verbose
bun install v1.1.22-canary.96 (df33f2b2)
Loaded 982 hoisted_dependencies
Loaded 2084 resolutions
Loaded 2084 dependencies
Loaded 14 extern_strings
Loaded 75729 string_bytes
Clean lockfile: 905 packages - 905 packages in 4.1ms
info: cannot move files from tempdir: RenameAcrossMountPoints, using fallback
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
  πŸ” Resolving... [PackageManager] waiting for 255 tasks
sequencerr commented 1 week ago

Any updates? Still hangs on 1.1.26-slim

Ivan-Baranov commented 3 days ago

Image: oven/bun:1.1.27 Only in fresh pod.

apt update && apt install strace
mkdir /tmp/t1
cd /tmp/t1
strace bun init -y

Hangs on this point:

openat(AT_FDCWD, ".gitignore", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3
write(3, "# Based on https://raw.githubuse"..., 2233) = 2233
write(1, " + \33[0m\33[2m.gitignore\33[0m\n", 26 + .gitignore
) = 26
close(3)                                = 0
openat(AT_FDCWD, "tsconfig.json", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3
write(3, "{\n  \"compilerOptions\": {\n    // "..., 635) = 635
write(1, " + \33[0m\33[2mtsconfig.json\33[0m\33[2m"..., 64 + tsconfig.json (for editor auto-complete)
) = 64
close(3)                                = 0
openat(AT_FDCWD, "README.md", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3
write(3, "# ", 2)                       = 2
write(3, "t1", 2)                       = 2
write(3, "\n\nTo install dependencies:\n\n```b"..., 78) = 78
write(3, "index.ts", 8)                 = 8
write(3, "\n```\n\nThis project was created u"..., 56) = 56
write(3, "1.1.27", 6)                   = 6
write(3, ". [Bun](https://bun.sh) is a fas"..., 65) = 65
write(1, " + \33[0m\33[2mREADME.md\33[0m\n", 25 + README.md
) = 25
close(3)                                = 0
write(1, "\nTo get started, run:\n  \33[0m\33[36"..., 54
To get started, run:
  bun run index.ts
) = 54
access("package.json", F_OK)            = 0
readlink("/proc/self/exe", "/usr/local/bin/bun", 4097) = 18
openat(AT_FDCWD, "/dev/null", O_RDWR)   = 3
eventfd2(0, EFD_CLOEXEC)                = 4
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fd53f87d690) = 322
close(3)                                = 0
wait4(322, 
sequencerr commented 3 days ago

Thank you @Ivan-Baranov ! I don't have knowledge of debugging this stuff so deep and therefore I thought nobody was going to look forward solving this issue due fact of randomness