Giter Club home page Giter Club logo

robinhood's Introduction

I - License

Copyright (C) 2004-2017 CEA/DAM. Copyright 2013-2016 Cray Inc. All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the CeCILL-C License.

The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license (http://www.cecill.info) and that you accept its terms.

II - Compiling

2.1 - From source tarball

It is advised to build RobinHood on your target system, to ensure the best compatibility with your Lustre and MySQL versions.

Build requirements: glib2-devel, libattr-devel, mysql-devel or mariadb-devel, mailx, bison, flex. For lustre support: lustre or lustre-client

Unzip and untar the source distribution:

tar zxvf robinhood-3.x.x.tar.gz
cd robinhood-3.x.x

Configure and build:

./configure
make rpm

RPMs are generated in the 'rpms/RPMS/arch' directory.

2.2 - From git repository

Install git, and autotools stuff:

yum install git automake autoconf libtool

Retrieve robinhood sources

git clone https://github.com/cea-hpc/robinhood.git
cd robinhood
git checkout master *(or other branch)*
sh autogen.sh

Then refer to section 2.1 for next compilation steps.

2.3 - Build using src rpm

2.3.1 - Creating src rpm

Only requirements: rpm-build, gcc, flex, bison

To create src rpm on a host with minimal requirements, run:

./configure --enable-dist
make srpm

2.3.2 - Building from src rpm

By default, the src rpm builds robinhood for POSIX filesystems:

rpmbuild --rebuild robinhood-3.0*.src.rpm

To build robinhood binary RPM for a Lustre filsystem, run:

rpmbuild --rebuild robinhood-3.0*.src.rpm --with lustre --define "lversion x.y"

where x.y is your target lustre version (e.g. 2.7).

Note: if lustre-client is not installed on your target system, you can specify an alternative lustre package by defining "lpackage", e.g.

rpmbuild [...] --define "lpackage lustre"

Note: 'lversion' can be omitted, by it is strongly recommanded to prevent incompatibility issues between lustreapi versions.

III - Install

For installing robinhood on your target system, install robinhood-adm RPM. It includes configuration helper for DB, changelogs, ...

  • For lustre filesystems install robinhood-lustre RPM.
  • For other filesystems install robinhood-posix RPM.

IV - Database Configuration

Robinhood needs a MySQL database for storing information about files. This database can run on a different node from Robinhood daemon.

  • Install MySQL server on the machine (mysql-server and mysql packages).
  • Start the DB engine:
    • RHEL6: service mysqld start
    • RHEL7: systemctl start mariadb
  • Run the configuration helper script as root on the database host to create the database:
rbh-config create_db
  • Write the DB password to a file with read access for root only (600) e.g. to /etc/robinhood.d/.dbpassword

Note: initially, the database schema is empty. Robinhood will create it the first time it is launched.

V - Lustre 2.x Filesystems only: enabling changelogs

For Lustre, you must register robinhood as a MDT changelog consumer.

  • Run the configuration helper script on Lustre MDS:
rbh-config enable_chglogs

This registers a changelog consumer and activate required changelog records.

Note: by default, the script checks for a 'cl1' consumer. If you need to register several changelog consumers on your file system, refer to lustre documentation.

VI - Configuration file

Examples of config files are installed in /etc/robinhood.d/templates/

You can also use the '--template' option to generate a documented configuration file template:

robinhood --template=<template_file>

For more details, refer to Robinhood v3 admin guide.

Note: by default, robinhood searches configuration files in "/etc/robinhood.d".

VII - First run

Even if your filesystem is empty, you need to perform an initial scan in order to initialize robinhood database. This prevents from having entries in filesystem that it wouldn't know about.

robinhood --scan --once

VIII - Start the daemon

  • [el6 and el7] Configure common daemon options in /etc/sysconfig/robinhood
  • [el7] Configure per-filesystem daemon options in /etc/sysconfig/robinhood.<fsname>

Example: to read lustre changelogs and run all policies:

RBH_OPT="--readlog --run=all"

Example: to regularly scan filesystem and run all policies:

RBH_OPT="--scan --run=all"

Start the daemon:

[el6] service robinhood start
[el7] systemctl start robinhood@*fsname*

robinhood's People

Contributors

abrenner avatar ajmes avatar azet avatar bmwiedemann avatar courrierg avatar degremont avatar dtcray avatar fsr-dr-ing avatar fzago-cray avatar gaeldelbary avatar guilbaults avatar hdoreau avatar ja-cea avatar jerrylususu avatar jgh10050 avatar jwm avatar karcaw avatar kcgthb avatar mboes avatar mslacken avatar sebagougeaud avatar tack0974 avatar thiell avatar tl-cea avatar ypsah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

robinhood's Issues

3.0.0-rc1 systemd startup @script points to missing robinhood binary

Hi,
I created rpms from 3.0.0-rc1.
It puts the "robinhood" binary in /opt/robinhood/sbin/robinhood viz:
0 edi-test-ltr-03:robinhood.d# rpm -qf /opt/robinhood/sbin/robinhood
robinhood-lustre-3.0-0.rc1.lustre2.8.el7.x86_64
0 edi-test-ltr-03:robinhood.d#

But the /usr/lib/systemd/system/[email protected] is looking for the robinhood binary in /usr/sbin/robinhood which doesn't exist so the service fails to start on RHEL 7, viz:

0 edi-test-ltr-03:robinhood.d# rpm -qf /usr/lib/systemd/system/[email protected]
robinhood-lustre-3.0-0.rc1.lustre2.8.el7.x86_64
0 edi-test-ltr-03:robinhood.d# grep ExecStart /usr/lib/systemd/system/[email protected]
ExecStart=/usr/sbin/robinhood $RBH_OPT -f /etc/robinhood.d/%I.conf
0 edi-test-ltr-03:robinhood.d#

Feature: Improve the search function for files on the web GUI

Dear all,

currently Robinhood supports displaying the first n files (default: 1000) queried from
the MySQL database for a user/group.

We would like to ask you the following questions:

  1. Is there a plan about adding a more precise 'file search' function in the web GUI e.g. for filtering by sizes, last modified time, a specific name or pattern...etc.?

  2. What do you think about a paging mechanism (e.g. in PHP) for iterating over large file sets queried from the database?

Best regards,
Gabriele

sizes page failing with mysql error

On top of the sizes.php page an error thrown with mysql-5.7.15-linux-glibc2.5-x86_64:
Error: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'robinhood_lnew.ACCT_STAT.count' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Database Table Design of the ENTRIES Table

Hello there,

I was wondering about the table design of the ENTRIES table.

Is there any specific reason for not putting indices on the ENTRIES table to the fields uid and gid?

Best regards,
Gabriele

Error adding policies

I have a new install of Robinhood on a fairly large Lustre filesystem. We initially did a basic configuration with no policies or file classes just to get robinhood working. We are now starting to try to add policies, but not having any luck getting it to work. I added the following lines to the config file, in an attempt to create a very simple test policy that just sends the output of ls (of all the files of a user called "ricky") to a file:

define_policy list_ricky {
     status_manager = basic;
     scope { type == directory and name == 'ricky' }
     default_action = cmd("ls -al >> /tmp/ricky_ls.out");
     default_lru_sort_attr = none;
}

list_ricky_rules {
    rule default {
        condition { creation > 15w }
    }
}

After adding that, I did a restart of robinhood and it complained with this message:

DB schema change detected: field 'ENTRIES.list_ricky_status' must be added  => Run 'robinhood --alter-db' to apply this change.

I ran the command robinhood --alter-db, which took about 7 or 8 minutes to finish, but it failed with the following errors:

2017/01/03 10:54:28 [38147/1] ListMgr | table ACCT_STAT does not exist (or wrong version): creating it.
2017/01/03 10:54:28 [38147/1] ListMgr | Populating accounting table from existing DB contents. This can take a while... (estim. duration: ~6.4min)
2017/01/03 11:05:19 [38147/1] ListMgr | Unhandled error 1030: default conversion to DB_REQUEST_FAILED
2017/01/03 11:05:19 [38147/1] ListMgr | Error 7 executing query 'INSERT INTO ACCT_STAT(uid,gid,type,list_ricky_status,size,blocks, count,sz0,sz1,sz32,sz1K,sz32K,sz1M,sz32M,sz1G,sz32G,sz1T) SELECT uid,gid,type,list_ricky_status,SUM(size),SUM(blocks),COUNT(id),SUM(size=0),SUM(sz_range(size)=0),SUM(sz_range(size)=1),SUM(sz_range(size)=2),SUM(sz_range(size)=3),SUM(sz_range(size)=4),SUM(sz_range(size)=5),SUM(sz_range(size)=6),SUM(sz_range(size)=7),SUM(sz_range(size)>=8) FROM ENTRIES  GROUP BY uid,gid,type,list_ricky_status': Got error -1 from storage engine
2017/01/03 11:05:19 [38147/1] ListMgr | Failed to populate accounting table: Error: Got error -1 from storage engine
2017/01/03 11:05:19 [38147/1] Main | Error initializing list manager: request error (7)

do I need to change the scope to "all"? I'm not sure exactly what to do here. Thank you for any help!

Want last_mod in file class

Hi RBH complains if I add last_mod to file class stanza definition.

We have a use case for last_mod being in a file class rather than a policy stanza as we want to the output of the file class to be inputted to a custom python script.

How do we disable to the warnings?

rbh-report csv header

Hello, there is an inconsistency in the output of rbh-report.

When doing rbh-report --user-info=xxx, the header is the following:

user , type, count, spc_used, avg_size,

The problem is on the first field, the comma is surrounded by spaces, it's not the case with the other fields. This makes it hard to parse with python csv Dictreader for example

Enhancement: PostgreSQL support in RHPE

PostgreSQL support (wrapper and headers) would be greatly appreciated in conjunction with this project.

Is anyone planning on implementing support or other users interested in it?

Initialize changelog record ID

When using several several changelog readers with a Lustre MDT, if the most recent one (ie: cl2) is given to Robinhood, it will process the oldest records, whatever cl2 is currently pointing to.
There should be a way to tell to RBH : only process records starting from where cl2 currently is.

Search Function in Robinhood Web GUI is vulnerable to SQL injection and possibly data corruption

Hi,

During a routine security scan i discovered that the search.php script of the robinhood web_gui is vulnerable to SQL injection. This can easily be fixed by validating the POST input.

Here's how

https://github.com/cea-hpc/robinhood/blob/master/web_gui/acct/app/modules/search/SearchController.class.php#L19

        if( $this->getApplication()->getRequest()->hasPostValues() )
        {
            if( $this->getApplication()->getRequest()->getPostData("user") )
            {
                $user = $this->getApplication()->getRequest()->getPostData("user") ;
            }
            if( $this->getApplication()->getRequest()->getPostData("group") )
            {
                $group = $this->getApplication()->getRequest()->getPostData("group");
            }
            if( $this->getApplication()->getRequest()->getPostData("path") )
            {
                $path = $this->getApplication()->getRequest()->getPostData("path");
            }
            $searchManager = new SearchManager();
            $result = $searchManager->getStatistics( $user, $group, $path );
            $rowNumber = $searchManager->getRowNumber();
            $this->page->addVar( 'result' , $result );
            $this->page->addVar( 'rowNumber', $rowNumber );
            $this->page->addVar( 'page', 'result' );
        }

https://github.com/cea-hpc/robinhood/blob/master/web_gui/acct/lib/Request.class.php#L26

    public function getPostData($name)
    {
        if( isset( $_POST[$name] ) )
            return $_POST[$name];
        else
            return null;
    }

public function getStatistics( $user, $group, $path )

    public function getStatistics( $user, $group, $path )
    {
        $db_result = $this->db_request->select( array( OWNER => $user, GROUP => $group, PATH => $path), MAIN_TABLE, null, null, null, MAX_SEARCH_RESULT );
        $this->rowNumber = $this->db_request->getRowNumber();
        return $db_result;
    }

..which results in direct passing of the POST data to the actual database SELECT command through the select function in the Web GUI application (https://github.com/cea-hpc/robinhood/blob/master/web_gui/acct/app/model/DatabaseRequest.class.php#L115).

Demo

A simple webapplication scan yielded the following output (i did not try injecting myself, since we do not want to lose any data):

/search.php [user='+convert(int,convert(varchar,0x7b5d))+']

-------- output --------


Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have 
an error in your SQL syntax; check the manual that corresponds to your M
ySQL server version for the right syntax to use near 'convert(int,conver
t(varchar,0x7b5d)) '' LIMIT 5000' at line 1

Thanks in advance

ListMgr error messages with value is out of range / DB_REQUEST_FAILED

Hi,

With v3 alpha2, restarted robinhood with --readlog after a few hours downtime and got a bunch of error messages:

Note: I use mysql-community-server-5.6.30-2.el6.x86_64

2016/05/06 00:32:17 [9784/14] EntryProc | Error 7 performing database operation: request error.
2016/05/06 00:32:17 [9784/5] ListMgr | Unhandled error 1690: default conversion to DB_REQUEST_FAILED
2016/05/06 00:32:17 [9784/5] ListMgr | Error 7 executing query 'UPDATE ENTRIES SET nlink=nlink-1 WHERE id='0x200023cab:0x15b97:0x0'': BIGINT UNSIGNED value is out of range in '(robinhood_regal.ENTRIES.nlink - 1)'
2016/05/06 00:32:17 [9784/5] EntryProc | Error 7 performing database operation: request error.
2016/05/06 00:32:17 [9784/31] ListMgr | Unhandled error 1690: default conversion to DB_REQUEST_FAILED
2016/05/06 00:32:17 [9784/31] ListMgr | Error 7 executing query 'UPDATE ENTRIES SET nlink=nlink-1 WHERE id='0x200023cab:0x15b98:0x0'': BIGINT UNSIGNED value is out of range in '(robinhood_regal.ENTRIES.nlink - 1)'

web inteface doesnot work with mysql 5.7.12

I have following setup:
mysql 5.7.12 community edition
robinhood 2.5.5(or 3.0.0 alpha )

The web interface shows following error after setup:

Error: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'rbh_llust.ACCT_STAT.gr_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Volume
Count
List

3.0.0.rc1 search

The search function in 3.0.0 RC1 results in an invalid SQL statement.

Error is: Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 5000' at line 1.

Database environment is MariaDB 5.5.

robinhood 3.0 build errors on RHEL 6.6 x86_64: make rpm

Trying to build Robinhood 3.0 from tar file to create a RPM to use on RHEL 6.6 x86_64 system. Regular configure and build works fine, but I wanted to see if doing the rpm build would let me cleanup things more easily after my testing. I can send the full logs, but the error I get at the end is:

$ make rpm
.
.
.
.

RPM build errors:
Macro %configure_flags has empty body
Macro %configure_flags has empty body
File not found by glob: /var/tmp/robinhood/rpms/BUILDROOT/robinhood-3.0-1.el6.x86_64/usr/lib64/robinhood/librbh_mod_.so
make: *** [rpm] Error 1

Test 508 failure

In this case this test was erroneously skipped, MariaDB is installed and available on this system.

==== TEST #508 Test TokuDB compression (Test TokuDB compression) ====
Test start: 2016-06-07 12:07:19.081697757
package MariaDB-common is not installed
MariaDB not installed: skipped
Test end: 2016-06-07 12:07:19.565682062
duration: .471151366 sec
Filesystem cleanup...

3.0.0.rc1 user list

When navigating to the user list, selecting a user results in the duplication of table headers, footers, and filter controls. Duplicates are added each time a user is select.

Reproducible on Chrome 52.0.2743.116 and Firefox 43.0.1 (and most likely others).

RBH 3.0.0.rc1: rbh-config fails when mysql dbs are on separate LVMs

Some people put each mysql database on a separate LVM mounted under the main mysql data dir, viz:

0 edi-rbh-01:robinhood.d# df | grep mysql | awk '{print $6}'
/var/lib/mysql
/var/lib/mysql/rbh_tools
/var/lib/mysql/rbh_audiodb
/var/lib/mysql/rbh_results
/var/lib/mysql/rbh_scratch

This is done so that one db, which is a file space hog doesn't, damage the others.

However this confuses rbh-config which complains:
0 edi-rbh-01:robinhood.d# /opt/robinhood/sbin/rbh-config create_db rbh_audiodb localhost secret bigsecret
...
Configuration summary:

  • Database name: 'rbh_audiodb'
  • Client hosts: 'localhost'
  • Database user name: 'robinhood'

Creating database 'rbh_audiodb'...
mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'rbh_audiodb'; database exists'
Error creating DB.
0 edi-rbh-01:robinhood.d# echo $?
1

Can we have a flag to rbh-config (e.g --db-exists) which stubs out this issue please?

webgui: any page listed in routes.xml is 404

I have the webgui up and running but am unable to load any content that depends on the virtual urls as described in app/config/routes.xml. This means that the links to users, groups, sizes, and search and that I also get blank white box popup when I try to see more details about a user.
I have read what I could find about other people having this same issue and yet none of the fixes I have read about have resolved this problem.

  • The prereqs are installed
  • From our apache conf
<Directory /<path/to/php/>
        AllowOverride All
</Directory>
  • apache owns the files it needs to read/write

Any assistance with this issue would be most appreciated!

PDO unauthorized error

I'm having trouble with my config.php settings for the web gui. I can login locally to the database with the robinhood credentials and the robinhood db user has been given SUPER privileges. The command line rbh-* commands all work just fine.

My problem is with the web access. After filling out the database settings in config.php, I get the following error on the index.php web page:
SQLSTATE[HY000] [1045] Access denied for user 'robinhood'@'localhost' (using password: YES)
Here are the settings I have in config.php (I've just removed the password):

//Support at least mysql/pgsql/sqlite                                                                    
$DB_TYPE     = "mysql";                                                                                  
$DB_HOST     = "localhost";                                                                              
$DB_NAME     = "robinhood_lustre";                                                                          
$DB_USER     = "robinhood";                                                                              
$DB_PASSWD   = '********';                                                                              
                                                                                                         
$DB_LASTERROR = "";                                                                                      
try {                                                                                                    
    $db = new PDO("$DB_TYPE:$DB_HOST;dbname=$DB_NAME", $DB_USER, $DB_PASSWD);                            
    $db->exec("USE $DB_NAME;");                                                                          
} catch(Exception $e) {                                                                                  
    $DB_LASTERROR = $e->getMessage();                                                                                  
}                           

I initially thought my information must have been wrong, so I took the above code and put it in a separate file and made it the entry point for the website to see if the error persisted. But I received no error at all! In fact, I even added extra database calls using the $db variable and never had any errors show up. In summary, the above code works "stand-alone" but not within the robinhood webgui project.

Does anyone have any idea why this might be happening?

feature: rbh-find -perm option

Could something similar to the "-perm" option in find be added to rbh-find, where I can filter based on file permissions?

-David

Test 222 fails

Today's master pull

==== TEST #222 test_custom_purge.conf (custom purge command) ====
Test start: 2016-06-07 11:45:57.549469825
Populating filesystem...
Inital scan...
Sleeping 2 seconds...
Applying purge policy (custom purge command)...
ERROR ********** TEST FAILED: 13 purge actions expected, 0 done
rh_purge.log:2016/06/07 11:46:00 [104118/6] params | '{path}'->'/mnt/lustre/file.3' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/6] params | [3] '{path}'->'/mnt/lustre/file.3' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/6] purge | [0x2000013a4:0x1feed:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1feed:0x0 /mnt/lustre/file.3)
rh_purge.log:2016/06/07 11:46:00 [104118/6] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/5] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1feeb:0x0 /mnt/lustre/file.1": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | Error applying action on entry /mnt/lustre/file.1: No child processes

rh_purge.log:2016/06/07 11:46:00 [104118/5] ListMgr | SQL query: BEGIN

rh_purge.log:2016/06/07 11:46:00 [104118/3] params | '{path}'->'/mnt/lustre/file.4' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/3] params | [3] '{path}'->'/mnt/lustre/file.4' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/3] purge | [0x2000013a4:0x1feee:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1feee:0x0 /mnt/lustre/file.4)
rh_purge.log:2016/06/07 11:46:00 [104118/3] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/4] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1feec:0x0 /mnt/lustre/file.2": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/4] purge | Error applying action on entry /mnt/lustre/file.2: No child processes
rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: BEGIN
rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: UPDATE ENTRIES SET owner='root',gr_name='root',size=10485760,blocks=20480,last_access=1465314357,last_mod=1465314357,type='file',mode=420,nlink=1,md_update=1465314360,invalid=0,fileclass='++',class_update=1465314360 WHERE id='0x2000013a4:0x1feec:0x0'
rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:00 [104118/6] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1feed:0x0 /mnt/lustre/file.3": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/6] purge | Error applying action on entry /mnt/lustre/file.3: No child processes
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: BEGIN
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: UPDATE ENTRIES SET owner='root',gr_name='root',size=10485760,blocks=16384,last_access=1465314357,last_mod=1465314357,type='file',mode=420,nlink=1,md_update=1465314360,invalid=0,fileclass='++',class_update=1465314360 WHERE id='0x2000013a4:0x1feed:0x0'
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:00 [104118/3] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1feee:0x0 /mnt/lustre/file.4": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/3] purge | Error applying action on entry /mnt/lustre/file.4: No child processes

