Possibly related, there seem to be issues when dictionaries grow large.
event zeek_init()
{
local xs: table[count] of count;
local i = 0;
while ( i < 100000000 )
{
xs[i] = i;
++i;
}
}
For me eventually this fails in a Debug build with
32786296
32786297
32786298
32786299
Thread 1 "zeek" received signal SIGSEGV, Segmentation fault.
zeek::detail::DictEntry<zeek::TableEntryVal>::Empty (this=0x8000003c0) at /root/src/zeek/src/include/zeek/Dict.h:130
130 bool Empty() const { return distance == TOO_FAR_TO_REACH; }
Interestingly, memory usage seems to go up slowly at first, but quickly shoots up towards the end.
#0 zeek::detail::DictEntry<zeek::TableEntryVal>::Empty (this=0x8000003c0) at /root/src/zeek/src/include/zeek/Dict.h:130
No locals.
#1 0x0000555557e4a762 in zeek::Dictionary<zeek::TableEntryVal>::Remap (this=0x555559df80d0) at /root/src/zeek/src/include/zeek/Dict.h:1370
left = 16
#2 0x0000555557e4a30d in zeek::Dictionary<zeek::TableEntryVal>::Insert (this=0x555559df80d0, key=0x5555f6e62e20, key_size=8, hash=12684133978465182291, val=0x5555f6e62d80, copy_key=false, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/include/zeek/Dict.h:647
v = 0x0
insert_position = 18220270
insert_distance = 31
position = -1
#3 0x0000555557e31556 in zeek::Dictionary<zeek::TableEntryVal>::Insert (this=0x555559df80d0, key=0x55555a529750, val=0x5555f6e62d80, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/include/zeek/Dict.h:549
No locals.
#4 0x0000555557e1d942 in zeek::TableVal::Assign (this=0x555559df8b40, index=..., k=std::unique_ptr<zeek::detail::HashKey> = {...}, new_val=..., broker_forward=true, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/Val.cc:1834
is_set = false
new_entry_val = 0x5555f6e62d80
k_copy = {key_u = {b = 240, i = -21008, bi = 140737488334320, bu = 140737488334320, u32 = 4294946288, d = 6.9533558067970712e-310, p = 0x7fffffffadf0}, key = 0x5555f6e62dd0 "{G\364\001", hash = 12684133978465182291, key_size = 8, is_our_dynamic = true, write_size = 8, read_size = 0}
old_entry_val = 0x5555f6e62df0
#5 0x0000555557e1a6ce in zeek::TableVal::Assign (this=0x555559df8b40, index=..., new_val=..., broker_forward=true, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/Val.cc:1822
k = std::unique_ptr<zeek::detail::HashKey> = {get() = 0x0}
#6 0x0000555557c995ec in zeek::detail::assign_to_index (v1=..., v2=..., v3=..., iterators_invalidated=@0x7fffffffb387: false) at /root/src/zeek/src/Expr.cc:320
v_extra = {ptr_ = 0x5555f6e62df0}
#7 0x0000555557c98cd0 in zeek::detail::Expr::AssignToIndex (this=0x55555a2956d0, v1=..., v2=..., v3=...) at /root/src/zeek/src/Expr.cc:248
iterators_invalidated = false
error_msg = 0x5555f6e62df0 "p\245sXUU"
#8 0x0000555557cac4f9 in zeek::detail::IndexExpr::Assign (this=0x55555a2956d0, f=0x7fffffffbb40, v=...) at /root/src/zeek/src/Expr.cc:2784
v1 = {ptr_ = 0x555559df8b40}
v2 = {ptr_ = 0x555559df7db0}
#9 0x0000555557ca8317 in zeek::detail::RefExpr::Assign (this=0x55555a295850, f=0x7fffffffbb40, v=...) at /root/src/zeek/src/Expr.cc:2267
No locals.
#10 0x0000555557ca99e5 in zeek::detail::AssignExpr::Eval (this=0x55555a295800, f=0x7fffffffbb40) at /root/src/zeek/src/Expr.cc:2442
v = {ptr_ = 0x5555f6e62df0}
#11 0x0000555557dcd5f5 in zeek::detail::ExprStmt::Exec (this=0x55555a295930, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:380
v = {ptr_ = 0x5555576f44d9 <_ZN9__gnu_cxxeqIPN4zeek12IntrusivePtrINS1_6detail4StmtEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_QrqXeqcldtfp_4baseEcldtfp0_4baseERSt14convertible_toIbEE+41>}
#12 0x0000555557dd466d in zeek::detail::StmtList::Exec (this=0x55555a295060, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1426
stmt = 0x55555a295930
result = {ptr_ = 0x0}
stmt_ptr = @0x55555a29be98: {ptr_ = 0x55555a295930}
__range2 = std::vector of length 3, capacity 4 = {{ptr_ = 0x55555a295350}, {ptr_ = 0x55555a295930}, {ptr_ = 0x55555a295b60}}
__begin2 = {ptr_ = 0x55555a295930}
__end2 = {ptr_ = 0x7963696c6f}
#13 0x0000555557dd15fd in zeek::detail::WhileStmt::Exec (this=0x55555a295c10, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1000
cond = {ptr_ = 0x55555888def0}
rval = {ptr_ = 0x0}
#14 0x0000555557dd466d in zeek::detail::StmtList::Exec (this=0x5555595427a0, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1426
stmt = 0x55555a295c10
result = {ptr_ = 0x0}
stmt_ptr = @0x555559541da0: {ptr_ = 0x55555a295c10}
__range2 = std::vector of length 3, capacity 4 = {{ptr_ = 0x555559542620}, {ptr_ = 0x55555a294e10}, {ptr_ = 0x55555a295c10}}
__begin2 = {ptr_ = 0x55555a295c10}
__end2 = {ptr_ = 0x0}
#15 0x0000555557dd466d in zeek::detail::StmtList::Exec (this=0x55555a295cf0, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1426
stmt = 0x5555595427a0
result = {ptr_ = 0x0}
stmt_ptr = @0x55555a295e78: {ptr_ = 0x5555595427a0}
Quit
#0 zeek::detail::DictEntry<zeek::TableEntryVal>::Empty (this=0x8000003c0) at /root/src/zeek/src/include/zeek/Dict.h:130
No locals.
#1 0x0000555557e4a762 in zeek::Dictionary<zeek::TableEntryVal>::Remap (this=0x555559df80d0) at /root/src/zeek/src/include/zeek/Dict.h:1370
left = 16
#2 0x0000555557e4a30d in zeek::Dictionary<zeek::TableEntryVal>::Insert (this=0x555559df80d0, key=0x5555f6e62e20, key_size=8, hash=12684133978465182291, val=0x5555f6e62d80, copy_key=false, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/include/zeek/Dict.h:647
v = 0x0
insert_position = 18220270
insert_distance = 31
position = -1
#3 0x0000555557e31556 in zeek::Dictionary<zeek::TableEntryVal>::Insert (this=0x555559df80d0, key=0x55555a529750, val=0x5555f6e62d80, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/include/zeek/Dict.h:549
No locals.
#4 0x0000555557e1d942 in zeek::TableVal::Assign (this=0x555559df8b40, index=..., k=std::unique_ptr<zeek::detail::HashKey> = {...}, new_val=..., broker_forward=true, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/Val.cc:1834
is_set = false
new_entry_val = 0x5555f6e62d80
k_copy = {key_u = {b = 240, i = -21008, bi = 140737488334320, bu = 140737488334320, u32 = 4294946288, d = 6.9533558067970712e-310, p = 0x7fffffffadf0}, key = 0x5555f6e62dd0 "{G\364\001", hash = 12684133978465182291, key_size = 8, is_our_dynamic = true, write_size = 8, read_size = 0}
old_entry_val = 0x5555f6e62df0
#5 0x0000555557e1a6ce in zeek::TableVal::Assign (this=0x555559df8b40, index=..., new_val=..., broker_forward=true, iterators_invalidated=0x7fffffffb387) at /root/src/zeek/src/Val.cc:1822
k = std::unique_ptr<zeek::detail::HashKey> = {get() = 0x0}
#6 0x0000555557c995ec in zeek::detail::assign_to_index (v1=..., v2=..., v3=..., iterators_invalidated=@0x7fffffffb387: false) at /root/src/zeek/src/Expr.cc:320
v_extra = {ptr_ = 0x5555f6e62df0}
#7 0x0000555557c98cd0 in zeek::detail::Expr::AssignToIndex (this=0x55555a2956d0, v1=..., v2=..., v3=...) at /root/src/zeek/src/Expr.cc:248
iterators_invalidated = false
error_msg = 0x5555f6e62df0 "p\245sXUU"
#8 0x0000555557cac4f9 in zeek::detail::IndexExpr::Assign (this=0x55555a2956d0, f=0x7fffffffbb40, v=...) at /root/src/zeek/src/Expr.cc:2784
v1 = {ptr_ = 0x555559df8b40}
v2 = {ptr_ = 0x555559df7db0}
#9 0x0000555557ca8317 in zeek::detail::RefExpr::Assign (this=0x55555a295850, f=0x7fffffffbb40, v=...) at /root/src/zeek/src/Expr.cc:2267
No locals.
#10 0x0000555557ca99e5 in zeek::detail::AssignExpr::Eval (this=0x55555a295800, f=0x7fffffffbb40) at /root/src/zeek/src/Expr.cc:2442
v = {ptr_ = 0x5555f6e62df0}
#11 0x0000555557dcd5f5 in zeek::detail::ExprStmt::Exec (this=0x55555a295930, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:380
v = {ptr_ = 0x5555576f44d9 <_ZN9__gnu_cxxeqIPN4zeek12IntrusivePtrINS1_6detail4StmtEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_QrqXeqcldtfp_4baseEcldtfp0_4baseERSt14convertible_toIbEE+41>}
#12 0x0000555557dd466d in zeek::detail::StmtList::Exec (this=0x55555a295060, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1426
stmt = 0x55555a295930
result = {ptr_ = 0x0}
stmt_ptr = @0x55555a29be98: {ptr_ = 0x55555a295930}
__range2 = std::vector of length 3, capacity 4 = {{ptr_ = 0x55555a295350}, {ptr_ = 0x55555a295930}, {ptr_ = 0x55555a295b60}}
__begin2 = {ptr_ = 0x55555a295930}
__end2 = {ptr_ = 0x7963696c6f}
#13 0x0000555557dd15fd in zeek::detail::WhileStmt::Exec (this=0x55555a295c10, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1000
cond = {ptr_ = 0x55555888def0}
rval = {ptr_ = 0x0}
#14 0x0000555557dd466d in zeek::detail::StmtList::Exec (this=0x5555595427a0, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1426
stmt = 0x55555a295c10
result = {ptr_ = 0x0}
stmt_ptr = @0x555559541da0: {ptr_ = 0x55555a295c10}
__range2 = std::vector of length 3, capacity 4 = {{ptr_ = 0x555559542620}, {ptr_ = 0x55555a294e10}, {ptr_ = 0x55555a295c10}}
__begin2 = {ptr_ = 0x55555a295c10}
__end2 = {ptr_ = 0x0}
#15 0x0000555557dd466d in zeek::detail::StmtList::Exec (this=0x55555a295cf0, f=0x7fffffffbb40, flow=@0x7fffffffba5f: zeek::detail::FLOW_NEXT) at /root/src/zeek/src/Stmt.cc:1426
stmt = 0x5555595427a0
result = {ptr_ = 0x0}
stmt_ptr = @0x55555a295e78: {ptr_ = 0x5555595427a0}
Quit
Continuing.
Couldn't get registers: No such process.
[Thread 0x7fffe1ffb6c0 (LWP 11554) exited]
[Thread 0x7fffe27fc6c0 (LWP 11553) exited]
[Thread 0x7fffe2ffd6c0 (LWP 11552) exited]
[Thread 0x7fffe37fe6c0 (LWP 11551) exited]
[Thread 0x7fffe3fff6c0 (LWP 11550) exited]
[Thread 0x7ffff08f66c0 (LWP 11549) exited]
[Thread 0x7ffff10f76c0 (LWP 11548) exited]
[Thread 0x7ffff18f86c0 (LWP 11547) exited]
[Thread 0x7ffff29ff6c0 (LWP 11546) exited]
Quit
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
Quit
quit