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

tarantool / expirationd / 6201270674
85%

Build:
DEFAULT BRANCH: master
Ran 15 Sep 2023 06:02PM UTC
Jobs 1
Files 2
Run time 1s
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

15 Sep 2023 05:55PM UTC coverage: 94.344%. Remained the same
6201270674

push

github

oleg-jukovec
test: align space_index_test with the transactional DDL

If the tarantool/tarantool#8751 is merged, the space drop is
transactional, so it only yields once on the space drop operation
finish. This causes the test fail [1] because of unexpected state
in the expirationd task.

This patch fixes the problem by wrapping space drop and recreation
into a transaction.

More informative description of what the issue is:

Consider the following facts:
a. If the PR mentioned above is merged, the space drop yields on
   the full DDL operation end. After that point, the space is
   dropped entirely (no indexes or entries in the `_space` space
   exist).
b. If the expirationd task's `atomic_iteration` option is set to
   false (which is the default used in the test), each tuple drop
   causes the expirationd task fiber yield.

So here's what happens if the fact 'a' is false (the PR mentioned
above is not merged):
1. The test fiber creates the expirationd task and yields into it.
2. The expirationd task drops the first tuple from the given space
   and yields back to the test fiber.
3. The test fiber does the `space:drop()`, which is not atomic, so
4. the drop yields on the primary index drop. Control is returned
   to the expirationd task.
5. The expirationd task:
   1. Finishes the space iteration (there was only one tuple in the
      given space)
   2. Uses the space (`box.space[task.space].engine == "vinyl"`) we
      wanted to drop in the test fiber.
   3. Goes sleep, which yields to the test fiber.
6. The test fiber continues the space drop, finishes it (the next
   yields happening during the space drop do not return the control
   back to the expirationd task though, because it sleeps and it's
   sleep timer hasn't expired yet).
7. The test fiber recreates the space, and finally, when it's time
   to switch back to the expirationd task, the space exists again
   like no space drop happened.

But if the space drop is atomic things change starting from the
st... (continued)

417 of 442 relevant lines covered (94.34%)

396.98 hits per line

Jobs
ID Job ID Ran Files Coverage
1 6201270674.1 15 Sep 2023 06:02PM UTC 2
94.34
GitHub Action Run
Source Files on build 6201270674
  • Tree
  • List 2
  • Changed 1
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • ca8a7a6d on github
  • Prev Build on master (#6069773077)
  • Next Build on master (#6300183741)
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

© 2025 Coveralls, Inc