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

tarantool / expirationd / 6201270674 / 1
85%
master: 85%

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

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

Source Files on job 6201270674.1
  • Tree
  • List 2
  • Changed 1
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 6201270674
  • ca8a7a6d on github
  • Prev Job for on master (#6069773077.1)
  • Next Job for on master (#6300183741.1)
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