• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

aiidateam / aiida-core / 6712 / 7
70%
develop: 70%

Build:
DEFAULT BRANCH: develop
Ran 12 Jul 2019 02:48PM UTC
Files 403
Run time 36s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Jul 2019 02:29PM UTC coverage: 69.724% (-0.01%) from 69.734%
TEST_AIIDA_BACKEND=sqlalchemy TEST_TYPE="tests"

push

travis-ci

web-flow
Fix bug with never resolving calculation job update futures (#3155)

The `JobsList` class is a container and manager of requests for updates
of the status of calculation jobs. For each request, it keeps a future
that it will update in bulk after retrieving the status of all the jobs
that it manages. This is necessary to ensure that multiple jobs use the
same update call to scheduler and not all individually, in order to not
overload the scheduler.

If the scheduler update call excepts, all the futures were properly
excepted as well and the internal cache of outstanding requests would be
cleared, before re-raising the exception. The excepted futures would
each be caught by the exponential backoff mechanism and a new request to
update the status would be scheduled. This would be registered with the
same `JobsList` instance, however, the next scheduler update would never
be called and so the futures would never be resolved, causing the
calculation jobs to "hang" indefinitely.

The problem lies in the `_ensure_updating` method. When a new request
comes in, this is the method that is called first to see if a scheduler
update call has already been scheduled. If the case, a new one does not
have to be scheduled. This is based on whether the `_update_handle`
attribute is defined. This attribute is properly reset after a scheduler
update goes through successfully, in the `updating` coroutine after the
`_update_job_info` yields. However, in the case of an exception in that
last method, the code path that resets the `_update_handle` is never
reached because the exception is re-raised after the job requests cache
is reset. The solution is simply to manually set `_update_handle` to
`None` in the except clause.

22638 of 32468 relevant lines covered (69.72%)

0.7 hits per line

Source Files on job 6712.7 (TEST_AIIDA_BACKEND=sqlalchemy TEST_TYPE="tests")
  • Tree
  • List 0
  • Changed 3
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25
  • Travis Job 6712.7
  • d79287c3 on github
  • Prev Job for TEST_AIIDA_BACKEND=sqlalchemy TEST_TYPE="tests" on develop (#6710.7)
  • Next Job for TEST_AIIDA_BACKEND=sqlalchemy TEST_TYPE="tests" on develop (#6718.7)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc