flutter / devtools

Performance tools for Flutter
https://flutter.dev/docs/development/tools/devtools/
BSD 3-Clause "New" or "Revised" License
1.59k stars 327 forks source link

DevTools bind to already used port #2842

Open flbaue opened 3 years ago

flbaue commented 3 years ago

When I start a flutter app while I am already running a docker container with binding to port 9100, the flutter devtools take over that port.

OS: MacOS 11.2.3 Docker: Docker Desktop 3.2.2.

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.3, on macOS 11.2.3 20D91 darwin-x64, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.54.3)
[✓] Connected device (2 available)
    ! Device emulator-5554 is offline.

• No issues found!

Before running my flutter app:

$ sudo lsof -i :9100
COMMAND    PID         USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke 1388 florianbauer  121u  IPv6 0xc1e172b3ec4f6581      0t0  TCP *:hp-pdl-datastr (LISTEN)

After running my flutter app:

$ sudo lsof -i :9100
COMMAND     PID         USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke  1388 florianbauer  121u  IPv6 0xc1e172b3ec4f6581      0t0  TCP *:hp-pdl-datastr (LISTEN)
dart      17171 florianbauer    9u  IPv4 0xc1e172b3f0526121      0t0  TCP localhost:hp-pdl-datastr (LISTEN)
dart      17171 florianbauer   10u  IPv6 0xc1e172b3ec4f5f21      0t0  TCP localhost:hp-pdl-datastr (LISTEN)

The result of this is, that I cannot connect to my docker service anymore, until I stop the dart process.

Addition: I am starting the Flutter app from VSCode and inside the settings.json of VSCode I placed this:

{
    "dart.devToolsPort": 10999
}

When I am opening the devtools from VSCode in Chrome the browser opens on 127.0.0.1:10999, which is correct. But still there is also a dart process binding to port 9100. When I run curl 127.0.0.1:9100 I can see that there are also devtools running.

This behavior started after I updated to Flutter 2.0.3. And two colleagues, that work on the same project, just experienced this issue as well.

elliette commented 2 months ago

@bkonyi do you know if this has been fixed?

bkonyi commented 2 months ago

@bkonyi do you know if this has been fixed?

I have no idea, I've never seen this type of failure before. My understanding of binding to ports is that an already bound port can't be stolen. We'd need a repro case for this to make any progress.