Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

TAP testcase 'simple expires test' sometimes failed (flaky?) #90

Closed
ligurio opened this issue Oct 24, 2021 · 4 comments · Fixed by #97 or #121
Closed

TAP testcase 'simple expires test' sometimes failed (flaky?) #90

ligurio opened this issue Oct 24, 2021 · 4 comments · Fixed by #97 or #121

Comments

@ligurio
Copy link
Member

ligurio commented Oct 24, 2021

https://github.com/tarantool/expirationd/runs/3910102548?check_suite_focus=true

TAP version 13
1..10
    # simple expires test
    1..4
    ok - checking start time
    ok - checking task name
    ok - checking restart count
    not ok - Test task executed and moved to archive
make: *** [Makefile:39: test] Error 1
      ---
      filename: ./test.lua
      trace:
      - line: 296
        source: '@./test.lua'
        filename: ./test.lua
        what: Lua
        namewhat: local
        name: fun
        src: ./test.lua
      - line: 218
        source: '@builtin/tap.lua'
        filename: builtin/tap.lua
        what: Lua
        namewhat: method
        name: test
        src: builtin/tap.lua
      - line: 0
        source: '@./test.lua'
        filename: ./test.lua
        what: main
        namewhat: 
        src: ./test.lua
      line: 0
      expected: 7
      got: 8
      ...
    # simple expires test: end
not ok - failed subtests
  ---
  filename: ./test.lua
  trace:
  - line: 245
    source: '@builtin/tap.lua'
    filename: builtin/tap.lua
    what: Lua
    namewhat: method
    name: test
    src: builtin/tap.lua
  - line: 0
    source: '@./test.lua'
    filename: ./test.lua
    what: main
    namewhat: 
    src: ./test.lua
  planned: 4
  failed: 1
  line: 0
  ...
    # execution error test
    1..2
    ok - checking restart count
    ok - Error task executed
    # execution error test: end

Tarantool version 2.8

How-To reproduce:

$ INDEX_TYPE='HASH' ./test.lua
@ligurio
Copy link
Member Author

ligurio commented Oct 24, 2021

One more:

INDEX_TYPE='HASH' ./test.lua
TAP version 13
1..10
    # simple expires test
    1..4
    ok - checking start time
    ok - checking task name
    ok - checking restart count
    not ok - Test task executed and moved to archive
      ---
      filename: ./test.lua
make: *** [Makefile:43: test-coverage] Error 1
      trace:
      - line: 296
        source: '@./test.lua'
        filename: ./test.lua
        what: Lua
        namewhat: local
        name: fun
        src: ./test.lua
      - line: 222
        source: '@builtin/tap.lua'
        filename: builtin/tap.lua
        what: Lua
        namewhat: method
        name: test
        src: builtin/tap.lua
      - line: 0
        source: '@./test.lua'
        filename: ./test.lua
        what: main
        namewhat: 
        src: ./test.lua
      line: 0
      expected: 7
      got: 8
      ...
    # simple expires test: end
not ok - failed subtests
  ---
  filename: ./test.lua
  trace:
  - line: 249
    source: '@builtin/tap.lua'
    filename: builtin/tap.lua
    what: Lua
    namewhat: method
    name: test
    src: builtin/tap.lua
  - line: 0
    source: '@./test.lua'
    filename: ./test.lua
    what: main
    namewhat: 
    src: ./test.lua
  planned: 4
  failed: 1
  line: 0
  ...
    # execution error test
    1..2
    ok - checking restart count
    ok - Error task executed
    # execution error test: end
ok - execution error test

https://github.com/tarantool/expirationd/runs/3969338282?check_suite_focus=true

ligurio added a commit that referenced this issue Nov 11, 2021
Sometimes check for task.expired_tuples_count failed because not all
tuples were archived. With wait_cond() test become more reliable.

Fixes #90
ligurio added a commit that referenced this issue Nov 11, 2021
Sometimes check for task.expired_tuples_count failed because not all
tuples were archived. With wait_cond() test become more reliable.

Fixes #90
ligurio added a commit that referenced this issue Nov 12, 2021
Sometimes check for task.expired_tuples_count failed because not all
tuples were archived. With wait_cond() test become more reliable.

Fixes #90
@ylobankov
Copy link
Contributor

It is still reproduced. We've got a failure recently for INDEX_TYPE='TREE' ./test.lua:

