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
{{ message }}
This repository was archived by the owner on Aug 1, 2024. It is now read-only.
Repository navigation
This repository was archived by the owner on Aug 1, 2024. It is now read-only.
I think @rijuma saw this several times provisioning mid week but it eventually worked after nuking volumes and running again so it may not be an always error 😱
I can't say if this was exactly the same case as mine mentioned by @ashultz0. On my case pyenv was not correctly setup to run the correct version by default (v3.8.16), and running the provisioning corrupted some container setups.
In order to fix my issue, I had to add eval "$(pyenv init -)" before the virtualenvwrapper.sh script. My final .bashrc had these lines:
On hosted devstack, we managed to fix this issue with an npm ci and then a run of paver update_assets inside the container's shell. This may or may not work for folks on Apple Silicon machines.
It feels like the most likely underlying causes of this are either "NPM didn't successfully complete" or "copying installed NPM packages to the vendored JS directory failed". Can we put better error handling in these steps to catch the root cause when it happens rather than blowing up downstream in the provisioning process like this?
backbone.paginator hasn't been updated in 5 years. Should we just vendor it in for real, and see if that shifts the error message in any useful way?
Not sure if this is a separate issue, but it may be that that the hash caching that we use to avoid doing npm related install can get into a bad state? Provisioning seems to clear it: https://github.com/openedx/devstack/blob/master/provision-lms.sh#L80-L81, but paver install_prereqs may not update when it should.
I have been able to work around this in the past by manually installing backbone.paginator, backbone, and a few others. Not a good developer experience, but I have been able to get around it before.
The following workaround worked for at least 2 developers:
1. Enter LMS shell (make lms-shell).
2. npm ci
3. paver update_assets
It has been noted that paver install_prereqs, which uses a cached hash to determine whether or not npm needs to be updated again, may get into a bad state. An alternative workaround that one could try, that would also hopefully fix the cached, would be to try the following:
1. Enter LMS shell (make lms-shell).
2. make clean
3. paver install_prereqs
4. paver update_assets
That said, it may be that npm ci is enough to make the cached npm hash to become out of date, and running paver install_prereqs might notice this and potentially run npm ci again and update the hash. This might just cause one additional unnecessary run of the npm install.
UPDATE: It probably isn't worth trying this alternate workaround, and we should just update the troubleshooting doc. We could however separately try to get to the bottom of how this happens, or how we could detect and auto-fix, or detect and auto suggest the fix.
FED-BOM is able to reproduce this issue and trying to debug it. We think it might fix with frontend package upgrades of edx-platform. We have a separate ticket for platform npm package upgrades and one of its PR will be up soon
Activity
ashultz0 commentedon May 19, 2023
I think @rijuma saw this several times provisioning mid week but it eventually worked after nuking volumes and running again so it may not be an always error 😱
jmbowman commentedon May 19, 2023
This has definitely surfaced in the past, but usually with an unsatisfying resolution:
rijuma commentedon May 19, 2023
I can't say if this was exactly the same case as mine mentioned by @ashultz0. On my case
pyenvwas not correctly setup to run the correct version by default (v3.8.16), and running the provisioning corrupted some container setups.In order to fix my issue, I had to add
eval "$(pyenv init -)"before thevirtualenvwrapper.shscript. My final.bashrchad these lines:After that, I double checked that the proper python version was the default on
pyenvon a fresh terminal start:➜ ~ python -V Python 3.8.16Then removed all related containers and volumes from docker so the provisioning would start from scratch.
After that, provision went smoothly.
dianakhuang commentedon May 22, 2023
Seems like this is possibly also a manifestation of M1/Silicon issues.
Edit: we have also received word that this is happening on hosted devstack as well.
dianakhuang commentedon May 22, 2023
On hosted devstack, we managed to fix this issue with an
npm ciand then a run ofpaver update_assetsinside the container's shell. This may or may not work for folks on Apple Silicon machines.This might be something that we want/could be run when folks run into this. Maybe provisioning fails? https://github.com/openedx/devstack/blob/master/provision-lms.sh#L80-L81
jmbowman commentedon May 23, 2023
Some suggestions for diagnosing:
robrap commentedon May 23, 2023
Not sure if this is a separate issue, but it may be that that the hash caching that we use to avoid doing npm related install can get into a bad state? Provisioning seems to clear it: https://github.com/openedx/devstack/blob/master/provision-lms.sh#L80-L81, but
paver install_prereqsmay not update when it should.nsprenkle commentedon May 24, 2023
I have been able to work around this in the past by manually installing
backbone.paginator,backbone, and a few others. Not a good developer experience, but I have been able to get around it before.Am on an M1 Mac running Devstack.
robrap commentedon May 30, 2023
[inform] @justinhynes reported having this issue "not running local" (remote desktop?) and successfully used the following workaround:
Maybe we just need a quick win (for now) of adding this to the troubleshooting guide?
robrap commentedon May 30, 2023
The following workaround worked for at least 2 developers:
It has been noted that
paver install_prereqs, which uses a cached hash to determine whether or not npm needs to be updated again, may get into a bad state. An alternative workaround that one could try, that would also hopefully fix the cached, would be to try the following:That said, it may be that
npm ciis enough to make the cached npm hash to become out of date, and runningpaver install_prereqsmight notice this and potentially runnpm ciagain and update the hash. This might just cause one additional unnecessary run of the npm install.UPDATE: It probably isn't worth trying this alternate workaround, and we should just update the troubleshooting doc. We could however separately try to get to the bottom of how this happens, or how we could detect and auto-fix, or detect and auto suggest the fix.
github-actions commentedon Jun 12, 2023
Follow-up checklist (for Arch-BOM usage)
abdullahwaheed commentedon Aug 3, 2023
FED-BOM is able to reproduce this issue and trying to debug it. We think it might fix with frontend package upgrades of edx-platform. We have a separate ticket for platform npm package upgrades and one of its PR will be up soon