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

tarantool / luajit / 7179957946
89%
tarantool/master: 93%

Build:
Build:
LAST BUILD BRANCH: tarantool/release/2.11
DEFAULT BRANCH: tarantool/master
Ran 12 Dec 2023 10:17AM UTC
Jobs 1
Files 89
Run time 29s
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 Dec 2023 10:08AM UTC coverage: 88.569% (-0.1%) from 88.69%
7179957946

push

github

Buristan
Emit sunk IR_NEWREF only once per key on snapshot replay.

Thanks to Sergey Kaplun and Peter Cawley.

(cherry-picked from commit 1761fd2ef)

Assume we have the parent trace with the following IRs:

| 0001 }  tab TNEW   #0    #0
| 0002 }  p32 NEWREF 0001  "key"
| 0003 }  fal HSTORE 0002  false
| ....        SNAP   #1   [ ---- ---- 0001 ---- ]
| 0004 >  num SLOAD  #1    T
| ....        SNAP   #2   [ ---- ---- 0001 ]
| 0005 >  num EQ     0004  0004
| 0006 }  tru HSTORE 0002  true
| ....        SNAP   #3   [ ---- ---- 0001 true ]

The side trace for the third snapshot emits the following IRs:

| 0001    tab TNEW   #0    #0
| 0002    p32 NEWREF 0001  "key"
| 0003    fal HSTORE 0002  false
| 0004    p32 NEWREF 0001  "key"
| 0005    tru HSTORE 0004  true

As we can see, `NEWREF` is emitted twice. This is a violation of its
semantics, so the second store isn't noticeable.

This patch prevents the second emitting of IR NEWREF by checking the last
one emitted NEWREF IR. There is no need to check NEWREFs beyond since
it guarantees the snapshot is taken after it, because it may cause table
rehashing, so all prior results are invalidated.

Sergey Kaplun:
* added the description and the test for the problem

Resolves tarantool/tarantool#7937
Part of tarantool/tarantool#9145

5378 of 5990 branches covered (0.0%)

Branch coverage included in aggregate %.

11 of 11 new or added lines in 1 file covered. (100.0%)

35 existing lines in 7 files now uncovered.

20625 of 23369 relevant lines covered (88.26%)

2744742.19 hits per line

Jobs
ID Job ID Ran Files Coverage
1 7179957946.1 12 Dec 2023 10:17AM UTC 0
88.57
GitHub Action Run
Source Files on build 7179957946
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #7179957946
  • 98cee360 on github
  • Prev Build on tarantool/master (#7119513155)
  • Next Build on skaplun/lj-1128-double-ir-newref-on-restore-sunk (#7699605682)
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