ENV
multipass version
multipass 1.11.1+mac
multipassd 1.11.1+mac
Mac Apple M1
MacOS 12.5.1
Update: If you run into this issue, have a look at Lima Linux maybe it can help you in running Ubuntu on MacOS.
curl hangs half way through a large file(small file no problem) , if the server(multipass vm) is running in multipass on different computers on different vLAN.
Steps
- Create multipass vm and mount from the same folder:
multipass launch --name myvm --network=en0
multipass mount . myvm:~/speed
- Generate a large file:
base64 /dev/urandom | head -c 100000 > file.txt
echo "\The end" >> file.txt
- run web server server in multipass vm:
multipass shell myvm
cd speed
python3 -m http.server
- Curl to multipass mvm
curl <ip>/file.txt
In my case: `curl 192.170.1.231/file`
7AVzmECVWNbcShP+TE+/6AM/KZWc12AzLKvtctv0pqeSW0SNDW3OSM82SkzF+/UExUUBH4dxlIcM
dObLOlLgz9WfoiEtvZ4Hbx/yq85C+WwnFr2Trhu75qmFrg8Ht8t/x+MyDfI0MyuGw91tKqFgHL4F
Now it hangs, what to do?
If you run this python3 -m http.server
on the host computer it works, just not from multipass vm.
If I use Wireshark I can see something standing out right about where it hangs:
10287 0.000580 0.000580 64 192.168.1.22 192.170.1.231 TCP 54 53941 → 80 [RST] Seq=1 Win=0 Len=0
4818 0.004338 0.004338 62 192.170.1.231 192.168.1.22 TCP 1514 [TCP Previous segment not captured] 80 → 50623 [ACK] Seq=84853 Ack=86 Win=65152 Len=1448 TSval=1019606200 TSecr=2732723127 [TCP segment of a reassembled PDU]
4820 0.000249 0.000249 64 192.168.1.22 192.170.1.231 TCP 78 [TCP Dup ACK 4817#1] 50623 → 80 [ACK] Seq=86 Ack=67477 Win=131072 Len=0 TSval=2732723132 TSecr=1019605978 SLE=84853 SRE=86301
4821 0.000057 0.000057 64 192.168.1.22 192.170.1.231 TCP 78 [TCP Dup ACK 4817#2] 50623 → 80 [ACK] Seq=86 Ack=67477 Win=131072 Len=0 TSval=2732723132 TSecr=1019605978 SLE=84853 SRE=87749
4822 0.002414 0.002414 62 192.170.1.231 192.168.1.22 TCP 1514 [TCP Fast Retransmission] 80 → 50623 [ACK] Seq=67477 Ack=86 Win=65152 Len=1448 TSval=1019606202 TSecr=2732723132 [TCP segment of a reassembled PDU]
4823 0.000001 0.000001 62 192.170.1.231 192.168.1.22 TCP 1514 [TCP Out-Of-Order] 80 → 50623 [ACK] Seq=68925 Ack=86 Win=65152 Len=1448 TSval=1019606203 TSecr=2732723132 [TCP segment of a reassembled PDU]
4827 0.002141 0.002141 62 192.170.1.231 192.168.1.22 TCP 1514 [TCP Out-Of-Order] 80 → 50623 [ACK] Seq=70373 Ack=86 Win=65152 Len=1448 TSval=1019606205 TSecr=2732723135 [TCP segment of a reassembled PDU]
4829 0.000165 0.000165 62 192.170.1.231 192.168.1.22 TCP 1514 [TCP Retransmission] 80 → 50623 [PSH, ACK] Seq=71821 Ack=86 Win=65152 Len=1448 TSval=1019606205 TSecr=2732723135
4830 0.000002 0.000002 62 192.170.1.231 192.168.1.22 TCP 1514 [TCP Retransmission] 80 → 50623 [ACK] Seq=73269 Ack=86 Win=65152 Len=1448 TSval=1019606205 TSecr=2732723135
4831 0.000000 0.000000 62 192.170.1.231 192.168.1.22 TCP 1514 [TCP Retransmission] 80 → 50623 [ACK] Seq=74717 Ack=86 Win=65152 Len=1448 TSval=1019606205 TSecr=2732723135
Thanks