Skip to content

[FUZZING] Avoid %YDB-E-ZGBLDIRACC messages from flooding the syslog during fuzz testing

Narayanan Iyer requested to merge nars1/YDB:fuzzing into master

Background

  • During fuzz testing, we noticed that the syslog had millions of lines of the following form.

    YDB-YOTTADB[25513]: %YDB-I-TEXT, %YDB-E-ZGBLDIRACC, Cannot access global directory YDB/fuzzing/env/Follower2/mumps.gld.  Cannot continue. -- generated from 0x00007F5E481EEC0B.
  • This made the syslog really huge in just a short amount of fuzz testing and filled up the filesystem that housed the syslog file (usually /var/log/syslog).

Issue

  • As part of GTM-7759 in GT.M V6.3-012 (a release that was recently merged into the YottaDB master branch), various error messages were changed so anytime that particular error occurs, a syslog message is also sent.

  • The ZGBLDIRACC message was one of those messages.

  • During fuzz testing, we run without a global directory and/or database file at this point. So any database reference (which there are lots of) that happens during fuzz testing will issue a ZGBLDIRACC message that gets also logged in the syslog. And with time this will lead to a huge syslog file and a full filesystem.

Fix

  • sr_unix/gtm_putmsg_list.c is modified to set the mustlog variable to FALSE that way we do not log any message like ZGBLDIRACC to the syslog during fuzz testing. This is achieved by creating a new patch file fuzzing/gtm_putmsg_list.c.patch.

Merge request reports

Loading