IDE 2.3.3 Stuck trying to download teensy

This IDE was working fine with my Teensy 4.0 project, but this AM it gets stuck trying to download the package_teensy_index.json file
image

Some change in the 2.3.3 release causing this?

For What it is Worth: I have run into this a few times.
Also, not sure if maybe hitting some bandwidth thing. That is Paul released a new beta build yesterday evening and for this one he put it on a different URL. So maybe there is a higher number of people that are connecting up to the PJRC server?

Secondary note: Sometimes it appears to hang on the last URL that is processed and in some of these cases, I believe that the URL data was actually received, but there is no new messages posted, like processing the new files or the like displayed, so that last URL is blamed for the time that Arduino is doing its bookkeeping.

I can confirm @KurtE's experience.

I use daily downloads and occasionally download a new version. A while back with one of the new downloads something changed (went wrong?). It appears the problem made it through to the new 2.3.3.

I have automatic check for updates disabled. So, when I make a change to the "Additional boards manager URLs" it hangs on one of the json files when checking and updating the change. I do not know in which order they are checked so cannot say which one - not always the same one. It did appear as though, when I added a URL, it did complete whatever it was supposed to do even though it hanged (the new options are available in the boards manager). In my case restarting the IDE cleared the hang (possibly due to the check for updates turned off).

1 Like

Hi, Paul here... from PJRC.

I can confirm the PJRC web server as plenty of bandwidth. But it is physically located in a data center run by Hivelocity in Tampa, Florida.

Florida and several other states were struck by hurricane Helene around the time you posted this thread.

While the data center claims 100% uptime and the server doesn't show a reboot, internet connectivity in that part of the US may have been impacted by the hurricane.

If you're still unable to get the package index, please check the URL entry in File > Preferences (or Arduino IDE > Settings on MacOS).

I recently looked at the web server logs. Several 404 errors were in the log. Most common problem using a space or semicolon ';' between URLs rather than a comma ',' which Arduino IDE expects. An extra character on the end of the URL is also a common mistake.

As you can see in those web server logs, the Arduino software will just send 2 URLs concatenated when the wrong separator character is used. I'm considering using Apache mod_rewrite on the PJRC server to automatically "fix" these human errors and send the package index. But that can't solve the cases where PJRC's package index gets concatenated onto the end of another server's package index.

Ideally Arduino IDE could be smarter about detecting or even automatically fixes these common human errors. Older versions would just give "404 Not Found" without showing the incorrect URL. I tried with 2.3.2 recently (on Linux) and the error is shown with the (obviously incorrect) URL which Arduino tried to use. But it's shown in small font in a notification message which I doubt most people read carefully and which automatically vanishes after only several seconds.

This is no longer a problem. It came suddenly a few days ago and just as suddenly went away that evening.

Been fine ever since.

1 Like

It is still a problem, it is stuck now for at least 20 minutes trying to download package_teensy_index.json.

There is no way the IDE should hang getting started because it can't find something on the external network related to software versioning. At the very least it should time out and move on.

So this is a bug, or a design flaw, and a very serious one.

Please guys, let's get our act together. People rely on the arduino ide.

1 Like

And not only that (the above), the file is actually available!!!!

I just put that url into my browser and it comes up without a hint of visible delay.

So, this is the IDE. Really frustrating.

Further test,

I configured the teensy url into the arduino-cli, it works perfectly okay

$ arduino-cli core update-index
Downloading index: package_index.tar.bz2 downloaded                             
Downloading index: package_stmicroelectronics_index.json downloaded             
Downloading index: package_teensy_index.json downloaded    

Try the IDE 2.3.3, again, and it still hangs at downloading the teensy file.

image

I know that others (or was it you) also mentioned similar issue up on Teensy forum:
Recently I posted what I have done a few times in the past when I ran into something like this:
Teensyduino 1.60 Beta #2 | Teensy Forum (pjrc.com)

I believe the appearance of it hanging on the Teensy download can be misleading. I believe that after they download all of these json files, they then go and process them without updating the messages. And it is something in this process that is hanging or taking a real long time. If true, I really think they need to output a new message, like checking the index files or ...

As I mentioned on the Teensy forum, I have resolved something similar to this before by:
cleaning out most of the Arduino install, like rename all of the directories that it uses,
like the Ardino15, the Sketch folder or particularly the libraries and hardware directories under it. Remove the cache stuff on my windows machine (%temp%/arduino) directory
and the user data which on windows ( * C:\Users<user name>\AppData\Roaming\arduino-ide)

Sometimes I start with just a few of these to see if it is enough... Cache/User
followed by Arduino15... last libraries... Again I end up moving them elsewhere and
move some/many of them back...

EDIT: I should have mentioned, that most of the issues I needed to do these above steps
where back in the Arduino 2 beta days

That's a lot for a recurring problem

I ran the update in the cli, and then rebooted, and then it worked. But no claim of cause and effect, I was fishing

A few days ago, I was looking at some of the Arduino documentation about packages and the like, and found an interesting paragraph in the document:

Package index specification - Arduino CLI

Note: if you miss a bracket in the JSON index, then add the URL to your Preferences, and open Boards Manager it can cause the Arduino IDE to no longer load until you have deleted the file from your arduino15 folder.

So at times wonder if maybe one of these files may have been corrupted on the download and/or by some package developer, of which you have in your list.

Are you using Microsoft Windows? If so, any chance you could try on a Mac or with Linux?

