Currency (Payment 8.x-2.x's dependency) was not checked out during the last 8.x-2.x branch test run (archive).

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Xano’s picture

A 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.

Xano’s picture

This just happened again.

drumm’s picture

Assigned: Unassigned » drumm

Rebuilt the dependencies and queued a retest.

drumm’s picture

Status: Active » Fixed

https://qa.drupal.org/pifr/test/540078 now shows:

[16:31:17] Command [git clone 'git://git.drupal.org/project/currency.git' '/var/lib/drupaltestbot/sites/default/files/checkout/sites/default/modules/currency' --reference /var/cache/git/reference 2>&1] succeeded.
[16:31:17] Command [git --work-tree='/var/lib/drupaltestbot/sites/default/files/checkout/sites/default/modules/currency' --git-dir='/var/lib/drupaltestbot/sites/default/files/checkout/sites/default/modules/currency/.git' checkout '8.x-3.x' 2>&1] succeeded.

While, there are still errors, I think the dependency is resolved.

Xano’s picture

Thanks, 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?

Xano’s picture

Status: Fixed » Active
drumm’s picture

Project: Drupal.org Testbots » Project Dependency
Version: » 7.x-1.x-dev
Component: malfunctioning testbot » Code
Assigned: drumm » Unassigned

Looks 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 in project_dependency_info_batch_process_release() looks like a similar section of code. Line 374 is:

  $info = project_dependency_info_parse($info_files, $release['tag']);

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.

trobey’s picture

I will take a look at this later this week. It looks like a good lead on the problem.

trobey’s picture

Status: Active » Closed (cannot reproduce)

project_dependency_info_batch_process_release() calls project_dependency_info_parse(). When a release is created the dependencies are read. Testing this gives:

$ drush pdpv payment 8.x-2.x-dev
Processing dependencies for payment: 8.x-2.x-dev
Array
(
    [payment_test] => Array
        (
            [0] => payment
        )

    [payment_form] => Array
        (
            [0] => field
            [1] => payment
        )

    [payment_reference] => Array
        (
            [0] => entity_reference
            [1] => payment
        )

    [payment_reference_test] => Array
        (
            [0] => payment_reference
        )

    [payment] => Array
        (
            [0] => currency
        )

)

This shows the currency dependency. This does not even require Project Dependency to retrieve additional dependencies. But testing this gives:

$ drush pdsd payment 8.x-2.x-dev
Array
(
    [1955736] => Array
        (
            [uri] => currency
            [version] => 8.x-3.x-dev
            [tag] => 8.x-3.x
            [dependency_type] => 0
        )

)

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.

Xano’s picture

I 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.

trobey’s picture

Here 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.

Xano’s picture

Status: Closed (cannot reproduce) » Active

It 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.)

Xano’s picture

Could someone rebuild the dependencies again? I tried triggering a rebuild by making a commit, but that didn't work this time.

drumm’s picture

Rebuilt.

Xano’s picture

Thanks :)

Xano’s picture

FYI: this rebuild did not seem to work.

Xano’s picture

trobey’s picture

@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.

drumm’s picture

Done, but Drupal.org does have block caching turned on. I think these need a DRUPAL_NO_CACHE in project_dependency_block_info().

trobey’s picture

@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.

  • trobey committed 275ed4c on 7.x-1.x
    Issue #2388213 by trobey: Add DRUPAL_NO_CACHE
    
Xano’s picture

Could someone please trigger another dependency rebuild? The problem just occurred again.

drumm’s picture

Status: Active » Postponed (maintainer needs more info)

All 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.

Xano’s picture

It 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.

  • trobey committed 275ed4c on 7.x-2.x
    Issue #2388213 by trobey: Add DRUPAL_NO_CACHE
    
Xano’s picture

Status: Postponed (maintainer needs more info) » Closed (outdated)

We've moved all testing to Travis CI, so we have no data about the past year.

Thanks all for looking into this!