Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Currency (Payment 8.x-2.x's dependency) was not checked out during the last 8.x-2.x branch test run (archive).
Comment | File | Size | Author |
---|---|---|---|
#20 | Screen Shot 2015-01-22 at 12.59.50 PM.png | 609.99 KB | trobey |
#11 | Screenshot from 2015-01-03 20:12:43.png | 85.38 KB | trobey |
Comments
Comment #1
XanoA push seems to have fixed this. Seeing as this is at least the third time this happened to this particular project, I don't think it's an anomaly anymore.
Comment #2
XanoThis just happened again.
Comment #3
drummRebuilt the dependencies and queued a retest.
Comment #4
drummhttps://qa.drupal.org/pifr/test/540078 now shows:
While, there are still errors, I think the dependency is resolved.
Comment #5
XanoThanks, Neil! I didn't see your comment until now.
Dependencies weren't build properly again today. Until the root cause of this problem is fixed, could I get sufficient permissions to rebuild the dependencies myself?
Comment #6
XanoComment #7
drummLooks like this is fixed for now.
We manually trigger dependency rebuilds via Jenkins, which we do control access to quite tightly.
I skimmed through the project that does this parsing, project_dependency, and do see something that looks like a bug. The
project_dependency_info_parse()
function looks good, it scans for.info
and.info.yml
files, then does a YML or info parse. Buried inproject_dependency_info_batch_process_release()
looks like a similar section of code. Line 374 is:There isn't a D8 alternative. This would explain the dependencies being properly parsed in some code paths, but not others. Ideally, that section of code could be refactored to call
project_dependency_info_parse()
to reduce code duplication and fix the bug.Comment #8
trobey CreditAttribution: trobey commentedI will take a look at this later this week. It looks like a good lead on the problem.
Comment #9
trobey CreditAttribution: trobey commentedproject_dependency_info_batch_process_release() calls project_dependency_info_parse(). When a release is created the dependencies are read. Testing this gives:
This shows the currency dependency. This does not even require Project Dependency to retrieve additional dependencies. But testing this gives:
I do not think the problem is with Project Dependency. It is reading the .info.yml file and storing the correct dependency and returning the dependency. There are no additional dependencies so Project Dependency is not having to compute anything. Only a trivial amount of code from Project Dependency is being exercised and if there was a problem then we would be seeing widespread problems.
Comment #10
XanoI understand that if you cannot reproduce this, nothing can be done. However, is there any way in which I can provide more information if this problem occurs again? It's happened quite a few times now over the last year and it does not seem to be triggered by commits or pushes, as far as I can tell.
Comment #11
trobey CreditAttribution: trobey commentedHere are some possibilities:
1) Sometimes when a release occurs for some reason Project Dependency may not populate the database table with the components and the information from the info files. This could be due to a problem with Project Dependency at the time of the release. There is a drush pdpv command that will force the information to be rebuilt. However this is very unlikely to be the problem since the information is in the tables in my copy of drupal.org and I was careful to comment out the code that stores this information before I performed any testing. This can be checked by looking at the database tables and can be fixed by running the drush pdpv command.
2) It might help if you can view the dependencies that Project Dependency computes. Issue #760890: Display module dependencies on project pages provides a way to see the dependencies for a release. I uploaded a screenshot of what this would look like for your release. If you think this information would be helpful then help push to get it added to drupal.org. If Currency does not show up then I know it is a Problem with Project Dependency. If it does show up then go to item 3.
3) From my testing it looks like Project Dependency is providing the Currency dependency but the testbots are not showing this dependency. So is something other than project_dependency_get_external_release_dependencies() getting called by the testbots? This is code outside of Project Dependency so I am not familiar with it or the best way to tackle the problem.
Comment #12
XanoIt just happened again after I triggered a branch re-test on qa.d.o.
(Oops. I missed your last post. Feel free to close this issue again.)
Comment #13
XanoCould someone rebuild the dependencies again? I tried triggering a rebuild by making a commit, but that didn't work this time.
Comment #14
drummRebuilt.
Comment #15
XanoThanks :)
Comment #16
XanoFYI: this rebuild did not seem to work.
Comment #17
XanoI just opened #2411475: Request access to rebuild project dependencies.
Comment #18
trobey CreditAttribution: trobey commented@drumm: The beta release of Project Dependency has two blocks. Can you enable them for the testing administrator role on release pages in the right sidebar? That would be node/* and I think it then only displays on release nodes. The block names are Project components and Project release dependencies. These will show the dependencies and would save having to update my devel environment to debug this problem.
Comment #19
drummDone, but Drupal.org does have block caching turned on. I think these need a
DRUPAL_NO_CACHE
inproject_dependency_block_info()
.Comment #20
trobey CreditAttribution: trobey commented@drumm: Thanks. I suppose you are right if the dependencies are rebuilt. But in most cases the dependencies for a particular release do not change. I will update the code but I think for now it will do what we need.
@Xano: As I suspected I do not think the problem is with Project Dependency. The dependencies that it is returning are shown in the attached screen shot. I suspect the problem may be #2410151: _system_rebuild_module_data_ensure_required does not parse dependencies.
Comment #22
XanoCould someone please trigger another dependency rebuild? The problem just occurred again.
Comment #23
drummAll the dependencies are there right now, and the branch is passing. The manual dependency rebuilds have not been triggered lately, so this likely corrected itself on the next commit. We'll have to wait and see if this happens again.
Comment #24
XanoIt does tend to correct itself when new commits are pushed, yes. I just don't always have something to commit, which is when I post here.
Comment #26
XanoWe've moved all testing to Travis CI, so we have no data about the past year.
Thanks all for looking into this!