Or if you're willing to take a small risk and be careful about other internet usage, try temporarily disabling Windows Defender (or other anti-virus software like Norton, Macafee, etc) and see if that makes any difference? Maybe these problems are anti-malware software interfering with access to the filesystem, coupled with a poorly implemented notification system on Windows where important messages appear underneath other windows and vanish after only several seconds.

The one other thing I can do to try to help, if you're willing to say your public IP number, is run grep on the last couple days of PJRC server logs and share the results. That can at least confirm what pattern of package_teensy_index.json accesses the server saw.

recurring? In that you have run into often? Or that you see others have run
into it?

As I mentioned, I have run into something like this maybe three times, and I don't
believe any of them were Windows specific. If I remember correctly, two of the
times were ESP32 specific.

Originally, I had ESP32 installed in the hardware directory of the sketch directory, when they then came out with a board package, I ran into issues like this. Probably uninstalling the ESP32 board and clearing the stuff out of the hardware directory would have fixed it... But that time was hung with just the old startup screen...

2nd one I remember - I believe it was an ESP32 board package that was bad, they fixed it
quickly but I was unlucky enough to have updated before the fix...

3rd time I remember - Back in Alpha/Beta timeframe - I ran into an issue that looked like this, and I was finally able to clear it by removing the libraries directory from the sketch folder. My guess? at the time, was I had a ton of libraries installed, and there was probably a bug in the Arduino update code, like maybe a fix array of some size, which I exceeded...

I still wonder if maybe a lot of these reports about stuck downloading Teensy (or whatever is the last one of an install), is an issue where it is taking a long time to compare their library list to all of the directories in the libraries directory. For example: I have currently over 300 directories under the libraries directory... And I am seeing the Teensy message hanging around for longer period of time. Which is why again, I wish Arduino would update that
message as soon as the last package is downloaded to something like: Now checking for library updates, or now checking for board updates or ...

I also wonder if maybe some of this library stuff, might have gotten worse over the last
release or two? I believe some of this code changed in that it checks for multiple directories that have the same library in it, and won't allow you to update one until there are no duplicates...

Or maybe my library directory hit some critical size again and maybe the update code
is something like an N squared ...

A possible related thing I noticed, is that it feels like the update of some libraries is taking
a lot longer time. It again almost feels like, once the library is updated, the Arduino code is again doing a full compare of directories to see how many more still need to be updated.

But I don't believe any of these issues I ran into are Windows Specific. Could easily be
wrong, but if I am, then maybe it simply implies that the Arduino developers maybe need to do more of their main work using Windows...

1 Like

It is recurring in itself, perhaps one in ten starts.

I'm using Linux Fedora, Cinnamon.

My working directories are not under any arduino tree. In my case that would impose an awkward source management problem. Each sketch directory is associated with electrical design and host software directories, generally Python or c++.

Problem started again, switched back to IDE 2.2.1 and all is well, so it seems to be the IDE is the problem.

Hi all. It was found that Arduino IDE 2.3.3 has a bug that causes index downloads and installation/updates of boards platforms libraries to hang when Serial Monitor is open.

If you encounter these problems, the workaround is to close the Serial Monitor view until the process is finished. After that, you can open Serial Monitor again.

The Serial Monitor view is a tab in the bottom panel of the Arduino IDE window, so you might not even notice when you have it open. You can close it by clicking the X icon on the tab:

image


The Arduino developers are tracking the bug here:

If you have a GitHub account, you can subscribe to that thread to get notifications of any new developments related to this subject:

screenshot of Subscribe button


:exclamation: Please only comment on the GitHub issue thread if you have new technical information that will assist with the resolution. General discussion and support requests are always welcome here on the Arduino Forum.


1 Like

Thanks @ptillisch !

Looks like you localized it down to which commit, which is great!
Hopefully a quick fix.

Still wish list item: Wonder how much time was spent with people chasing their tail,
wondering what maybe is wrong with the Teensy index, or esp32 index or ...
As the last thing we see is something like:
image

Same with downloading library where at times we see:
the processing ... file.

Would suggest that when the download of all of the index files has completed,
a new message is shown while the Arduino code is doing whatever it is doing to process
the files. Maybe something like:

Now checking index files for updates

It was also good to hear that it was not windows specific!

Thanks again!

Quite a lot, this was a hugely time consuming bug considering how long it takes to see that it is stuck, and then do it again for every attempted work around plus all of the checking of repos and servers and so forth, and then multiply that by some factor for the ide being unavailable for actual work.

Might as well itemize that; indicate in which file it is checking. That tells us that it is not stuck or, where it is stuck. If can still be time consuming, but it will be less time consuming.

I love me some git bisect!

The problematic commit does look a bit daunting:

But often just finding a way to reliably reproduce a fault is half the battle so hopefully we have made some good progress towards a fix.

I think it is definitely a good idea. The reinitialization is something triggered by the Arduino IDE codebase (rather than being something done automatically by Arduino CLI without Arduino IDE knowing anything about it), so I think it should be feasible to implement this.

The dialog already shows the file. The problem occurs when it reinitializes after the downloads have completed, in order to reflect the updated data. This is a global reinitialization, rather than being something file-specific.

Yeah, since it was a fairly strange bug I thought it was worth checking on all three operating systems just to be certain that the developers would be able to use the steps I provided to reproduce the fault on their machines.