You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I use the command-line mode of arduino to verify a sketch, jmDNS blocks the whole process for about 25 seconds (verify itself is about 5s) before timing out. I've put the program output further down in this report.
This happens for command-line use, but it also happens when I just start up the Arduino IDE for normal use.
It's interesting that the address it seems to be bound to is fe80-0-0-0-aede-48ff-fe00-1122-en5.local, which is en5, which on this new macbook with touchbar is the Apple built-in iBridge USB device: https://apple.stackexchange.com/questions/261972/what-is-ibridge
I have no idea why jmDNS wants to use this interface.
I also tried the Arduino 1.9.0 Beta -- this is much better, because it does not seem to block for jmDNS, but jmDNS is still raising an exception, this time it seems to be bound to a more reasonable host + interface (meep17.local which is the macbook's own hostname). See command output right at the bottom of this issue.
(well, if I keep on running the 1.9.0 IDE for long enough from the console, jmDNS raises more errors on many of my other network interfaces.)
I hope that I can start using Arduino 1.9 for my project, because this issue is greatly complicating my development workflow. (On my Linux dev machines, this problem does not exist. Also, VERY strangely, when the visual studio code arduino extension runs arduino 1.8.5 with the exact same arguments (I checked) there is no delay -- only difference is that vscode spawns arduino CLI as a child process of itself.)
Arduino 1.8.5 verify output
$ time /Applications/Arduino.app/Contents/MacOS/Arduino --verify ab-hivemind.ino
Loading configuration...
Initializing packages...
Preparing boards...
Verifying...
[JmDNS(fe80-0-0-0-aede-48ff-fe00-1122-en5.local.).Timer] WARN javax.jmdns.impl.tasks.resolver.DNSResolverTask - ServiceResolver(fe80-0-0-0-aede-48ff-fe00-1122-en5.local.).run() exception
java.io.IOException: No route to host (sendto failed)
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:693)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1595)
at javax.jmdns.impl.tasks.resolver.DNSResolverTask.run(DNSResolverTask.java:74)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
[fe80-0-0-0-aede-48ff-fe00-1122-en5.local..recover()] WARN javax.jmdns.impl.JmDNSImpl - RECOVERING
[JmDNS(fe80-0-0-0-aede-48ff-fe00-1122-en5.local.).State.Timer] WARN javax.jmdns.impl.tasks.state.DNSStateTask - Canceler(fe80-0-0-0-aede-48ff-fe00-1122-en5.local.).run() exception
java.io.IOException: No route to host (sendto failed)
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:693)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1595)
at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
In file included from sketch/ab-hivemind-main.cpp:79:0:
/Users/cpbotha/Dropbox/work/code/arduino/libraries/FastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.006
# pragma message "FastLED version 3.001.006"
^
[fe80-0-0-0-aede-48ff-fe00-1122-en5.local..recover()] WARN javax.jmdns.impl.DNSStatefulObject$DefaultImplementation - Wait for canceled timed out: DNS: fe80-0-0-0-aede-48ff-fe00-1122-en5.local. [fe80:0:0:0:aede:48ff:fe00:1122%en5/fe80:0:0:0:aede:48ff:fe00:1122%en5] state: canceling 1 task: null
[fe80-0-0-0-aede-48ff-fe00-1122-en5.local..recover()] WARN javax.jmdns.impl.JmDNSImpl - fe80-0-0-0-aede-48ff-fe00-1122-en5.local.recover() Could not recover we are Down!
Archiving built core (caching) in: /var/folders/jf/8pjr5bb176n9mmw1l5mcxlc40000gn/T/arduino_cache_696128/core/core_arduino_samd_mzero_bl_5d2767de36b39328154990997ebcbb2f.a
Sketch uses 22380 bytes (8%) of program storage space. Maximum is 262144 bytes.
real 0m30.989s
user 0m10.198s
sys 0m2.113s
Arduino 1.9 beta verify output
$ time ~/Downloads/Arduino.app/Contents/MacOS/Arduino --verify ab-hivemind.ino
Loading configuration...
Initializing packages...
Preparing boards...
Verifying...
[JmDNS(meepmbp17.local.).State.Timer] WARN javax.jmdns.impl.tasks.state.DNSStateTask - Prober(meepmbp17.local.).run() exception
java.io.IOException: No route to host (sendto failed)
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:693)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1618)
at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
[meepmbp17.local..recover()] WARN javax.jmdns.impl.JmDNSImpl - RECOVERING
[JmDNS(meepmbp17.local.).State.Timer] WARN javax.jmdns.impl.tasks.state.DNSStateTask - Canceler(meepmbp17.local.).run() exception
java.io.IOException: No route to host (sendto failed)
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:693)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1618)
at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
In file included from sketch/ab-hivemind-main.cpp:79:0:
/Users/cpbotha/Dropbox/work/code/arduino/libraries/FastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.006
# pragma message "FastLED version 3.001.006"
^
Sketch uses 22376 bytes (8%) of program storage space. Maximum is 262144 bytes.
real 0m5.764s
user 0m11.668s
sys 0m2.385s
The text was updated successfully, but these errors were encountered:
@cpbotha the behaviour has been spotted some time ago (#6350) and hopefully solved by spawning the discoverers as threads. About the exceptions raised by jmdns, there is no clever way to get rid of them except recompiling the whole library, since they are deeply buried in the code.
If you don't mind, I'd close the issue to keep track only on #6350
When I use the command-line mode of arduino to verify a sketch, jmDNS blocks the whole process for about 25 seconds (verify itself is about 5s) before timing out. I've put the program output further down in this report.
This happens for command-line use, but it also happens when I just start up the Arduino IDE for normal use.
It's interesting that the address it seems to be bound to is
fe80-0-0-0-aede-48ff-fe00-1122-en5.local
, which is en5, which on this new macbook with touchbar is the Apple built-in iBridge USB device: https://apple.stackexchange.com/questions/261972/what-is-ibridgeI have no idea why jmDNS wants to use this interface.
I also tried the Arduino 1.9.0 Beta -- this is much better, because it does not seem to block for jmDNS, but jmDNS is still raising an exception, this time it seems to be bound to a more reasonable host + interface (meep17.local which is the macbook's own hostname). See command output right at the bottom of this issue.
(well, if I keep on running the 1.9.0 IDE for long enough from the console, jmDNS raises more errors on many of my other network interfaces.)
I hope that I can start using Arduino 1.9 for my project, because this issue is greatly complicating my development workflow. (On my Linux dev machines, this problem does not exist. Also, VERY strangely, when the visual studio code arduino extension runs arduino 1.8.5 with the exact same arguments (I checked) there is no delay -- only difference is that vscode spawns arduino CLI as a child process of itself.)
Arduino 1.8.5 verify output
Arduino 1.9 beta verify output
The text was updated successfully, but these errors were encountered: