In Drupal 7, two methods are used to fetch update information. One uses a setting update_max_fetch_time
which is set to 5 seconds by default. On each cron run - whether from the server's cron or triggered by a visitor (poormanscron) - or page refresh of admin/reports/updates
, this value is used. Not every module's status can be fetched within those 5 seconds, which is what you're seeing.
If you use the 'Check manually' link from the 'Available updates' page (admin/reports/updates/check
), a batch operation is used instead, which should process all modules. There are however also reports that this doesn't always work correctly (Failed to get available update data for [number] projects
message, you would then see the status of some modules in a grey box). You may also have to clear Drupal's cache first for this to work correctly.
The best thing to do is probably to set up a cron job to run each hour (for example). This will progressively keep the status of all modules updated.
Another workaround would be to override the update_max_fetch_time value and set it to e.g. 30 seconds (you can set $conf['update_max_fetch_time'] = 30;
in settings.php, or with Drush do drush vset update_max_fetch_time 30
). But if a cron run is then triggered by poormanscron, this could lead to a long page loading time.
This is from issue 952394 (still open).