Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-1983

Append to zookeeper.out (not overwrite) to support logrotation

    XMLWordPrintableJSON

Details

    • Bug
    • Status: In Progress
    • Major
    • Resolution: Unresolved
    • 3.3.5, 3.3.6, 3.4.6
    • None
    • server
    • None
    • CentOS 5.x (and probably any Linux distribution for that matter)

    Description

      Currently zkServer.sh will redirect output to zookeeper.out using a simple shell redirect.

      When logrotate (and similar tools) are used to rotate the zookeeper.out file with the 'copytruncate' semantics (copy the file, truncate it to zero bytes) the next write results in a sparse file with the write at the offset of the last file. Effectively the log file is now full a null bytes and it is hard to read/use the file (and the rotated copies).

      Even worse, the result is zookeeper.out file only gets "larger" (though sparse) and after a while on a chatty system it takes significant CPU resources to compress the file (which is all nulls!)

      The simple fix is to append to the file (>>) instead of a simple redirection (>)

      This issue was found in a 3.3.5 production system, however code in trunk has the same issue.

      Attachments

        1. ZK1983.patch
          1 kB
          Shyamal Prasad
        2. ZOOKEEPER-1983.patch
          1 kB
          Shyamal Prasad

        Activity

          People

            shyamal Shyamal Prasad
            shyamal Shyamal Prasad
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: