rixed / ramen

A stream processing language and compiler for small-scale monitoring
Other
14 stars 4 forks source link

An assert fail in ringbuf lib sometimes #1259

Open darlentar opened 4 years ago

darlentar commented 4 years ago
09h41m08:supervisor: Must execute /tmp/ramen_test.7782/execompserver/cache/v87/a9911f224e5590b38d98929c97416e30_020591ffaf48276ddfc724b43446c39e.x for whole worker with debug:false, report_period:30.000000 seconds, cwd:/home/damien/ramenprg, worker_signature:"79c570ce55832411fe23e7f7c7bbb92a", info_signature:"a9911f224e5590b38d98929c97416e30", parents:[], children:[damien-OptiPlex-7070:test_intparsing12/prod], params:, function test_intparsing12/csv
09h41m08:supervisor: Must execute /tmp/ramen_test.7782/execompserver/cache/v87/a9911f224e5590b38d98929c97416e30_020591ffaf48276ddfc724b43446c39e.x for whole worker with debug:false, report_period:30.000000 seconds, cwd:/home/damien/ramenprg, worker_signature:"41bb513accf10080485269c92c779c0f", info_signature:"a9911f224e5590b38d98929c97416e30", parents:[damien-OptiPlex-7070:test_intparsing12/csv], children:[], params:, function test_intparsing12/prod
09h41m08:confserver:(W) Cannot delete non existent key sites/damien-OptiPlex-7070/workers/test_intparsing12/csv/instances/79c570ce55832411fe23e7f7c7bbb92a/last_killed
09h41m08:confserver:(W) Cannot delete non existent key sites/damien-OptiPlex-7070/workers/test_intparsing12/prod/instances/41bb513accf10080485269c92c779c0f/last_killed
09h41m08: Waiting until all tests are finished
09h41m08:confserver: User _worker_damien-OptiPlex-7070/test_intparsing12/csv authenticated out of user anonymous on socket 000|AGuLRWw
09h41m08:confserver: Setting timeout to 5m for socket 000|AGuLRWw
09h41m08:confserver: User _worker_damien-OptiPlex-7070/test_intparsing12/prod authenticated out of user anonymous on socket 000|AGuLRW0
09h41m08:confserver: Setting timeout to 5m for socket 000|AGuLRW0
09h41m08: test_intparsing12/csv: : Start outputting to /tmp/ramen_test.7782/workers/ringbufs/v11/test_intparsing12/prod/e1e826a608885b5a5e993b5f72b1002d/all.r
09h41m08: test_intparsing12/csv: : Has now 1 outputers (had 0)
09h41m08: test_intparsing12/prod: : Start outputting to /tmp/ramen_test.7782/tests/test_intparsing12/prod/output.b
09h41m08: test_intparsing12/prod: : Has now 1 outputers (had 0)
09h41m08: test_intparsing12/csv: : 274 files already present in . when starting inotifier
num_entries = 0, tx->next = 596360, cons_head = 596360, tx->seen = 596356
2020-09-25 09:41:16: pid=7839, rbf@0x7f02eb42e000, fname=/tmp/ramen_test.7782/workers/ringbufs/v11/test_intparsing12/prod/e1e826a608885b5a5e993b5f72b1002d/all.r, cons=[596360;596360], prod=[596360;596360], free=999999 words: Assertion failed: ringbuf_file_num_entries(rbf, tx->next, rbf->cons_head) > 0, file "src/ringbuf/ringbuf.c", line 695, function ringbuf_enqueue_commit.
09h41m17:supervisor:(E) Worker test_intparsing12/csv (pid 7839) killed by signal ABORT.
09h41m17:supervisor: Will quarantine until 2020-09-25T09:41:18
09h41m19:supervisor: Must execute /tmp/ramen_test.7782/execompserver/cache/v87/a9911f224e5590b38d98929c97416e30_020591ffaf48276ddfc724b43446c39e.x for whole worker with debug:false, report_period:30.000000 seconds, cwd:/home/damien/ramenprg, worker_signature:"79c570ce55832411fe23e7f7c7bbb92a", info_signature:"a9911f224e5590b38d98929c97416e30", parents:[], children:[damien-OptiPlex-7070:test_intparsing12/prod], params:, function test_intparsing12/csv
09h41m19:confserver:(W) Cannot delete non existent key sites/damien-OptiPlex-7070/workers/test_intparsing12/csv/instances/79c570ce55832411fe23e7f7c7bbb92a/last_killed
09h41m29:(E) Failure: Enumerated 0 tuple from test_intparsing12/prod but could not find this tuple: 
  { sum_ => 12000012 }
rixed commented 4 years ago

Can't you remember anything about the context that could be useful here?

rixed commented 4 years ago

Worker test_intparsing12/csv (pid 7839) killed by signal ABORT.

What does gdb have to say about the coredump of this worker?

rixed commented 4 years ago

Ideally, any step to repro it?

darlentar commented 4 years ago

Used command: NDEBUG=1 make src/ramen -j32 && src/ramen test ~/ramenprg/test_intparsing12.test

with the following files:

± % cat ~/ramenprg/test_intparsing12.ramen                                                                                                                                                                                                                                                                                                                         !10886
define csv as
  READ FROM file "test_intparsing12.csv" as CSV (
    s u64);

define prod as
  from csv
  select
    sum globally s as res,
    sum globally 1 as sum_
  commit after out.sum_ > 12000011;

± % cat ~/ramenprg/test_intparsing12.test                                                                                                                                                                                                                                                                                                                          
{
  programs = [
    { src = "test_intparsing12.ramen" };
  ];
  outputs = {
    "test_intparsing12/prod" => {
      present = [
        { "sum_" => "12000012"};
     ];
    }
 }
}
# 12000012 lines with 1
± % wc -l ~/ramenprg/test_intparsing12.csv
12000012 /home/damien/ramenprg/test_intparsing12.csv