Node install for plugin test takes 21 minutes

Hey,

it looks like npm install takes around 21 minutes on our CI, webpack compilation takes 5 minutes. Is there a problem with Node for plugin tests? That does not look healthy.

https://ci.theforeman.org/job/test_plugin_matrix/3871/database=postgresql,ruby=2.7,slave=fast/consoleFull

For this reason, discovery plugin tests are failing reaching 2 hours. Total time of Ruby tests is one hour so hardware/VM seems reasonable sized (its like 40 minutes on my machine).

Questions:

  • Can someone help to investigate why JS stack for plugins is so slow? Perhaps its not using the correct node driver?
  • If we don’t find any solution, can we make the 2 hours limit a bit longer?

Thanks

I can’t do anything about the limit, but I think we could at least cache our npm dependencies as GH actions are doing for us. GH has it’s own npm registry, that caches all the requests to npm, we could do the same for ours.

We could just limit our dependency tree as it is huge and I’d argue it is not necessary. It is very hard work obviously, but it will need to be done at some point for sure.

Tests that runs for 2 hours are almost useless.

I remember someone from our @infra team saying we already cache something on IRC. Guys discussed that Node might be creating ton of small files and our instances use spinning drives, that could be a bottleneck too.

This needs to be investigated, maybe it is just misconfiguration. Or maybe we can tune the OS for better performance.

Bump, guys its failing most of the time and I need to get this resolved.

I propose to increase jenkins limit to 2 hours 30 minutes until we figure this out. How do I do this?

This has been bugging me for over a year now:

Have you noticed problems/improvements since this:

Note that was done about a month ago.

1 Like

Absolutely, times are back from 1h50m to just 50m!

https://ci.theforeman.org/job/test_plugin_foreman_discovery_develop/

Thanks a bunch.