Skip to content
This repository has been archived by the owner on Jul 1, 2021. It is now read-only.

Disable resolver in dockerfile for consistent builds #2090

Merged
merged 1 commit into from
Oct 22, 2020

Conversation

njgheorghita
Copy link
Contributor

@njgheorghita njgheorghita commented Oct 22, 2020

What was wrong?

The docker-trinity-image-build-test CI run has been consistently flaky for me recently.

It seems to me that the problem is similar to the one described in this issue - where essentially the --use-feature=2020-resolver pytest flag is very slow and inefficient. I've seen multiple instances of the resolver installing many different versions of the same dependency while trying to resolve the dependency tree. This poor performance is acknowledged and is under active improvements by the pip team. The docker-trinity-image-build-test consistently times out during the install step with the 2020-resolver enabled.

The pip team has already released some improvements to the resolver in pip==20.2.4, but it seems like whatever improvements were included in 20.2.4 are not sufficient to prevent timeouts in the docker install step. They intend to release further improvements in 20.3.

How was it fixed?

The solution here is to just remove the --use-feature=2020-resolver flag for the time being. This results in consistently quick & passing CI tests.

To-Do

  • Clean up commit history

Cute Animal Picture

image

@njgheorghita njgheorghita force-pushed the improve-ci-docker-build branch 2 times, most recently from 72817b7 to 76c8bc4 Compare October 22, 2020 14:12
@njgheorghita njgheorghita changed the title Upgrade pip version in dockerfile for faster resolver Disable 2020 resolver in dockerfile for consistent builds Oct 22, 2020
@njgheorghita njgheorghita changed the title Disable 2020 resolver in dockerfile for consistent builds Disable resolver in dockerfile for consistent builds Oct 22, 2020
@njgheorghita
Copy link
Contributor Author

@carver I noticed you included the 2020-resolver flag here. I'm not sure how important you consider this flag to be? It seems to me like if we don't mind the docker-trinity-image-build-test behaving mildly flaky, then it's not necessary to remove the flag.

@carver
Copy link
Contributor

carver commented Oct 22, 2020

Flaky is definitely bad, so I agree that doing nothing is not the best resolution.

I have had experiences where the only way to install it correctly was to use the new resolver. As long as it's green, I'm fine with it for now. The behavior will be default soon enough.

@njgheorghita njgheorghita marked this pull request as ready for review October 22, 2020 15:42
@njgheorghita
Copy link
Contributor Author

I have had experiences where the only way to install it correctly was to use the new resolver.

Ok, cool - yeah it seems like that's no longer the case. Do you think it's worth leaving a note? When you first introduced the flag - how obvious of a fix was it to introduce the flag?

@carver
Copy link
Contributor

carver commented Oct 22, 2020

It wasn't totally obvious, but since it will be the default soon, we don't have to spend too much time on it.

@njgheorghita
Copy link
Contributor Author

Cool, i'll merge this in if you can give the official 👍

@njgheorghita njgheorghita merged commit 83e15a1 into ethereum:master Oct 22, 2020
@njgheorghita njgheorghita deleted the improve-ci-docker-build branch October 22, 2020 16:28
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants