Skip to content

@gboudreau gboudreau released this May 25, 2020 · 1 commit to master since this release

New features

  • New command: greyhole --mv (beta; requires more testing) - Allows you to move data from one Greyhole share to another without copying the data through the Samba shares
  • Detect and fix bitrot/silent errors; requires a new cron job; see near the end of USAGE file Fixes #199
  • New command: greyhole --print-fsck : Print the fsck report for the last completed fsck task. This will print the same content that is sent by email when the --email-report option is used.
  • Refactored FSCK report code; new layout for the 'all shares' fsck that runs weekly


  • greyhole-dfree (used by Samba to calculate free space) should take into account the num_copies option of the share; i.e. real free space = 1 GB, num_copies = 4 => available free space on Samba share = 250 MB; also added -h parameter to greyhole-dfree executable Fixes #156
  • Save recent log entries in DB; use that in greyhole --status Fixes #114; Fixes #102
  • Allow restarting Samba & Greyhole when running in Docker
  • Mention allow insecure wide links = yes as an alternative to unix extensions = no in USAGE file Ref: #192


  • Correctly attribute write/close tasks; using the file handle (fd) was not enough; using the full path now
  • When a write task is logged, and no opened-for-writing task is in the DB, create it! Fixes issue where Greyhole would think a file is closed without being written to, when that is not the case.
  • When two spooled files (created by Samba VFS module) have the exact same modification time (to the microsecond!), ensure they are executed in the correct order: open, writes, close
  • When running --fsck --disk-usage-report, correctly update 'parents' du_stats, when deleting the checked folder's du_stats
  • --iostat was missing storage pool drives on un-numbered partitions (eg. whole-drive XFS partition on /dev/sdb); also added timestamps to output, updates are more frequent (5s instead of 10s), and sorted the storage pool drives in alphabetical order
  • Correctly balance storage pool drives, when drive_selection_groups are configured: will balance the drives in each group amongst themselves only, instead of trying to balance all the drives together. Fixes #198
  • greyhole --process-spool logged warnings because Metastore backups config was uninitialized
  • If the Samba VFS symlink is missing/not working, and the expected target is also missing, download it from Github
  • greyhole --logs should not watch both .log and .err, as .log will always contains all the same logs as .err
  • Install script: ensure gnupg package is installed; it is required for apt-get add Fixes #227
  • build_vfs script: try to install the required dependencies, before trying to build Ref: #223
  • lsof file-locked check was not working in Docker (Alpine Linux), because -M flag is not available

Various code improvement & refactoring

  • Removing old files; shellcheck; fixed white-space in shell scripts (was a mix of tabs and spaces)
  • Updated .patch to Samba 4.11 & 4.12 VFS module (was not working on Alpine 3.11 & Alpine Edge - 3.12)
  • WIP: VFS module for Samba 4.13 (untested)
  • Simplified manual INSTALL instructions about Samba VFS module; just need the correct binary in the LIB dir; daemon will take care of created the required symlink pointing there
  • Moved build-related files into build/ sub-directory
  • Create new Docker images during build
  • Faster re-building Samba VFS modules, on build servers
Assets 3

@gboudreau gboudreau released this Apr 5, 2020 · 43 commits to master since this release


  • Process Samba spool ASAP, in order to prevent loosing the spooled tasks (stored in tmpfs) on reboot Fixes #224
Assets 3

@gboudreau gboudreau released this Apr 5, 2020 · 44 commits to master since this release

  • Updated instructions for latest Ubuntu
  • Better error logging when fails on ./configure
  • Allow installation of old versions from deb repo (v0.12, v0.11) Ref: #225
  • shellcheck for install script
  • deb repo: use generic labels for component name of previous versions
  • New config options: calculate_md5 and parallel_copying (default to yes) Ref: #225
  • Bugfix: when a target storage drive file copy is on the same drive as the source file (most probably the LZ), skip this file when creating file copies in parallel; it will be copied afterwards using a rename Ref #225
Assets 3
  • 0.12.1
  • a683c2e
  • Compare
    Choose a tag to compare
    Search for a tag
  • 0.12.1
  • a683c2e
  • Compare
    Choose a tag to compare
    Search for a tag

@gboudreau gboudreau released this Mar 31, 2020 · 51 commits to master since this release

  • Support for hard-links in Greyhole shares (only works on real files; i.e. before Greyhole moves the file to a storage pool drive) Fixes #220
  • Added support for Samba 4.12 (untested)
Assets 3

@gboudreau gboudreau released this Mar 29, 2020 · 54 commits to master since this release

  • Improvement: when multiple file copies are needed, create them in parallel using: cat source_file | tee target1 target2... Fixes #94
  • Removed "Saving metadata in ..." log; too much spam, and serves no real purpose
  • Create FUNDING.yml
  • Update FUNDING.yml
  • Verify that 'testparm -s' returns something, else log a relevant critical error Fixes #221
Assets 3

@gboudreau gboudreau released this Mar 15, 2020 · 59 commits to master since this release

  • Polyfill for is_iterable() function added in PHP 7.1 Ref #219
  • Simpler weekly cron script
Assets 3

@gboudreau gboudreau released this Feb 26, 2020 · 62 commits to master since this release

  • Bugfix: StoragePool::get_free_space() would sometimes return the wrong value (the free space on the last storage pool drive, instead of the specified drive) Fixes #217
Assets 3

@gboudreau gboudreau released this Feb 23, 2020 · 63 commits to master since this release

  • Build script: ensure .deb packages are created using GZip, (not XZ Utils) - DPKG repository doesn't work with *.xz files (yet)
  • When we want to restart the daemon, use supervisorctl, if Greyhole is running in a docker container using supervisord
  • Disk Usage web-app: remove prefix (current path) from chart
  • Added note about creating Samba users, and testing Samba shares before enabling Greyhole VFS
  • 'greyhole --logs' would output a warning in the error log (if one is defined in the config) was non-existent
  • Improvement: when executing a 'write' tasks, remove future 'write' tasks that are duplicates; i.e. don't execute multiple write tasks if only one would be enough
  • Removing php-mbstring dependency; it's already in the install script, and I added it to the INSTALL instructions Fixes #214
  • New: log files checksums in DB, when new copies are created, or when checksums are checked (--fsck --checksums)
  • fsck checksums threads: re-start the ones that are missing; don't wait for ALL of them to disappear
  • Bugfix: When re-creating a file copy because its checksum is different, first make sure the storage pool drive has enough free space for this new file copy; if not, schedule to fsck_file task to create another file copy elsewhere
  • Pretty big code refactoring; some minor fixes too
  • Small code improvements; mostly fixing IDE warnings
  • Bugfix: don't try to manually escape values to inject into a SQL query! Use dynamic parameters instead.
  • Test cases script: small code improvements
  • Code change to support PHP 7.4
Assets 3
Feb 22, 2020
Merge pull request #216 from gboudreau/dev/code-refactoring
Dev/code refactoring

@gboudreau gboudreau released this Nov 4, 2019 · 85 commits to master since this release

  • Fixing patch file for samba 4.10
  • Patch for compiling Samba on Alpine Linux
  • correctly check which lib dir to put the symlink into
  • Support for Samba 4.11
Assets 3
You can’t perform that action at this time.