stephenfewer / grinder

Grinder is a system to automate the fuzzing of web browsers and the management of a large number of crashes.
BSD 3-Clause "New" or "Revised" License
415 stars 131 forks source link

Logger does not log complete logged information #57

Closed hacksysteam closed 9 years ago

hacksysteam commented 9 years ago

Hi Stephen,

I have started getting issues with grinder_logger.dll. When the test cases are small it's working perfectly.

But as my test cases has grown large in size, the logger is not able to log the complete logged information. I see partial information, basically, it's missing the starting part of the logged messages.

Suspect

https://github.com/stephenfewer/grinder/blob/master/node/source/logger/logger.c

dwLogMessageSize = 8192;

I need to dig in and rebuild the logger and check.

pyoor commented 9 years ago

Are you sure this is caused by logger and not by max_allowed_packet set in MySQL? Check your Apache access logs. If it is, you'll see a 400 error when the crash is posted.

hacksysteam commented 9 years ago

Cool pyoor. Seems possible reason. Let me quickly verify and let you know if that's the case. Thanks for pointing out.

hacksysteam commented 9 years ago

Hi pyoor,

You were correct. I increased the max_allowed_packet value and now I'm getting complete log file.

However, let's keep this issue request open until I give final confirmation.

Thanks for prompt reply.

hacksysteam commented 9 years ago

It's seems that max_allowed_packet is not the issue. I checked the XML log file generated by Grinder and it too does not have complete logged information. So, the suspect seems to be grinder_logger.dll

I'm updating the grinder_logger and will post the result.

stephenfewer commented 9 years ago

Hi, the internal buffer used by grinder_logger.dll is supposed to resize itself as needed so hopefully that is not the problem, but let me know if you spot anything. One issue could be that the data to-be written to file has not been flushed to disk at the point a crash occurs (I don't know if windows has a policy to flush pending buffers to disk upon app crash).

A call to FlushFileBuffers( hLog ); on line 212 has been commented out as it introduces a large performance hit. You might want to try un-commenting the call to FlushFileBuffers and see if that helps: https://github.com/stephenfewer/grinder/blob/master/node/source/logger/logger.c#L212

hacksysteam commented 9 years ago

Hi Stephen,

I guess the issue lies some where else. I have conducted a test to see if the grinder_logger.dll has the issue.

What I did is removed the reload(window.location) part and finished the test with logger.finished.

Then I looked into the XML file created and I see that it does not contain the first part of the logged messages.

hacksysteam commented 9 years ago

One more thing to note. After some tests I found that this issue is only with Internet Explorer. I'm doing some more tests.

hacksysteam commented 9 years ago

It's happening with FireFox too if the test cases are large.

hacksysteam commented 9 years ago

Hi Stephen,

I managed to fix the issue. I'm still doing some tests to see if that's the issue.

This was not grinder issue, instead, this was some issues with my fuzzer itself.

So, let's keep this issue ticket open for a while and I'll update the same.

Thank you very much.

stephenfewer commented 9 years ago

Awesome, glad to hear you made some progress on resolving this!

hacksysteam commented 9 years ago

Hi Stephen,

I'm closing this issue as the issue was with my fuzzer.

The solution that worked was to set logger to null after logger.finished();

So, here is what I did.

logger.finished(); logger = null;

Thanks.