INDEX_TYPE='TREE' ./test.lua
TAP version 13
1..10
    # simple expires test
    1..4
    ok - checking start time
    ok - checking task name
    ok - checking restart count
    not ok - Test task executed and moved to archive
      ---
      filename: ./test.lua
      trace:
      - line: 296
        source: '@./test.lua'
        filename: ./test.lua
        what: Lua
        namewhat: local
        name: fun
        src: ./test.lua
      - line: 218
        source: '@builtin/tap.lua'
        filename: builtin/tap.lua
        what: Lua
        namewhat: method
        name: test
        src: builtin/tap.lua
      - line: 0
        source: '@./test.lua'
        filename: ./test.lua
        what: main
        namewhat: 
        src: ./test.lua
      line: 0
      expected: true
      got: false
      ...
    # simple expires test: end
not ok - failed subtests
  ---
  filename: ./test.lua
  trace:
  - line: 245
    source: '@builtin/tap.lua'
    filename: builtin/tap.lua
    what: Lua
    namewhat: method
    name: test
    src: builtin/tap.lua
  - line: 0
    source: '@./test.lua'
    filename: ./test.lua
    what: main
    namewhat: 
    src: ./test.lua
  planned: 4
  failed: 1
  line: 0
  ...
    # execution error test
    1..2
    ok - checking restart count
    ok - Error task executed
make: *** [Makefile:41: test] Error 1
    # execution error test: end

The full log can be found here.

@ylobankov ylobankov reopened this Dec 3, 2021
@ligurio ligurio changed the title TAP testcase sometimes failed (flaky?) TAP testcase 'simple expires tes' sometimes failed (flaky?) Dec 3, 2021
@ligurio ligurio changed the title TAP testcase 'simple expires tes' sometimes failed (flaky?) TAP testcase 'simple expires test' sometimes failed (flaky?) Dec 3, 2021
@ligurio
Copy link
Member Author

ligurio commented Dec 3, 2021

It is not clear from comment why it is a flaky fail. Flaky test changes status (Pass ⇾ Fail or vice versa) without changes in test environment, system under test and test itself. Integration tests runs on every new Tarantool version, so at least new changes in Tarantool may cause this fail in expirationd.

Yaroslav, is it possible to obtain statistics about number of passed/failed integration tests for expirationd in Tarantool CI?

@Totktonada
Copy link
Member

Got it too on unchanged expirationd master in testing against tarantool 2.4, see 132c854. The last release of tarantool 2.4 was in Oct, 2020.

ArtDu pushed a commit to ArtDu/expirationd that referenced this issue May 10, 2022
Sometimes check for task.expired_tuples_count failed because not all
tuples were archived. With wait_cond() test become more reliable.

Fixes tarantool#90
oleg-jukovec added a commit that referenced this issue Jul 19, 2022
The test used timings with a resolution of 1 second to remove tuples
by expiration time. Sometimes the timings overlapped and an 'extra'
tuple was removed. An 'extra' from the test point of view.

It is possible to extend the timings resolution and fix the problem.

The patch acts in a different way. It changes the input data so as
not to depend on timings. In addition, the test is now faster.

Closes #90
oleg-jukovec added a commit that referenced this issue Jul 20, 2022
The test used timings with a resolution of 1 second to remove tuples
by expiration time. Sometimes the timings overlapped and an 'extra'
tuple was removed. An 'extra' from the test point of view.

It is possible to extend the timings resolution and fix the problem.

The patch acts in a different way. It changes the input data so as
not to depend on timings. In addition, the test is now faster.

Closes #90
oleg-jukovec added a commit that referenced this issue Jul 20, 2022
The test used timings with a resolution of 1 second to remove tuples
by expiration time. Sometimes the timings overlapped and an 'extra'
tuple was removed. An 'extra' from the test point of view.

It is possible to extend the timings resolution and fix the problem.

The patch acts in a different way. It changes the input data so as
not to depend on timings. In addition, the test is now faster.

Closes #90
oleg-jukovec added a commit that referenced this issue Jul 20, 2022
The test used timings with a resolution of 1 second to remove tuples
by expiration time. Sometimes the timings overlapped and an 'extra'
tuple was removed. An 'extra' from the test point of view.

It is possible to extend the timings resolution and fix the problem.

The patch acts in a different way. It changes the input data so as
not to depend on timings. In addition, the test is now faster.

Closes #90
oleg-jukovec added a commit that referenced this issue Aug 4, 2022
Overview

    This release adds a Tarantool Cartridge role for expirationd
    package and improves the default behavior.

Breaking changes

    None.