rh_purge.log:2016/06/07 11:46:00 [104118/3] ListMgr | SQL query: BEGIN

rh_purge.log:2016/06/07 11:46:00 [104118/5] params | '{path}'->'/mnt/lustre/file.5' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/5] params | [3] '{path}'->'/mnt/lustre/file.5' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | [0x2000013a4:0x1feef:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1feef:0x0 /mnt/lustre/file.5)
rh_purge.log:2016/06/07 11:46:00 [104118/5] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/5] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1feef:0x0 /mnt/lustre/file.5": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | Error applying action on entry /mnt/lustre/file.5: No child processes

rh_purge.log:2016/06/07 11:46:00 [104118/5] ListMgr | SQL query: BEGIN

rh_purge.log:2016/06/07 11:46:00 [104118/6] params | '{path}'->'/mnt/lustre/foo1 pkill -9 robinhood' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/6] params | [3] '{path}'->'/mnt/lustre/foo1 pkill -9 robinhood' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/6] purge | [0x2000013a4:0x1fef5:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1fef5:0x0 /mnt/lustre/foo1 pkill -9 robinhood)
rh_purge.log:2016/06/07 11:46:00 [104118/6] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/4] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef6:0x0 /mnt/lustre/foo2 ; exit 1": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/4] purge | Error applying action on entry /mnt/lustre/foo2 ; exit 1: No child processes

rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: BEGIN

rh_purge.log:2016/06/07 11:46:00 [104118/3] purge | [0x2000013a4:0x1fef4:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1fef4:0x0 /mnt/lustre/file.10)
rh_purge.log:2016/06/07 11:46:00 [104118/3] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: UPDATE ENTRIES SET owner='root',gr_name='root',size=0,blocks=0,last_access=1465314358,last_mod=1465314358,type='file',mode=420,nlink=1,md_update=1465314360,invalid=0,fileclass='++',class_update=1465314360 WHERE id='0x2000013a4:0x1fef6:0x0'
rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:00 [104118/6] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef5:0x0 /mnt/lustre/foo1 pkill -9 robinhood": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/6] purge | Error applying action on entry /mnt/lustre/foo1 pkill -9 robinhood: No child processes
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: BEGIN
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: UPDATE ENTRIES SET owner='root',gr_name='root',size=0,blocks=0,last_access=1465314358,last_mod=1465314358,type='file',mode=420,nlink=1,md_update=1465314360,invalid=0,fileclass='++',class_update=1465314360 WHERE id='0x2000013a4:0x1fef5:0x0'
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:00 [104118/3] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef4:0x0 /mnt/lustre/file.10": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/3] purge | Error applying action on entry /mnt/lustre/file.10: No child processes

rh_purge.log:2016/06/07 11:46:00 [104118/3] ListMgr | SQL query: BEGIN

rh_purge.log:2016/06/07 11:46:00 [104118/5] params | '{path}'->'/mnt/lustre/file.9' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/5] params | [3] '{path}'->'/mnt/lustre/file.9' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | [0x2000013a4:0x1fef3:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1fef3:0x0 /mnt/lustre/file.9)
rh_purge.log:2016/06/07 11:46:00 [104118/5] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/5] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef3:0x0 /mnt/lustre/file.9": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | Error applying action on entry /mnt/lustre/file.9: No child processes

rh_purge.log:2016/06/07 11:46:00 [104118/5] ListMgr | SQL query: BEGIN

rh_purge.log:2016/06/07 11:46:00 [104118/6] purge | [0x2000013a4:0x1fef1:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1fef1:0x0 /mnt/lustre/file.7)
rh_purge.log:2016/06/07 11:46:00 [104118/6] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | Checking if entry /mnt/lustre/foo3' ';' 'exit' '1' matches policy rules
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | Considering entry [0x2000013a4:0x1fef7:0x0]
rh_purge.log:2016/06/07 11:46:00 [104118/4] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef2:0x0 /mnt/lustre/file.8": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/4] purge | Error applying action on entry /mnt/lustre/file.8: No child processes

rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: BEGIN

rh_purge.log:2016/06/07 11:46:00 [104118/5] params | [3] '{path}'->'/mnt/lustre/foo3' ';' 'exit' '1'' in action command './rm_script'
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | [0x2000013a4:0x1fef7:0x0]: action: cmd(./rm_script lustre 0x2000013a4:0x1fef7:0x0 /mnt/lustre/foo3' ';' 'exit' '1')
rh_purge.log:2016/06/07 11:46:00 [104118/5] ExecCmd | Spawning external command "./rm_script"
rh_purge.log:2016/06/07 11:46:00 [104118/4] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:00 [104118/6] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef1:0x0 /mnt/lustre/file.7": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/6] purge | Error applying action on entry /mnt/lustre/file.7: No child processes
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: BEGIN
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: UPDATE ENTRIES SET owner='root',gr_name='root',size=10485760,blocks=20480,last_access=1465314358,last_mod=1465314358,type='file',mode=420,nlink=1,md_update=1465314360,invalid=0,fileclass='++',class_update=1465314360 WHERE id='0x2000013a4:0x1fef1:0x0'
rh_purge.log:2016/06/07 11:46:00 [104118/6] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:00 [104118/3] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef0:0x0 /mnt/lustre/file.6": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/3] purge | Error applying action on entry /mnt/lustre/file.6: No child processes
rh_purge.log:2016/06/07 11:46:00 [104118/3] ListMgr | SQL query: BEGIN
rh_purge.log:2016/06/07 11:46:00 [104118/3] ListMgr | SQL query: UPDATE ENTRIES SET owner='root',gr_name='root',size=10485760,blocks=20480,last_access=1465314358,last_mod=1465314358,type='file',mode=420,nlink=1,md_update=1465314360,invalid=0,fileclass='++',class_update=1465314360 WHERE id='0x2000013a4:0x1fef0:0x0'
rh_purge.log:2016/06/07 11:46:00 [104118/3] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:00 [104118/5] ExecCmd | Failed to execute "./rm_script lustre 0x2000013a4:0x1fef7:0x0 /mnt/lustre/foo3' ';' 'exit' '1'": Failed to execute child process "./rm_script" (No such file or directory)
rh_purge.log:2016/06/07 11:46:00 [104118/5] purge | Error applying action on entry /mnt/lustre/foo3' ';' 'exit' '1': No child processes
rh_purge.log:2016/06/07 11:46:00 [104118/5] ListMgr | SQL query: BEGIN
rh_purge.log:2016/06/07 11:46:00 [104118/5] ListMgr | SQL query: UPDATE ENTRIES SET owner='root',gr_name='root',size=0,blocks=0,last_access=1465314358,last_mod=1465314358,type='file',mode=420,nlink=1,md_update=1465314360,invalid=0,fileclass='++',class_update=1465314360 WHERE id='0x2000013a4:0x1fef7:0x0'
rh_purge.log:2016/06/07 11:46:00 [104118/5] ListMgr | SQL query: COMMIT
rh_purge.log:2016/06/07 11:46:01 [104118/7] purge | End of current pass
rh_purge.log:2016/06/07 11:46:01 [104118/7] purge | target: 0 entries, total volume 0 (343688 blocks)
rh_purge.log:2016/06/07 11:46:01 [104118/7] purge | done: none
rh_purge.log:2016/06/07 11:46:01 [104118/7] purge | Policy run summary: time=01s; target=all; 0 successful actions (0.00/sec); volume: 0 (0/sec); 0 entries skipped; 13 errors.
rh_purge.log:2016/06/07 11:46:01 [104118/7] purge | Warning: could not reach the specified policy target: 0 blocks/343688 targeted
rh_purge.log:2016/06/07 11:46:01 [104118/7] ListMgr | SQL query: DELETE FROM VARS WHERE varname ='purge_start_current'
rh_purge.log:2016/06/07 11:46:01 [104118/7] ListMgr | SQL query: DELETE FROM VARS WHERE varname ='purge_trigger_current'
rh_purge.log:2016/06/07 11:46:01 [104118/7] ListMgr | SQL query: INSERT INTO VARS (varname,value) VALUES ('purge_start','1465314360') ON DUPLICATE KEY UPDATE value='1465314360'
rh_purge.log:2016/06/07 11:46:01 [104118/7] ListMgr | SQL query: INSERT INTO VARS (varname,value) VALUES ('purge_end','1465314361') ON DUPLICATE KEY UPDATE value='1465314361'
rh_purge.log:2016/06/07 11:46:01 [104118/7] ListMgr | SQL query: INSERT INTO VARS (varname,value) VALUES ('purge_trigger','manual run, target: all') ON DUPLICATE KEY UPDATE value='manual run, target: all'
rh_purge.log:2016/06/07 11:46:01 [104118/7] ListMgr | SQL query: INSERT INTO VARS (varname,value) VALUES ('purge_status','0 successful actions, volume: 0; 0 entries skipped; 13 errors') ON DUPLICATE KEY UPDATE value='0 successful actions, volume: 0; 0 entries skipped; 13 errors'
rh_purge.log:2016/06/07 11:46:01 [104118/7] ListMgr | Database connection closed
ERROR No action found on /mnt/lustre/file.1
ERROR No action found on /mnt/lustre/file.2
ERROR No action found on /mnt/lustre/file.3
ERROR No action found on /mnt/lustre/file.4
ERROR No action found on /mnt/lustre/file.5
ERROR No action found on /mnt/lustre/file.6
ERROR No action found on /mnt/lustre/file.7
ERROR No action found on /mnt/lustre/file.8
ERROR No action found on /mnt/lustre/file.9
ERROR No action found on /mnt/lustre/file.10
ERROR No action found on /mnt/lustre/foo1 pkill -9 robinhood
ERROR No action found on /mnt/lustre/foo2 ; exit 1
ERROR No action found on /mnt/lustre/foo3' ';' 'exit' '1'
Test end: 2016-06-07 11:46:01.989001660
duration: 4.437430261 sec
Filesystem cleanup...

Test 218 fails

==== TEST #218 rmdir.conf (rmdir policies) ====
Test start: 2016-06-07 11:40:35.917944990
Create test directories
Reading changelogs...
Applying rmdir_empty policy (rmdir policies)...
2016/06/07 11:45:05 [103589/3] rmdir_empty | Policy run summary: time=01s; target=all; 4 successful actions (4.00/sec); volume: 16.00 KB (16.00 KB/sec); 6 entries skipped; 0 errors.
Applying rmdir_recurse policy (rmdir policies)...
2016/06/07 11:45:06 [103607/3] rmdir_recurse | Policy run summary: time=01s; target=all; 1 successful actions (1.00/sec); volume: 4.00 KB (4.00 KB/sec); 5 entries skipped; 0 errors.
ERROR 4 empty directories removed (0 expected)
ERROR 1 directories removed recursively (0 expected)
Sleeping 11 seconds...
Applying rmdir_empty policy (rmdir policies)...
2016/06/07 11:45:21 [103635/3] rmdir_empty | Policy run summary: time=01s; target=all; 0 successful actions (0.00/sec); volume: 0 (0/sec); 6 entries skipped; 0 errors.
Applying rmdir_recurse policy (rmdir policies)...
2016/06/07 11:45:22 [103653/3] rmdir_recurse | Policy run summary: time=01s; target=all; 0 successful actions (0.00/sec); volume: 0 (0/sec); 6 entries skipped; 0 errors.
OK: 0 empty directories removed
ERROR 0 directories removed recursively (2 expected)
Sleeping 11 seconds...
Applying rmdir_empty policy (rmdir policies)...
2016/06/07 11:45:34 [103675/3] rmdir_empty | Policy run summary: time=01s; target=all; 0 successful actions (0.00/sec); volume: 0 (0/sec); 6 entries skipped; 0 errors.
Applying rmdir_recurse policy (rmdir policies)...
2016/06/07 11:45:35 [103693/3] rmdir_recurse | Policy run summary: time=01s; target=all; 0 successful actions (0.00/sec); volume: 0 (0/sec); 6 entries skipped; 0 errors.
ERROR 0 empty directories removed (3 expected)
OK: 0 directories removed recursively
Test end: 2016-06-07 11:45:35.319762922
duration: 299.395574211 sec
Filesystem cleanup...

rpm doesn't see installed lustre-client packages

I am trying to install the rpms, but they don't see the lustre packages I have installed as fulfilling the dependencies. Is this intended?

Installed lustre packages:

[root@rbh robinhood]# yum list installed | grep lustre
lustre-client.x86_64               2.5.42.13-2.6.32_642.3.1.el6.x86_64 @/lustre-client-2.5.42.13-2.6.32_642.3.1.el6.x86_64.x86_64
lustre-client-debuginfo.x86_64     2.5.23-2.6.32_431.29.2.el6.x86_64   installed
lustre-client-modules.x86_64       2.5.42.13-2.6.32_642.3.1.el6.x86_64 @/lustre-client-modules-2.5.42.13-2.6.32_642.3.1.el6.x86_64.x86_64
lustre-client-source.x86_64        2.5.42.13-2.6.32_642.3.1.el6.x86_64 @/lustre-client-source-2.5.42.13-2.6.32_642.3.1.el6.x86_64.x86_64
lustre-iokit.x86_64                2.5.23-2.6.32_431.29.2.el6.x86_64   installed

Attempt to install package:

[root@rbh robinhood]# yum install robinhood-lustre-3.0-1.lustre2.5.el6.x86_64.rpm
Loaded plugins: etckeeper, fastestmirror
Setting up Install Process
Examining robinhood-lustre-3.0-1.lustre2.5.el6.x86_64.rpm: robinhood-lustre-3.0-1.lustre2.5.el6.x86_64
Marking robinhood-lustre-3.0-1.lustre2.5.el6.x86_64.rpm to be installed
Loading mirror speeds from cached hostfile
 * base: mirrors.cat.pdx.edu
 * epel: mirrors.cat.pdx.edu
 * extras: repo1.sea.innoscale.net
 * rpmforge: mirror.cpsc.ucalgary.ca
 * updates: mirror.pac-12.org
Resolving Dependencies
--> Running transaction check
---> Package robinhood-lustre.x86_64 0:3.0-1.lustre2.5.el6 will be installed
--> Processing Dependency: lustre >= 2.5 for package: robinhood-lustre-3.0-1.lustre2.5.el6.x86_64
--> Finished Dependency Resolution
Error: Package: robinhood-lustre-3.0-1.lustre2.5.el6.x86_64 (/robinhood-lustre-3.0-1.lustre2.5.el6.x86_64)
           Requires: lustre >= 2.5
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
[root@rbh robinhood]# rpm -ivh robinhood-lustre-3.0-1.lustre2.5.el6.x86_64.rpm
error: Failed dependencies:
        lustre >= 2.5 is needed by robinhood-lustre-3.0-1.lustre2.5.el6.x86_64

Before I try to force the issue, is there something that I am doing wrong that I should correct?

Minimum permissions needed for webapp user

Hi Folks,

What are the minimum mysql permissions needed for the webapp?

I have to create a new ACL to allow the webhost to access the database, so I'd rather it was a low-permission user rather than the full 'robinhood' user used for the main daemon (the web frontend is read-only anyway right?)

Andrew

CentOS 7 libmysqlclient.so.20 dependency

Hello,

I'm trying to install robinhood-posix using the sourceforge rpm (https://sourceforge.net/projects/robinhood/files/robinhood/3.0-final/RPMS/posix_fs/robinhood-posix-3.0-1.el7.centos.x86_64.rpm/download) on a fresh CentOS 7 installation (and after a yum upgrade) :

# yum install robinhood-adm robinhood-posix
Error: Package: robinhood-posix-3.0-1.el7.centos.x86_64 (robinhood)
           Requires: libmysqlclient.so.20(libmysqlclient_20.0)(64bit)
Error: Package: robinhood-posix-3.0-1.el7.centos.x86_64 (robinhood)
           Requires: libmysqlclient.so.20()(64bit)

I've got "/usr/lib64/mysql/libmysqlclient.so.18" provided by the installed mariadb-libs-5.5.50-1.el7_2.x86_64 package. Is the .20 version a hard requirement ? This version does not seem to be available :

$ yum whatprovides "*libmysqlclient.so.20*"
No matches found

I can force install it using some rpm foo (rpm -Uvh --nodeps $(repoquery --location robinhood-posix)), but it does not feel good to me.

Tests fail with latest build

As of today's pull / build of master, and RPM installs tests fail:

==== TEST #100 info_collect.conf (escape string in SQL requests) ====
Test start: 2016-06-07 07:51:15.164933458
1-Reading changelogs...
2016/06/07 07:51:16 [57382/1] mod_mgt | Cannot dlopen() 'librbh_mod_common.so': librbh_mod_common.so: cannot open shared object file: No such file or directory
Error reading configuration file '/usr/share/robinhood/tests/test_suite/cfg/info_collect.conf': Error 22 reading policies configuration:
default_action: unknown function 'common.unlink'
ERROR
grep: *.log: No such file or directory
grep: rh_chglogs.log: No such file or directory
grep: rh_chglogs.log: No such file or directory
grep: rh_chglogs.log: No such file or directory
grep: rh_chglogs.log: No such file or directory
grep: rh_chglogs.log: No such file or directory
warning: 0 close record (lustre version 2.8.0), 4 expected
./2-run-tests.sh: line 8270: bc: command not found
Test end: 2016-06-07 07:51:17.272810400
duration: sec
Filesystem cleanup...

Test 230 fails

==== TEST #230 test_checker.conf (policies based on 'checker' module) ====
Test start: 2016-06-07 11:54:57.263535157
No sum (last_mod criteria for new entries)
Initial sum
ERROR Unexpected status 'failed' for /mnt/lustre/file.1 (ok expected)
rh_migr.log:2016/06/07 11:55:02 [105090/5] checksum | [0x2000013a4:0x1ff0d:0x0]: action_params:
rh_migr.log:2016/06/07 11:55:02 [105090/5] run_command | [0x2000013a4:0x1ff0d:0x0]: check action: cmd(../../scripts/rbh_cksum.sh /mnt/lustre/file.1)
rh_migr.log:2016/06/07 11:55:02 [105090/5] ExecCmd | Spawning external command "../../scripts/rbh_cksum.sh"
rh_migr.log:2016/06/07 11:55:02 [105090/5] ExecCmd | Failed to execute "../../scripts/rbh_cksum.sh /mnt/lustre/file.1": Failed to execute child process "../../scripts/rbh_cksum.sh" (No such file or directory)
rh_migr.log:2016/06/07 11:55:02 [105090/5] check_exec | check command FAILED on: 0x2000013a4:0x1ff0d:0x0 (/mnt/lustre/file.1)
rh_migr.log:2016/06/07 11:55:02 [105090/5] checksum | Error applying action on entry /mnt/lustre/file.1: No child processes

rh_migr.log:2016/06/07 11:55:02 [105090/6] checksum | Entry /mnt/lustre/file.2 matches the condition for policy rule 'initial_check'.

rh_migr.log:2016/06/07 11:55:02 [105090/6] checksum | [0x2000013a4:0x1ff0e:0x0]: action_params:
rh_migr.log:2016/06/07 11:55:02 [105090/6] run_command | [0x2000013a4:0x1ff0e:0x0]: check action: cmd(../../scripts/rbh_cksum.sh /mnt/lustre/file.2)
rh_migr.log:2016/06/07 11:55:02 [105090/6] ExecCmd | Spawning external command "../../scripts/rbh_cksum.sh"
rh_migr.log:2016/06/07 11:55:02 [105090/6] ExecCmd | Failed to execute "../../scripts/rbh_cksum.sh /mnt/lustre/file.2": Failed to execute child process "../../scripts/rbh_cksum.sh" (No such file or directory)
rh_migr.log:2016/06/07 11:55:02 [105090/6] check_exec | check command FAILED on: 0x2000013a4:0x1ff0e:0x0 (/mnt/lustre/file.2)
rh_migr.log:2016/06/07 11:55:02 [105090/6] checksum | Error applying action on entry /mnt/lustre/file.2: No child processes

rh_migr.log:2016/06/07 11:55:02 [105090/7] checksum | Entry /mnt/lustre/file.3 matches the condition for policy rule 'initial_check'.

rh_migr.log:2016/06/07 11:55:02 [105090/7] checksum | [0x2000013a4:0x1ff0f:0x0]: action_params:
rh_migr.log:2016/06/07 11:55:02 [105090/7] run_command | [0x2000013a4:0x1ff0f:0x0]: check action: cmd(../../scripts/rbh_cksum.sh /mnt/lustre/file.3)
rh_migr.log:2016/06/07 11:55:02 [105090/7] ExecCmd | Spawning external command "../../scripts/rbh_cksum.sh"
rh_migr.log:2016/06/07 11:55:02 [105090/7] ExecCmd | Failed to execute "../../scripts/rbh_cksum.sh /mnt/lustre/file.3": Failed to execute child process "../../scripts/rbh_cksum.sh" (No such file or directory)
rh_migr.log:2016/06/07 11:55:02 [105090/7] check_exec | check command FAILED on: 0x2000013a4:0x1ff0f:0x0 (/mnt/lustre/file.3)
rh_migr.log:2016/06/07 11:55:02 [105090/7] checksum | Error applying action on entry /mnt/lustre/file.3: No child processes

rh_migr.log:2016/06/07 11:55:02 [105090/8] checksum | Entry /mnt/lustre/file.4 matches the condition for policy rule 'initial_check'.

rh_migr.log:2016/06/07 11:55:02 [105090/8] checksum | [0x2000013a4:0x1ff10:0x0]: action_params:
rh_migr.log:2016/06/07 11:55:02 [105090/8] run_command | [0x2000013a4:0x1ff10:0x0]: check action: cmd(../../scripts/rbh_cksum.sh /mnt/lustre/file.4)
rh_migr.log:2016/06/07 11:55:02 [105090/8] ExecCmd | Spawning external command "../../scripts/rbh_cksum.sh"
rh_migr.log:2016/06/07 11:55:02 [105090/8] ExecCmd | Failed to execute "../../scripts/rbh_cksum.sh /mnt/lustre/file.4": Failed to execute child process "../../scripts/rbh_cksum.sh" (No such file or directory)
rh_migr.log:2016/06/07 11:55:02 [105090/8] check_exec | check command FAILED on: 0x2000013a4:0x1ff10:0x0 (/mnt/lustre/file.4)
rh_migr.log:2016/06/07 11:55:02 [105090/8] checksum | Error applying action on entry /mnt/lustre/file.4: No child processes
rh_migr.log:2016/06/07 11:55:03 [105090/3] checksum | End of current pass
rh_migr.log:2016/06/07 11:55:03 [105090/3] checksum | target: none
rh_migr.log:2016/06/07 11:55:03 [105090/3] checksum | done: none
rh_migr.log:2016/06/07 11:55:03 [105090/3] checksum | Policy run summary: time=01s; target=all; 0 successful actions (0.00/sec); volume: 0 (0/sec); 0 entries skipped; 4 errors.
rh_migr.log:2016/06/07 11:55:03 [105090/3] checksum | Policy run terminated with status 0
ERROR Unexpected status 'failed' for /mnt/lustre/file.2 (ok expected)
ERROR Unexpected status 'failed' for /mnt/lustre/file.3 (ok expected)
ERROR Unexpected status 'failed' for /mnt/lustre/file.4 (ok expected)
No sum (last_check criteria)
New sum (last_check OK)
ERROR 3 default rule expected (3, 0)
rh_migr.log:2016/06/07 11:55:08 [105198/6] checksum | [0x2000013a4:0x1ff0e:0x0]: action_params:
rh_migr.log:2016/06/07 11:55:08 [105198/6] run_command | [0x2000013a4:0x1ff0e:0x0]: check action: cmd(../../scripts/rbh_cksum.sh /mnt/lustre/file.2)
rh_migr.log:2016/06/07 11:55:08 [105198/6] ExecCmd | Spawning external command "../../scripts/rbh_cksum.sh"
rh_migr.log:2016/06/07 11:55:08 [105198/6] ExecCmd | Failed to execute "../../scripts/rbh_cksum.sh /mnt/lustre/file.2": Failed to execute child process "../../scripts/rbh_cksum.sh" (No such file or directory)
rh_migr.log:2016/06/07 11:55:08 [105198/6] check_exec | check command FAILED on: 0x2000013a4:0x1ff0e:0x0 (/mnt/lustre/file.2)
rh_migr.log:2016/06/07 11:55:08 [105198/6] checksum | Error applying action on entry /mnt/lustre/file.2: No child processes

rh_migr.log:2016/06/07 11:55:08 [105198/7] checksum | Entry /mnt/lustre/file.3 matches the condition for policy rule 'initial_check'.

rh_migr.log:2016/06/07 11:55:08 [105198/8] checksum | [0x2000013a4:0x1ff10:0x0]: action_params:
rh_migr.log:2016/06/07 11:55:08 [105198/8] run_command | [0x2000013a4:0x1ff10:0x0]: check action: cmd(../../scripts/rbh_cksum.sh /mnt/lustre/file.4)
rh_migr.log:2016/06/07 11:55:08 [105198/8] ExecCmd | Spawning external command "../../scripts/rbh_cksum.sh"
rh_migr.log:2016/06/07 11:55:08 [105198/7] ExecCmd | Failed to execute "../../scripts/rbh_cksum.sh /mnt/lustre/file.3": Failed to execute child process "../../scripts/rbh_cksum.sh" (No such file or directory)
rh_migr.log:2016/06/07 11:55:08 [105198/7] check_exec | check command FAILED on: 0x2000013a4:0x1ff0f:0x0 (/mnt/lustre/file.3)
rh_migr.log:2016/06/07 11:55:08 [105198/7] checksum | Error applying action on entry /mnt/lustre/file.3: No child processes
rh_migr.log:2016/06/07 11:55:08 [105198/8] ExecCmd | Failed to execute "../../scripts/rbh_cksum.sh /mnt/lustre/file.4": Failed to execute child process "../../scripts/rbh_cksum.sh" (No such file or directory)
rh_migr.log:2016/06/07 11:55:08 [105198/8] check_exec | check command FAILED on: 0x2000013a4:0x1ff10:0x0 (/mnt/lustre/file.4)
rh_migr.log:2016/06/07 11:55:08 [105198/8] checksum | Error applying action on entry /mnt/lustre/file.4: No child processes
rh_migr.log:2016/06/07 11:55:09 [105198/3] checksum | End of current pass
rh_migr.log:2016/06/07 11:55:09 [105198/3] checksum | target: none
rh_migr.log:2016/06/07 11:55:09 [105198/3] checksum | done: none
rh_migr.log:2016/06/07 11:55:09 [105198/3] checksum | Policy run summary: time=01s; target=all; 0 successful actions (0.00/sec); volume: 0 (0/sec); 1 entries skipped; 3 errors.
rh_migr.log:2016/06/07 11:55:09 [105198/3] checksum | Policy run terminated with status 0
ERROR Unexpected status 'failed' for /mnt/lustre/file.2 (ok expected)
ERROR Unexpected status 'failed' for /mnt/lustre/file.3 (ok expected)
ERROR Unexpected status 'failed' for /mnt/lustre/file.4 (ok expected)
Test end: 2016-06-07 11:55:10.000050860
duration: 12.734459493 sec
Filesystem cleanup...

make rpm failing on SL 7.2 with Lustre 2.8.0, RobinH 3.0

make rpm give this error:
error: line 29: Tag takes single token only: Release: 0.alpha1.lustrepackage lustre is not installed.el7

Here is my package lustre packages list:

rpm -qa | grep -i lustre
lustre-client-modules-2.8.0-3.10.0_327.3.1.el7.x86_64.x86_64
lustre-client-2.8.0-3.10.0_327.3.1.el7.x86_64.x86_64

The configure setup was: ./configure --prefix=/opt/robinhood --enable-lustre

Specify config file in module / environment

We use robinhood via gnu modules, and have a shared software path between two clusters with different instances of robinhood

is it possible to point to some enviroment variable for the config file so we can
export ROBINHOOD_CONF=/software/etc/robinhood-${CLUSTER}.cfg or similar?

it works manually specifying -f on the command line for each time I run the apps, but it'd be nice to do this transparently

expected db size?

Is there some kind of metric or best guess for approximately how much room the robinhood mysql databases will need once a full scan is complete? We have a 161TB lustre system and the initial scan keeps filling up our volume. The highest it has been so far is 10GB but we keep having to increase the size of our volume because mysql keeps locking up due to no space left.

Is there some way to know how much space we will require?

Non-default rules fail to execute

In 3.0, (2.99, etc). It appears that non-default rules within policies fail to execute. This may be related to the full file system scan not completing issues posted here, however as it stands now, the latest pull (as of last night) no rules within a policy (periodic or otherwise) appear to execute at all. That said, default rules do execute, however file class rules are explicitly disallowed.

compilation errors on SLES11 sp4

working with tarball robinhood-3.0-final on a sles11 sp4 box

automake-1.10.1-4.131.9.1.x86_64
autoconf-2.63-1.160.2.x86_64

aelwell@f001:~/compile$ tar zxvf ../robinhood-3.0-final.tar.gz
robinhood-3.0-final/
robinhood-3.0-final/.commit-template
robinhood-3.0-final/.gitignore
robinhood-3.0-final/COPYING
robinhood-3.0-final/ChangeLog
...
robinhood-3.0-final/web_gui/gui_v3/lang/sys.php
robinhood-3.0-final/web_gui/robinhood.conf
aelwell@f001:~/compile$ cd robinhood-3.0-final/
aelwell@f001:~/compile/robinhood-3.0-final$ sh autogen.sh
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `autotools'.
libtoolize: copying file `autotools/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `autotools/m4'.
libtoolize: copying file `autotools/m4/libtool.m4'
libtoolize: copying file `autotools/m4/ltoptions.m4'
libtoolize: copying file `autotools/m4/ltsugar.m4'
libtoolize: copying file `autotools/m4/ltversion.m4'
libtoolize: copying file `autotools/m4/lt~obsolete.m4'
configure:17702: error: possibly undefined macro: AM_DEFAULT_VERBOSITY
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1

adding in m4_pattern_allow([AM_DEFAULT_VERBOSITY]) to configure.ac still doesn't work:

aelwell@f001:~/compile/robinhood-3.0-final$ vim configure.ac
aelwell@f001:~/compile/robinhood-3.0-final$ sh autogen.sh
configure.ac:83: installing `autotools/compile'
configure.ac:79: installing `autotools/config.guess'
configure.ac:79: installing `autotools/config.sub'
configure.ac:18: installing `autotools/install-sh'
configure.ac:18: installing `autotools/missing'
src/cfg_parsing/Makefile.am: installing `autotools/depcomp'
configure.ac: installing `autotools/ylwrap'
automake: create_nostripe_OBJECTS should not be defined
src/tests/Makefile.am:12:   while processing program `create_nostripe'
automake: test_confparam_OBJECTS should not be defined
src/tests/Makefile.am:9:   while processing program `test_confparam'
automake: test_forcestripe_OBJECTS should not be defined
src/tests/Makefile.am:12:   while processing program `test_forcestripe'
automake: test_params_OBJECTS should not be defined
src/tests/Makefile.am:9:   while processing program `test_params'
automake: test_parse_OBJECTS should not be defined
src/tests/Makefile.am:9:   while processing program `test_parse'
automake: test_uidgidcache_OBJECTS should not be defined
src/tests/Makefile.am:9:   while processing program `test_uidgidcache'
autoreconf: automake failed with exit status: 1

Any ideas?

robinhood-posix rpm installation : /etc/ld.so.conf.d conflicts

Hello,

I'm running in a clean CentOS 7 environment (docker run -it centos:7 /bin/bash).

The problem occurs when installing the robinhood-posix rpm package (using yum localinstall or rpm -i) :

Transaction check error:
  file /etc/ld.so.conf.d from install of robinhood-posix-3.0-0.rc1.el7.centos.x86_64 conflicts with file from package glibc-2.17-106.el7_2.6.x86_64

Here are the steps :

# curl -L "http://downloads.sourceforge.net/project/robinhood/robinhood/3.0-rc1/rpms/robinhood-adm-3.0-0.rc1.noarch.x86_64.rpm?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Frobinhood%2Ffiles%2Frobinhood%2F3.0-rc1%2Frpms%2F&ts=1473078422&use_mirror=heanet" -o robinhood-adm-3.0-0.rc1.noarch.x86_64.rpm

#ย curl -L "http://downloads.sourceforge.net/project/robinhood/robinhood/3.0-rc1/rpms/posix_fs/robinhood-posix-3.0-0.rc1.el7.centos.x86_64.rpm?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Frobinhood%2Ffiles%2Frobinhood%2F3.0-rc1%2Frpms%2Fposix_fs%2F&ts=1473078495&use_mirror=netcologne" -o robinhood-posix-3.0-0.rc1.el7.centos.x86_64.rpm

# yum localinstall -y robinhood-adm-3.0-0.rc1.noarch.x86_64.rpm 
Loaded plugins: fastestmirror, ovl
Examining robinhood-adm-3.0-0.rc1.noarch.x86_64.rpm: robinhood-adm-3.0-0.rc1.noarch.x86_64
Marking robinhood-adm-3.0-0.rc1.noarch.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package robinhood-adm.x86_64 0:3.0-0.rc1.noarch will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================================================================
 Package                                             Arch                                         Version                                                 Repository                                                                    Size
=============================================================================================================================================================================================================================================
Installing:
 robinhood-adm                                       x86_64                                       3.0-0.rc1.noarch                                        /robinhood-adm-3.0-0.rc1.noarch.x86_64                                        20 k

Transaction Summary
=============================================================================================================================================================================================================================================
Install  1 Package

Total size: 20 k
Installed size: 20 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : robinhood-adm-3.0-0.rc1.noarch.x86_64                                                                                                                                                                                     1/1 
  Verifying  : robinhood-adm-3.0-0.rc1.noarch.x86_64                                                                                                                                                                                     1/1 

Installed:
  robinhood-adm.x86_64 0:3.0-0.rc1.noarch                                                                                                                                                                                                    

Complete!

# yum localinstall -y robinhood-posix-3.0-0.rc1.el7.centos.x86_64.rpm 
Loaded plugins: fastestmirror, ovl
Examining robinhood-posix-3.0-0.rc1.el7.centos.x86_64.rpm: robinhood-posix-3.0-0.rc1.el7.centos.x86_64
Marking robinhood-posix-3.0-0.rc1.el7.centos.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package robinhood-posix.x86_64 0:3.0-0.rc1.el7.centos will be installed
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: robinhood-posix-3.0-0.rc1.el7.centos.x86_64
Loading mirror speeds from cached hostfile
 * base: miroir.univ-paris13.fr
 * extras: ftp.pasteur.fr
 * updates: ftp.pasteur.fr
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: robinhood-posix-3.0-0.rc1.el7.centos.x86_64
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.50-1.el7_2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================================================================
 Package                                            Arch                                      Version                                                  Repository                                                                       Size
=============================================================================================================================================================================================================================================
Installing:
 robinhood-posix                                    x86_64                                    3.0-0.rc1.el7.centos                                     /robinhood-posix-3.0-0.rc1.el7.centos.x86_64                                    3.1 M
Installing for dependencies:
 mariadb-libs                                       x86_64                                    1:5.5.50-1.el7_2                                         updates                                                                         755 k

Transaction Summary
=============================================================================================================================================================================================================================================
Install  1 Package (+1 Dependent package)

Total size: 3.9 M
Installed size: 7.5 M
Downloading packages:
Running transaction check
Running transaction test


Transaction check error:
  file /etc/ld.so.conf.d from install of robinhood-posix-3.0-0.rc1.el7.centos.x86_64 conflicts with file from package glibc-2.17-106.el7_2.6.x86_64

Error Summary
-------------

Avoiding RPM build error: canonicalization unexpectedly shrank by one character

I just hit a strange issue when compiling the latest b_3.0 against Lustre.

This works well:

$ ./configure --with-lustre=$HOME/lustre-release_2_5

but this doesn't:

./configure --with-lustre=$HOME/lustre-release_2_5/
...
extracting debug info from /tmp/robinhood/rpms/BUILDROOT/robinhood-3.0-0.alpha2.lustre2.5.el6.x86_64/usr/lib64/robinhood/librbh_mod_backup.so.0.0.0
/usr/lib/rpm/debugedit: canonicalization unexpectedly shrank by one character
error: Bad exit status from /var/tmp/rpm-tmp.UNuUsa (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.UNuUsa (%install)
make: *** [rpms] Error 1

Did you notice the difference? It's the / at the end of the lustre path. I wanted to share this as it took me some time to find out... I don't know if that's easily fixable.

Test 609 fails

==== TEST #609 TriggerPurge_QuotaExceeded.conf (TEST_TRIGGER_PURGE_QUOTA_EXCEEDED) ====
Test start: 2016-06-07 12:14:18.260799878
1-Create Files ...
2-Reading changelogs and Applying purge trigger policy...
ERROR ********** TEST FAILED **********
Test end: 2016-06-07 12:14:50.709100646
duration: 32.445918348 sec
Filesystem cleanup...

Add --enable-dist configure mode

There is currently a bootstrap problem when installing robinhood from git: in order to create an RPM, one needs a source RPM, but for that we need a .spec file, but for that we need to run ./configure first, but this will only succeed if a number of runtime dependencies for robinhood are installed on the host first.

Ideally, we wouldn't need to install anything on the host. It should be possible to obtain a .spec file and a source distribution without running all the configure checks. This is what Lustre 2.8 does. It features a special --enable-dist flag, which is very handy to solve the aforementioned bootstrapping problem.

This is a feature request for adding the very same functionality to robinhood's ./configure script.

Full scan ends but not really (v3.0)

Hi - At the end of a full scan in v3.0, robinhood doesn't tag the scan as finished and displays erroneous last action time.

The log sample below (STATS dumped every 5 min) shows that scan ends on 2016/05/02 at about 12:31:37. At that time, the total number of inodes matches Lustre inodes count so I assume that the scan is indeed finished. Last action suddenly changes from 2016/05/02 12:26:37 (00s ago) to 2016/04/30 19:36:12 (1.7d ago).

$ grep STATS /var/log/robinhood/scratch.log | grep 2016/05/02 | egrep 'started at|last action|progress'
<skip>
2016/05/02 12:11:37 [30793/1] STATS |      progress   : 388923887 entries scanned (0 errors)
2016/05/02 12:16:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.6d ago)
2016/05/02 12:16:37 [30793/1] STATS |      last action: 2016/05/02 12:16:37 (00s ago)
2016/05/02 12:16:37 [30793/1] STATS |      progress   : 389435186 entries scanned (0 errors)
2016/05/02 12:21:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.6d ago)
2016/05/02 12:21:37 [30793/1] STATS |      last action: 2016/05/02 12:21:37 (00s ago)
2016/05/02 12:21:37 [30793/1] STATS |      progress   : 389945307 entries scanned (0 errors)
2016/05/02 12:26:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.6d ago)
2016/05/02 12:26:37 [30793/1] STATS |      last action: 2016/05/02 12:26:37 (00s ago)
2016/05/02 12:26:37 [30793/1] STATS |      progress   : 390461583 entries scanned (0 errors)
2016/05/02 12:31:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.6d ago)
2016/05/02 12:31:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 12:31:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 12:36:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.6d ago)
2016/05/02 12:36:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 12:36:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 12:41:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 12:41:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 12:41:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 12:46:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 12:46:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 12:46:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 12:51:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 12:51:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 12:51:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 12:56:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 12:56:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 12:56:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 13:01:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 13:01:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 13:01:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 13:06:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 13:06:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 13:06:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 13:11:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 13:11:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 13:11:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 13:16:37 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (2.7d ago)
2016/05/02 13:16:37 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (1.7d ago)
2016/05/02 13:16:37 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
<skip>
2016/05/02 22:11:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.0d ago)
2016/05/02 22:11:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:11:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:16:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:16:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:16:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:21:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:21:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:21:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:26:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:26:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:26:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:31:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:31:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:31:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:36:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:36:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:36:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:41:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:41:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:41:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:46:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:46:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:46:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:51:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:51:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:51:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 22:56:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 22:56:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 22:56:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:01:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:01:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 23:01:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:06:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:06:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 23:06:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:11:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:11:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.1d ago)
2016/05/02 23:11:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:16:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:16:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:16:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:21:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:21:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:21:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:26:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:26:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:26:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:31:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:31:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:31:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:36:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:36:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:36:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:41:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:41:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:41:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:46:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:46:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:46:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:51:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:51:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:51:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)
2016/05/02 23:56:38 [30793/1] STATS |      started at : 2016/04/29 21:01:25 (3.1d ago)
2016/05/02 23:56:38 [30793/1] STATS |      last action: 2016/04/30 19:36:12 (2.2d ago)
2016/05/02 23:56:38 [30793/1] STATS |      progress   : 390508105 entries scanned (0 errors)

As of today, rbh-report -a shows:

    Last filesystem scan:
            status:          running
            start:           2016/04/29 21:01:25 (9d 13h 38min 52s ago)
            last action:     2016/04/30 19:36:12 (8d 15h 04min 05s ago)

         Statistics:
            entries scanned: 390508105
            errors:          0
            timeouts:        0
            # threads:       8
            average speed:   1860.47 entries/sec
        >>> current speed:   1965.60 entries/sec

Version: 3.0 alpha2

To work around this issue, how can I manually flag the scan as done?

Test 613n failure

==== TEST #613n PurgeClass_ExtendedAttribut.conf (TEST_PURGE_CLASS_EXTENDED_ATTRIBUT) ====
Test start: 2016-06-07 12:24:47.216789693
Create Files ...
setfattr: /mnt/lustre/dir1/file.4: Operation not supported
setfattr: /mnt/lustre/dir1/file.5: Operation not supported
Scan and apply purge policy (--run=purge --target=all)...
ERROR ********** TEST FAILED (Log): 0 files purged, but 1 expected
rh_purge.log:2016/06/07 12:24:48 [41348/1] Main | FS Scan module successfully initialized
rh_purge.log:2016/06/07 12:24:48 [41348/3] FS_Scan | Launching FS Scan starter thread
rh_purge.log:2016/06/07 12:24:48 [41348/4] Main | Statistics thread started
rh_purge.log:2016/06/07 12:24:48 [41348/3] FS_Scan | Starting scan of /mnt/lustre
rh_purge.log:2016/06/07 12:24:48 [41348/3] FS_Scan | 12 entries in DB before starting the scan
rh_purge.log:2016/06/07 12:24:48 [41348/5] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/5] Policy | [0x2000013a5:0xa115:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/6] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/6] Policy | [0x2000013a5:0xa10f:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/7] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/7] Policy | [0x2000013a5:0xa114:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/6] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/6] Policy | [0x2000013a5:0xa10e:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/8] FS_Scan | openat failed on <parent_fd=6>/link.2: Too many levels of symbolic links
rh_purge.log:2016/06/07 12:24:48 [41348/8] FS_Scan | openat failed on <parent_fd=6>/link.1: Too many levels of symbolic links
rh_purge.log:2016/06/07 12:24:48 [41348/9] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/9] Policy | [0x2000013a5:0xa116:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/10] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/10] Policy | [0x2000013a5:0xa10c:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/11] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/11] Policy | [0x2000013a5:0xa110:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/9] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/9] Policy | [0x2000013a5:0xa10d:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/8] FS_Scan | Flushing pipeline...
rh_purge.log:2016/06/07 12:24:48 [41348/12] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/12] Policy | [0x2000013a5:0xa10b:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/13] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/13] Policy | [0x2000013a5:0xa111:0x0]: an error occured when checking fileset 'test_attr'

rh_purge.log:2016/06/07 12:24:48 [41348/9] ListMgr | Direct deletion in NAMES table

rh_purge.log:2016/06/07 12:24:48 [41348/1] STATS | DB ops: get=2/ins=0/upd=12/rm=0
rh_purge.log:2016/06/07 12:24:48 [41348/1] Main | Policy purge successfully initialized
rh_purge.log:2016/06/07 12:24:48 [41348/16] purge | Checking policy rules for all
rh_purge.log:2016/06/07 12:24:48 [41348/16] purge | Building policy list - last full FS Scan: 2016/06/07 12:24:48
rh_purge.log:2016/06/07 12:24:48 [41348/16] purge | Starting policy run
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | Error while checking if entry [0x2000013a5:0xa10d:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/17] purge | Entry /mnt/lustre/dir1/file.1 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | [0x2000013a5:0xa10d:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error while checking if entry [0x2000013a5:0xa115:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/18] purge | Entry /mnt/lustre/dir2/file.7 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | [0x2000013a5:0xa115:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | Error while checking if entry [0x2000013a5:0xa114:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/19] purge | Entry /mnt/lustre/dir2/file.6 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | [0x2000013a5:0xa114:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/20] purge | Entry /mnt/lustre/dir1/link.2 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/17] purge | Entry /mnt/lustre/dir1/link.1 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error while checking if entry [0x2000013a5:0xa111:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/18] purge | Entry /mnt/lustre/dir1/file.5 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | [0x2000013a5:0xa111:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | Error while checking if entry [0x2000013a5:0xa110:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/19] purge | Entry /mnt/lustre/dir1/file.4 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/19] Policy | [0x2000013a5:0xa110:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/20] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/20] Policy | Error while checking if entry [0x2000013a5:0xa10f:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/20] purge | Entry /mnt/lustre/dir1/file.3 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/20] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/20] Policy | [0x2000013a5:0xa10f:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error while checking if entry [0x2000013a5:0xa10e:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/18] purge | Entry /mnt/lustre/dir1/file.2 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/18] Policy | [0x2000013a5:0xa10e:0x0]: an error occured when checking fileset 'test_attr'
rh_purge.log:2016/06/07 12:24:48 [41348/16] purge | Waiting for the end of current pass: still 4 entries pending (1 in queue, 3 being processed). Last action 0s ago.
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | Error while checking if entry [0x2000013a5:0xa116:0x0] matches file class 'test_attr' (in policy 'purge_test_attr')
rh_purge.log:2016/06/07 12:24:48 [41348/17] purge | Entry /mnt/lustre/dir2/file.8 doesn't match condition for policy rule 'default'
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_purge.log:2016/06/07 12:24:48 [41348/17] Policy | [0x2000013a5:0xa116:0x0]: an error occured when checking fileset 'test_attr'

rh_purge.log:2016/06/07 12:24:49 [41348/16] purge | End of current pass

rh_scan.log:2016/06/07 12:24:48 [41315/1] Main | FS Scan module successfully initialized
rh_scan.log:2016/06/07 12:24:48 [41315/3] FS_Scan | Launching FS Scan starter thread
rh_scan.log:2016/06/07 12:24:48 [41315/4] Main | Statistics thread started
rh_scan.log:2016/06/07 12:24:48 [41315/3] FS_Scan | Starting scan of /mnt/lustre
rh_scan.log:2016/06/07 12:24:48 [41315/3] FS_Scan | Notice: this is the first scan (DB is empty)
rh_scan.log:2016/06/07 12:24:48 [41315/5] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/5] Policy | [0x2000013a5:0xa115:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/6] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/6] Policy | [0x2000013a5:0xa10f:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/7] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/7] Policy | [0x2000013a5:0xa10e:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/8] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/8] Policy | [0x2000013a5:0xa114:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/9] FS_Scan | openat failed on <parent_fd=6>/link.2: Too many levels of symbolic links
rh_scan.log:2016/06/07 12:24:48 [41315/9] FS_Scan | openat failed on <parent_fd=6>/link.1: Too many levels of symbolic links
rh_scan.log:2016/06/07 12:24:48 [41315/10] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/10] Policy | [0x2000013a5:0xa116:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/11] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/11] Policy | [0x2000013a5:0xa10c:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/7] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/7] Policy | [0x2000013a5:0xa110:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/6] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/6] Policy | [0x2000013a5:0xa10d:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/12] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/12] Policy | [0x2000013a5:0xa111:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/9] FS_Scan | Flushing pipeline...
rh_scan.log:2016/06/07 12:24:48 [41315/6] Policy | Error: condition on extended attribute whereas this feature is not supported by the filesystem, or xattr name 'user.foo' is invalid)
rh_scan.log:2016/06/07 12:24:48 [41315/6] Policy | [0x2000013a5:0xa10b:0x0]: an error occured when checking fileset 'test_attr'
rh_scan.log:2016/06/07 12:24:48 [41315/6] FS_Scan | Callback from database for operation 'End of flush'
ERROR ********** TEST FAILED **********
Test end: 2016-06-07 12:24:49.774211981
duration: 2.553182357 sec
Filesystem cleanup...

Memory Leak?

Running a long filesystem scan causes server to OOM on robinhood. I ran valgrind for a short time and posing the results.

^Cbash-4.1# valgrind --trace-children=yes /data/robinhood/sbin/robinhood --once --scan=/nobackupp7/apotturi -l DEBUG
==57984== Memcheck, a memory error detector
==57984== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==57984== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==57984== Command: /data/robinhood/sbin/robinhood --once --scan=/nobackupp7/apotturi -l DEBUG
==57984==
Using config file '/data/robinhood/etc/robinhood.d/tmpfs/nbp7.conf'.
==57984== Warning: set address range perms: large range [0x5274000, 0x1776c000) (defined)
==57984== Warning: set address range perms: large range [0x1776c000, 0x29c64000) (defined)
==57984== Warning: set address range perms: large range [0x1776c000, 0x29c64000) (noaccess)
==57984== Warning: set address range perms: large range [0x177a1000, 0x29c99000) (defined)
==57984== Warning: set address range perms: large range [0x3aeed000, 0x4d3e5000) (defined)
==57984== Warning: set address range perms: large range [0x4d3e5000, 0x5f8dd000) (defined)
==57984== Warning: set address range perms: large range [0x5f8dd000, 0x71dd5000) (defined)
==57984== Warning: set address range perms: large range [0x71dd5000, 0x842cd000) (defined)
==57984== Warning: set address range perms: large range [0x842cd000, 0x967c5000) (defined)
==57984== Warning: set address range perms: large range [0x967c5000, 0xa8cbd000) (defined)
==57984== Warning: set address range perms: large range [0xa8cbd000, 0xbb1b5000) (defined)
==57984== Warning: set address range perms: large range [0xbb1b5000, 0xcd6ad000) (defined)
==57984== Warning: set address range perms: large range [0xcd6ad000, 0xdfba5000) (defined)
==57984== Warning: set address range perms: large range [0xdfba5000, 0xf209d000) (defined)
==57984== Warning: set address range perms: large range [0xf209d000, 0x104595000) (defined)
^C==57984==
==57984== HEAP SUMMARY:
==57984== in use at exit: 147,122,511 bytes in 8,075 blocks
==57984== total heap usage: 3,247,927 allocs, 3,239,852 frees, 19,123,818,935 bytes allocated
==57984==
^C==57984== LEAK SUMMARY:
==57984== definitely lost: 1,512 bytes in 9 blocks
==57984== indirectly lost: 0 bytes in 0 blocks
==57984== possibly lost: 145,366,120 bytes in 8,014 blocks
==57984== still reachable: 1,754,879 bytes in 52 blocks
==57984== suppressed: 0 bytes in 0 blocks
==57984== Rerun with --leak-check=full to see details of leaked memory
==57984==
==57984== For counts of detected and suppressed errors, rerun with: -v
==57984== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 6)
bash-4.1# valgrind --trace-children=yes --leak-check=full /data/robinhood/sbin/robinhood --once --scan=/nobackupp7/apotturi -l DEBUG
==58783== Memcheck, a memory error detector
==58783== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==58783== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==58783== Command: /data/robinhood/sbin/robinhood --once --scan=/nobackupp7/apotturi -l DEBUG
==58783==
Using config file '/data/robinhood/etc/robinhood.d/tmpfs/nbp7.conf'.
==58783== Warning: set address range perms: large range [0x5274000, 0x1776c000) (defined)
==58783== Warning: set address range perms: large range [0x1776c000, 0x29c64000) (defined)
==58783== Warning: set address range perms: large range [0x1776c000, 0x29c64000) (noaccess)
==58783== Warning: set address range perms: large range [0x177a1000, 0x29c99000) (defined)
==58783== Warning: set address range perms: large range [0x3aeed000, 0x4d3e5000) (defined)
==58783== Warning: set address range perms: large range [0x4d3e5000, 0x5f8dd000) (defined)
==58783== Warning: set address range perms: large range [0x5f8dd000, 0x71dd5000) (defined)
==58783== Warning: set address range perms: large range [0x71dd5000, 0x842cd000) (defined)
==58783== Warning: set address range perms: large range [0x842cd000, 0x967c5000) (defined)
==58783== Warning: set address range perms: large range [0x967c5000, 0xa8cbd000) (defined)
==58783== Warning: set address range perms: large range [0xa8cbd000, 0xbb1b5000) (defined)
==58783== Warning: set address range perms: large range [0xbb1b5000, 0xcd6ad000) (defined)
==58783== Warning: set address range perms: large range [0xcd6ad000, 0xdfba5000) (defined)
==58783== Warning: set address range perms: large range [0xdfba5000, 0xf209d000) (defined)
==58783== Warning: set address range perms: large range [0xf209d000, 0x104595000) (defined)
^C==58783==
==58783== HEAP SUMMARY:
==58783== in use at exit: 147,147,495 bytes in 8,083 blocks
==58783== total heap usage: 4,133,063 allocs, 4,124,980 frees, 24,335,674,999 bytes allocated
==58783==
==58783== 168 bytes in 1 blocks are definitely lost in loss record 25 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x367242FC96: my_thread_init (in /usr/lib64/mysql/libmysqlclient_r.so.16.0.0)
==58783== by 0x367242964C: mysql_server_init (in /usr/lib64/mysql/libmysqlclient_r.so.16.0.0)
==58783== by 0x367245226E: mysql_init (in /usr/lib64/mysql/libmysqlclient_r.so.16.0.0)
==58783== by 0x44C0F6: db_connect (mysql_wrapper.c:123)
==58783== by 0x435F88: ListMgr_InitAccess (listmgr_init.c:1850)
==58783== by 0x41732B: Robinhood_CheckScanDeadlines (fs_scan.c:1727)
==58783== by 0x41677C: scan_starter (fs_scan_main.c:43)
==58783== by 0x3671C079D0: start_thread (in /lib64/libpthread-2.12.so)
==58783== by 0x36710E8B5C: clone (in /lib64/libc-2.12.so)
==58783==
==58783== 304 bytes in 1 blocks are possibly lost in loss record 27 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x3670C118A2: _dl_allocate_tls (in /lib64/ld-2.12.so)
==58783== by 0x3671C071E8: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
==58783== by 0x40A96F: main (rbh_daemon.c:1376)
==58783==
==58783== 304 bytes in 1 blocks are possibly lost in loss record 28 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x3670C118A2: _dl_allocate_tls (in /lib64/ld-2.12.so)
==58783== by 0x3671C071E8: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
==58783== by 0x40AB40: main (rbh_daemon.c:1402)
==58783==
==58783== 304 bytes in 1 blocks are possibly lost in loss record 29 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x3670C118A2: _dl_allocate_tls (in /lib64/ld-2.12.so)
==58783== by 0x3671C071E8: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
==58783== by 0x4166D6: FSScan_Start (fs_scan_main.c:93)
==58783== by 0x40ABE9: main (rbh_daemon.c:1437)
==58783==
==58783== 608 bytes in 2 blocks are possibly lost in loss record 33 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x3670C118A2: _dl_allocate_tls (in /lib64/ld-2.12.so)
==58783== by 0x3671C071E8: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
==58783== by 0x418549: Robinhood_InitScanModule (fs_scan.c:1502)
==58783== by 0x4166A4: FSScan_Start (fs_scan_main.c:84)
==58783== by 0x40ABE9: main (rbh_daemon.c:1437)
==58783==
==58783== 1,176 bytes in 7 blocks are definitely lost in loss record 37 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x367242FC96: my_thread_init (in /usr/lib64/mysql/libmysqlclient_r.so.16.0.0)
==58783== by 0x367242964C: mysql_server_init (in /usr/lib64/mysql/libmysqlclient_r.so.16.0.0)
==58783== by 0x367245226E: mysql_init (in /usr/lib64/mysql/libmysqlclient_r.so.16.0.0)
==58783== by 0x44C0F6: db_connect (mysql_wrapper.c:123)
==58783== by 0x435F88: ListMgr_InitAccess (listmgr_init.c:1850)
==58783== by 0x41B5F5: entry_proc_worker_thr (entry_proc_impl.c:117)
==58783== by 0x3671C079D0: start_thread (in /lib64/libpthread-2.12.so)
==58783== by 0x36710E8B5C: clone (in /lib64/libc-2.12.so)
==58783==
==58783== 2,432 bytes in 8 blocks are possibly lost in loss record 38 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x3670C118A2: _dl_allocate_tls (in /lib64/ld-2.12.so)
==58783== by 0x3671C071E8: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
==58783== by 0x41B46C: EntryProcessor_Init (entry_proc_impl.c:329)
==58783== by 0x40AB70: main (rbh_daemon.c:1416)
==58783==
==58783== 145,362,168 bytes in 8,001 blocks are possibly lost in loss record 54 of 54
==58783== at 0x4A0577B: calloc (vg_replace_malloc.c:593)
==58783== by 0x419F22: EntryProcessor_Get (entry_proc_impl.c:1187)
==58783== by 0x418A8E: process_one_entry (fs_scan.c:849)
==58783== by 0x4190BE: process_one_dir (fs_scan.c:1066)
==58783== by 0x4194BA: Thr_scan (fs_scan.c:1214)
==58783== by 0x3671C079D0: start_thread (in /lib64/libpthread-2.12.so)
==58783== by 0x36710E8B5C: clone (in /lib64/libc-2.12.so)
==58783==
==58783== LEAK SUMMARY:
==58783== definitely lost: 1,344 bytes in 8 blocks
==58783== indirectly lost: 0 bytes in 0 blocks
==58783== possibly lost: 145,366,120 bytes in 8,014 blocks
==58783== still reachable: 1,780,031 bytes in 61 blocks
==58783== suppressed: 0 bytes in 0 blocks
==58783== Reachable blocks (those to which a pointer was found) are not shown.
==58783== To see them, rerun with: --leak-check=full --show-reachable=yes
==58783==
==58783== For counts of detected and suppressed errors, rerun with: -v
==58783== ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 6 from 6)

Old lustre fid's

We have a filesystem updated from lustre 1.8 to 2.4. When scanning or reading log, the new files are processed fine by robinhood, but for old ones robinhood is giving errors:

2014/11/20 15:42:45 [15549/2] FS_Scan | Skipping because its FID couldn't be resolved

Is there a way to fix this behaviour?

Many errors with mysql 5.7.12

I have following setup:
mysql 5.7.12 community edition
robinhood 2.5.5(or 3.0.0 alpha )
The command scan throws many errors:
robinhood -f llust -L stdout --scan --once

2016/04/28 17:48:53 [2182/3] ListMgr | DB query failed in ListMgr_BatchInsert line 342: code=7:
2016/04/28 17:48:53 [2182/3] EntryProc | Error 7 performing batch database operation: request error.
2016/04/28 17:48:53 [2182/8] ListMgr | Unhandled error 3020: default conversion to DB_REQUEST_FAILED
2016/04/28 17:48:53 [2182/8] ListMgr | Error 7 executing query 'INSERT INTO ENTRIES(id,owner,gr_name,size,b....
.....

What could be the reason?
thanks,
Arman

Can't exclude sorting in rmdir module

Can this be implemented in the same way as purge?

resmon_purge.c: sort_type.order = (resmon_config.sort ? SORT_ASC : SORT_NONE);

but there's a hard-coded
rmdir_main.c: sort_type.attr_index = ATTR_INDEX_last_mod;
rmdir_main.c: sort_type.order = SORT_ASC;
(twice) in the source for rmdir. Is this necessary?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.