Ticket #17 (accepted Problem)

Opened 3 years ago

Last modified 3 years ago

MemoryAllocation() core dumps at termination

Reported by: robin Owned by: robin
Priority: Normal Milestone:
Component: Bro Version: branches-robin-work
Keywords: Cc:

Description

In rare situations, the final profiling_logger->Log(); in terminate_bro core-dumps in some object's MemoryAllocation(), liklely because that object has already been deleted.

Not clear whether this is still a problem after the recent round of ref-counting fixes but I've disabled the final Log() for now. Need to recheck.

Change History

comment:1 Changed 3 years ago by robin

  • Status changed from new to accepted

comment:2 Changed 3 years ago by bernhard

I am afraid I can still easily reproduce the problem, using both release 1.4 and the current version (r6487) of Robin's work branch. Apparently the amount of data processed is not crucial in triggering this bug, so the simple recipe to reproduce it is to take a large trace, chop it in many little pieces and run bro on every single one of them. In my particular case this results in 22 segfaults out of 140 snippets of 40 to 400 MB each when run with brolite.bro and profiling.bro, an 2 segfaults if run with only profiling.bro. Note that running the whole trace at a single time not necessarily results in a segfault. For repeatability I use --load-seeds. In case you have questions just write email.

comment:3 Changed 3 years ago by robin

Even though it might not fix the problem completely, the patch in #99 helps for me so I think we should apply it until we find the real cause.

Note: See TracTickets for help on using tickets.