New features

    Continue a task from a last tuple (#54).

    Decrease tarantool-checks dependency from 3.1 to 2.1 (#124).

    Process a task on a writable space by default (#42).

    Wait until a space or an index is created (#68, #116).

    Tarantool Cartridge role (#107).

Bugfixes

    Fix build and installation of rpm/deb packages (#124).

    Do not restart work fiber if index does not exist (#64).

    Update changelogs for rpm/deb packages.

Testing

    Shuffle tests (#118).

    Fix test_mvcc_vinyl_tx_conflict (#104, #105).

    Fix flaky 'simple expires test' (#90).

Other

    Add GitHub Actions workflow with debug Tarantool build (#102).

    Add GitHub Actions workflow for deploying module packages to S3
    based repositories (#43).
oleg-jukovec added a commit that referenced this issue Aug 4, 2022
Overview

    This release adds a Tarantool Cartridge role for expirationd
    package and improves the default behavior.

Breaking changes

    None.

New features

    Continue a task from a last tuple (#54).

    Decrease tarantool-checks dependency from 3.1 to 2.1 (#124).

    Process a task on a writable space by default (#42).

    Wait until a space or an index is created (#68, #116).

    Tarantool Cartridge role (#107).

Bugfixes

    Fix build and installation of rpm/deb packages (#124).

    Do not restart a work fiber if an index does not exist (#64).

    Update changelogs for rpm/deb packages.

Testing

    Shuffle tests (#118).

    Fix test_mvcc_vinyl_tx_conflict (#104, #105).

    Fix flaky 'simple expires test' (#90).

Other

    Add GitHub Actions workflow with debug Tarantool build (#102).

    Add GitHub Actions workflow for deploying module packages to S3
    based repositories (#43).
oleg-jukovec added a commit that referenced this issue Aug 5, 2022
Overview

    This release adds a Tarantool Cartridge role for expirationd
    package and improves the default behavior.

Breaking changes

    None.

Deprecated

    Obsolete functions: task_stats, kill_task, get_task, get_tasks, run_task,
    show_task_list.

New features

    Continue a task from a last tuple (#54).

    Decrease tarantool-checks dependency from 3.1 to 2.1 (#124).

    Process a task on a writable space by default (#42).

    Wait until a space or an index is created (#68, #116).

    Tarantool Cartridge role (#107).

Bugfixes

    Fix build and installation of rpm/deb packages (#124).

    Do not restart a work fiber if an index does not exist (#64).

    Update changelogs for rpm/deb packages.

Testing

    Shuffle tests (#118).

    Fix test_mvcc_vinyl_tx_conflict (#104, #105).

    Fix flaky 'simple expires test' (#90).

Other

    Add GitHub Actions workflow with debug Tarantool build (#102).

    Add GitHub Actions workflow for deploying module packages to S3
    based repositories (#43).
oleg-jukovec added a commit that referenced this issue Aug 11, 2022
Overview

    This release adds a Tarantool Cartridge role for expirationd
    package and improves the default behavior.

Breaking changes

    None.

Deprecated

    Obsolete functions: task_stats, kill_task, get_task, get_tasks, run_task,
    show_task_list.

New features

    Continue a task from a last tuple (#54).

    Decrease tarantool-checks dependency from 3.1 to 2.1 (#124).

    Process a task on a writable space by default (#42).

    Wait until a space or an index is created (#68, #116).

    Tarantool Cartridge role (#107).

Bugfixes

    Fix build and installation of rpm/deb packages (#124).

    Do not restart a work fiber if an index does not exist (#64).

    Update changelogs for rpm/deb packages.

Testing

    Shuffle tests (#118).

    Fix test_mvcc_vinyl_tx_conflict (#104, #105).

    Fix flaky 'simple expires test' (#90).

Other

    expirationd.start() parameter `space_id` has been renamed to
    `space` (#112).

    Add GitHub Actions workflow with debug Tarantool build (#102).

    Add GitHub Actions workflow for deploying module packages to S3
    based repositories (#43).
oleg-jukovec added a commit that referenced this issue Aug 11, 2022
Overview

    This release adds a Tarantool Cartridge role for expirationd
    package and improves the default behavior.

Breaking changes

    None.

Deprecated

    Obsolete functions: task_stats, kill_task, get_task, get_tasks, run_task,
    show_task_list.

New features

    Continue a task from a last tuple (#54).

    Decrease tarantool-checks dependency from 3.1 to 2.1 (#124).

    Process a task on a writable space by default (#42).

    Wait until a space or an index is created (#68, #116).

    Tarantool Cartridge role (#107).

Bugfixes

    Fix build and installation of rpm/deb packages (#124).

    Do not restart a work fiber if an index does not exist (#64).

    Update changelogs for rpm/deb packages.

Testing

    Shuffle tests (#118).

    Fix test_mvcc_vinyl_tx_conflict (#104, #105).

    Fix flaky 'simple expires test' (#90).

Other

    expirationd.start() parameter `space_id` has been renamed to
    `space` (#112).

    Add GitHub Actions workflow with debug Tarantool build (#102).

    Add GitHub Actions workflow for deploying module packages to S3
    based repositories (#43).
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
3 participants