mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 18:48:20 +00:00
fix another memory lead (when updating tables).
Adjust twotables testcase - now it is faster. Shorten the output -- because of threading, the results did not always come out in the same order (it depends on which thread manages to sneak in the results into the queue earlier).
This commit is contained in:
parent
b37f9e38f6
commit
f4864c69af
3 changed files with 41 additions and 214 deletions
|
@ -1123,6 +1123,7 @@ void Manager::EndCurrentSend(ReaderFrontend* reader)
|
||||||
val = stream->tab->Lookup(idx);
|
val = stream->tab->Lookup(idx);
|
||||||
assert(val != 0);
|
assert(val != 0);
|
||||||
predidx = ListValToRecordVal(idx, stream->itype, &startpos);
|
predidx = ListValToRecordVal(idx, stream->itype, &startpos);
|
||||||
|
Unref(idx);
|
||||||
ev = new EnumVal(BifEnum::Input::EVENT_REMOVED, BifType::Enum::Input::Event);
|
ev = new EnumVal(BifEnum::Input::EVENT_REMOVED, BifType::Enum::Input::Event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1594,7 +1595,7 @@ RecordVal* Manager::ListValToRecordVal(ListVal* list, RecordType *request_type,
|
||||||
(*position)++;
|
(*position)++;
|
||||||
}
|
}
|
||||||
|
|
||||||
rec->Assign(i, fieldVal);
|
rec->Assign(i, fieldVal->Ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
return rec;
|
return rec;
|
||||||
|
|
|
@ -29,68 +29,6 @@ BB
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
}, vc=[10, 20, 30], ve=[]]
|
||||||
============EVENT============
|
============EVENT============
|
||||||
Description
|
|
||||||
[source=../input.log, reader=Input::READER_ASCII, mode=Input::REREAD, name=ssh, destination={
|
|
||||||
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]],
|
|
||||||
[-42] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
|
||||||
}, idx=<no value description>, val=<no value description>, want_record=T, ev=line
|
|
||||||
{
|
|
||||||
print A::outfile, ============EVENT============;
|
|
||||||
print A::outfile, Description;
|
|
||||||
print A::outfile, A::description;
|
|
||||||
print A::outfile, Type;
|
|
||||||
print A::outfile, A::tpe;
|
|
||||||
print A::outfile, Left;
|
|
||||||
print A::outfile, A::left;
|
|
||||||
print A::outfile, Right;
|
|
||||||
print A::outfile, A::right;
|
|
||||||
}, pred=anonymous-function
|
|
||||||
{
|
|
||||||
print A::outfile, ============PREDICATE============;
|
|
||||||
print A::outfile, A::typ;
|
|
||||||
print A::outfile, A::left;
|
|
||||||
print A::outfile, A::right;
|
|
||||||
return (T);
|
|
||||||
}]
|
|
||||||
Type
|
|
||||||
Input::EVENT_NEW
|
|
||||||
Left
|
|
||||||
[i=-42]
|
|
||||||
Right
|
|
||||||
[b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
|
||||||
==========SERVERS============
|
==========SERVERS============
|
||||||
{
|
{
|
||||||
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
||||||
|
@ -119,68 +57,6 @@ BB
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
}, vc=[10, 20, 30], ve=[]]
|
||||||
}
|
}
|
||||||
============EVENT============
|
============EVENT============
|
||||||
Description
|
|
||||||
[source=../input2.log, reader=Input::READER_ASCII, mode=Input::REREAD, name=ssh2, destination={
|
|
||||||
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]],
|
|
||||||
[-42] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
|
||||||
}, idx=<no value description>, val=<no value description>, want_record=T, ev=line
|
|
||||||
{
|
|
||||||
print A::outfile, ============EVENT============;
|
|
||||||
print A::outfile, Description;
|
|
||||||
print A::outfile, A::description;
|
|
||||||
print A::outfile, Type;
|
|
||||||
print A::outfile, A::tpe;
|
|
||||||
print A::outfile, Left;
|
|
||||||
print A::outfile, A::left;
|
|
||||||
print A::outfile, Right;
|
|
||||||
print A::outfile, A::right;
|
|
||||||
}, pred=anonymous-function
|
|
||||||
{
|
|
||||||
print A::outfile, ============PREDICATE 2============;
|
|
||||||
print A::outfile, A::typ;
|
|
||||||
print A::outfile, A::left;
|
|
||||||
print A::outfile, A::right;
|
|
||||||
return (T);
|
|
||||||
}]
|
|
||||||
Type
|
|
||||||
Input::EVENT_NEW
|
|
||||||
Left
|
|
||||||
[i=-43]
|
|
||||||
Right
|
|
||||||
[b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
|
||||||
==========SERVERS============
|
==========SERVERS============
|
||||||
{
|
{
|
||||||
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
||||||
|
@ -239,87 +115,7 @@ BB
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
}, vc=[10, 20, 30], ve=[]]
|
||||||
============EVENT============
|
============EVENT============
|
||||||
Description
|
|
||||||
[source=../input.log, reader=Input::READER_ASCII, mode=Input::REREAD, name=ssh, destination={
|
|
||||||
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]],
|
|
||||||
[-44] = [b=F, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
|
||||||
}, idx=<no value description>, val=<no value description>, want_record=T, ev=line
|
|
||||||
{
|
|
||||||
print A::outfile, ============EVENT============;
|
|
||||||
print A::outfile, Description;
|
|
||||||
print A::outfile, A::description;
|
|
||||||
print A::outfile, Type;
|
|
||||||
print A::outfile, A::tpe;
|
|
||||||
print A::outfile, Left;
|
|
||||||
print A::outfile, A::left;
|
|
||||||
print A::outfile, Right;
|
|
||||||
print A::outfile, A::right;
|
|
||||||
}, pred=anonymous-function
|
|
||||||
{
|
|
||||||
print A::outfile, ============PREDICATE============;
|
|
||||||
print A::outfile, A::typ;
|
|
||||||
print A::outfile, A::left;
|
|
||||||
print A::outfile, A::right;
|
|
||||||
return (T);
|
|
||||||
}]
|
|
||||||
Type
|
|
||||||
Input::EVENT_NEW
|
|
||||||
Left
|
|
||||||
[i=-44]
|
|
||||||
Right
|
|
||||||
[b=F, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
|
||||||
============EVENT============
|
============EVENT============
|
||||||
Description
|
|
||||||
Input::EVENT_REMOVED
|
|
||||||
Type
|
|
||||||
[i=-42]
|
|
||||||
Left
|
|
||||||
[b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
}, ss={
|
|
||||||
CC,
|
|
||||||
AA,
|
|
||||||
BB
|
|
||||||
}, se={
|
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
|
||||||
Right
|
|
||||||
==========SERVERS============
|
==========SERVERS============
|
||||||
{
|
{
|
||||||
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
||||||
|
@ -347,3 +143,30 @@ BB
|
||||||
|
|
||||||
}, vc=[10, 20, 30], ve=[]]
|
}, vc=[10, 20, 30], ve=[]]
|
||||||
}
|
}
|
||||||
|
done
|
||||||
|
{
|
||||||
|
[-43] = [b=T, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
1,
|
||||||
|
3
|
||||||
|
}, ss={
|
||||||
|
CC,
|
||||||
|
AA,
|
||||||
|
BB
|
||||||
|
}, se={
|
||||||
|
|
||||||
|
}, vc=[10, 20, 30], ve=[]],
|
||||||
|
[-44] = [b=F, e=SSH::LOG, c=21, p=123/unknown, sn=10.0.0.0/24, a=1.2.3.4, d=3.14, t=1315801931.273616, iv=100.0, s=hurz, sc={
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
1,
|
||||||
|
3
|
||||||
|
}, ss={
|
||||||
|
CC,
|
||||||
|
AA,
|
||||||
|
BB
|
||||||
|
}, se={
|
||||||
|
|
||||||
|
}, vc=[10, 20, 30], ve=[]]
|
||||||
|
}
|
||||||
|
|
|
@ -64,14 +64,14 @@ global try: count;
|
||||||
|
|
||||||
event line(description: Input::TableDescription, tpe: Input::Event, left: Idx, right: Val) {
|
event line(description: Input::TableDescription, tpe: Input::Event, left: Idx, right: Val) {
|
||||||
print outfile, "============EVENT============";
|
print outfile, "============EVENT============";
|
||||||
print outfile, "Description";
|
# print outfile, "Description";
|
||||||
print outfile, description;
|
# print outfile, description;
|
||||||
print outfile, "Type";
|
# print outfile, "Type";
|
||||||
print outfile, tpe;
|
# print outfile, tpe;
|
||||||
print outfile, "Left";
|
# print outfile, "Left";
|
||||||
print outfile, left;
|
# print outfile, left;
|
||||||
print outfile, "Right";
|
# print outfile, "Right";
|
||||||
print outfile, right;
|
# print outfile, right;
|
||||||
}
|
}
|
||||||
|
|
||||||
event bro_init()
|
event bro_init()
|
||||||
|
@ -105,9 +105,12 @@ event Input::update_finished(name: string, source: string) {
|
||||||
print outfile, servers;
|
print outfile, servers;
|
||||||
|
|
||||||
try = try + 1;
|
try = try + 1;
|
||||||
if ( try == 5 ) {
|
if ( try == 3 ) {
|
||||||
print outfile, "done";
|
print outfile, "done";
|
||||||
|
print outfile, servers;
|
||||||
close(outfile);
|
close(outfile);
|
||||||
Input::remove("input");
|
Input::remove("input");
|
||||||
|
Input::remove("input2");
|
||||||
|
terminate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue