Parallel BZIP2 Changelog

New in version 1.1.6

November 2nd, 2011
  • Fixed bug - deadlock due to unsynchronized broadcasts (bug #876686)
  • Prevent deletion of input files on error (bug #874543)
  • Document how to compress/decompress from standard input (bug #820525)
  • Added more detailed kernel error messages (bug #874605)
  • Fixes for error handling in muliti-file processing (bug #883782)

New in version 1.1.5 (July 19th, 2011)

  • This version fixes excessive output permissions while compress/decompress is in progress.
  • It now emulates the same behaviour as bzip2.

New in version 1.1.4 (April 27th, 2011)

  • Fixed hang on decompress with --ignore-trailing-garbage=1 when producer is interrupted on trailing garbage (bug #762464)
  • Added example to help for decompression piped to tar (bug #746806)
  • Fixed typo in Trailing Garbage printed message (bug #746799)

New in version 1.1.3 (March 29th, 2011)

  • Fixed hang on decompress with --ignore-trailing-garbage=1 and higher numCPU (e.g. > 2) (bug #740502)
  • Print trailing garbage errors even when in quiet mode (bug #743635)
  • Default extension on decompress of .tbz2 changed to .tar for bzip2 compatibility (bug #743639)

New in version 1.1.2 (February 21st, 2011)

  • Fix directdecompress segfault when destination file can't be opened (e.g. read-only) (bug #717852)
  • Implemented --ignore-trailing-garbage feature (bug #594868)
  • Fixed hang on decompress of some truncated archives (bug #590225)
  • Pulled an error check out of normal logic block for clarity
  • Debug print added after BZ2_bzDecompress to track it's return code.
  • A debug print fixed in queue::remove
  • Increased max memory usage limit from 1GB to 2GB
  • If no -m switch given on command line, default max memory limit will now automatically increase from 100 MB to minimum amount of memory required to support the number of CPUs requested
  • Improved performance when output buffer is full
  • Fixed bug which caused hang while decompressing prematurely truncated bzip2 stream
  • Consumer_decompress throttling modified to prevent potential deadlock/infinite loop in certain situations (Thanks to Laszlo Ersek for finding and helping track down the cause of this bug)
  • Fixed deadlock bug and performance issue when consumer working with long bzip2 sequences (Thanks to Tanguy Fautre for finding)
  • Fixed error message for block size range (max size was wrong)
  • Moved #include from pbzip2.cpp to pbzip2.h to fix OS/2 compiler issue

New in version 1.1.0 (March 15th, 2010)

  • Added support for multi-threaded decompression using STDIN/pipes
  • Added code to support throttling compression to prevent memory exhaustion with slow output pipe
  • Added -m switch to specify amount of max memory usage before throttling starts (default 100MB)
  • Fixed bug that did not allow command line parameters to be used when compressing data from stdin
  • Added long options to man page and -h output
  • Added --loadavg, --read long options
  • Added support for CPU detection on Win32
  • Major improvements to protection of shared variables, error and signal handling, program termination
  • Added -S switch for thread stack size customization on Solaris (needs USE_STACKSIZE_CUSTOMIZATION defined when compiling)
  • Fixed command line parsing bug for -b, -p, -m switches
  • Fixed infinite loop on when fileWriter fails to create output file at start
  • Fixed bug that deleted input filename (with .bz2 extension for compression and without .bz2 extension for decompression) when a user interrupts process with CTRL-C while outputting to STDOUT
  • Fixed bug where 0 byte files were not processed properly when data input from STDIN
  • Ignores fwrite return and passes chown errors in writeFileMetaData if effective uid root
  • OutputBuffer usage redesigned as fixed-size circular buffer
  • Lots of minor bugs fixed (see AUTHORS or pbzip2.cpp for full details)
  • Special thanks to Javor Nikolov for providing the majority of contributions to this release and a significant amount of testing

New in version 1.0.5 (January 12th, 2009)

  • This release properly complains about trying to read or write compressed data to the terminal, and exits.
  • It further fixes the CPU detection crash, and the Makefile has been updated to force deletion when cleaning.

New in version 1.0.4 (December 22nd, 2008)

  • Support was added for using pbzip2 with tar and for all remaining bzip2 command line options, so pbzip2 can be used as a drop-in replacement for bzip2.
  • A bug was fixed that would cause pbzip2 to crash if detection of the number of processors failed.
  • Compiling with uclibc is now supported.

New in version 1.0.3 (October 31st, 2008)

  • The ability to compress, decompress, and test data using stdin and pipes is now supported.
  • Support was also added to directly decompress files without using threads when files are small, the system only has 1 CPU, or if the .bz2 file contains 1 bzip2 stream.
  • This version can now compress 0 byte files like bzip2.
  • Support for pbzcat symlink to automatically specify a decompression mode to stdout, just like bzcat, is now included.