Comments (6)
Sounds like someone called stat instead of Marfs stat
Assume in the copy where it is verifying dest
If it hasn't changed from long ago
I suppose we could start fuse everywhere for now on the batch nodes
Maybe someone missed an indirection level
From: David Bonnie [email protected]
Sent: Monday, March 28, 2016 9:42:05 AM
To: pftool/pftool
Subject: [pftool] pfcm appears to use "real" stat through FUSE - (#14)
Multi-host pfcm jobs appear to only compare properly on the node with FUSE mounted for MarFS:
(output shortened for brevity, the only rank on the FUSE host is RANK 5):
RANK 9: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150809.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150809.0 -- MISSING DESTINATION
RANK 7: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150723.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150723.0 -- MISSING DESTINATION
RANK 6: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150712.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150712.0 -- MISSING DESTINATION
RANK 3: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150714.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150714.0 -- MISSING DESTINATION
RANK 5: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20151030.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20151030.0 -- SUCCESS
INFO FOOTER ====== NONFATAL ERRORS = 167
INFO FOOTER Total Files/Links Examined: 211
INFO FOOTER Total Dirs Examined: 2
INFO FOOTER Total Files Compared: 211
INFO FOOTER Elapsed Time: 0 seconds
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/14
from pftool.
These do only pop up for compare jobs, so apparently it takes a different path through the code than copy jobs. Copy jobs do resolve stats properly through the MarFS library.
from pftool.
Yep, compare_file() apparently hasn't gotten any of the marfs love that went into copy_file().
It looks like everything is just straight POSIX ops, including open(). So, if two files happen to match in all their stat attributes, the compare will move on to comparing the contents of a POSIX file against the contents of the MDFS file.
There are only a few operations in compare_file(), so it should be pretty easy to marfs-ize it: PathFactory::create_shallow() with source and dest, then use stat/open/close methods.
Also, the hardwired comparison of stat attributes should be replaced with a call to samefile(), so that once we fix that, it will work everywhere.
Jeff
On Mar 28, 2016, at 9:47 AM, garygrider [email protected]
wrote:
Sounds like someone called stat instead of Marfs stat
Assume in the copy where it is verifying destIf it hasn't changed from long ago
I suppose we could start fuse everywhere for now on the batch nodes
Maybe someone missed an indirection level
From: David Bonnie [email protected]
Sent: Monday, March 28, 2016 9:42:05 AM
To: pftool/pftool
Subject: [pftool] pfcm appears to use "real" stat through FUSE - (#14)Multi-host pfcm jobs appear to only compare properly on the node with FUSE mounted for MarFS:
(output shortened for brevity, the only rank on the FUSE host is RANK 5):
RANK 9: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150809.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150809.0 -- MISSING DESTINATION
RANK 7: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150723.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150723.0 -- MISSING DESTINATION
RANK 6: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150712.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150712.0 -- MISSING DESTINATION
RANK 3: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150714.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150714.0 -- MISSING DESTINATION
RANK 5: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20151030.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20151030.0 -- SUCCESS
INFO FOOTER ====== NONFATAL ERRORS = 167INFO FOOTER Total Files/Links Examined: 211
INFO FOOTER Total Dirs Examined: 2
INFO FOOTER Total Files Compared: 211
INFO FOOTER Elapsed Time: 0 secondsYou are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/14
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
from pftool.
compare_file() was always TBD.
On Mar 28, 2016, at 9:56 AM, Jeff Inman [email protected]
wrote:
Yep, compare_file() apparently hasn't gotten any of the marfs love that went into copy_file().
It looks like everything is just straight POSIX ops, including open(). So, if two files happen to match in all their stat attributes, the compare will move on to comparing the contents of a POSIX file against the contents of the MDFS file.
There are only a few operations in compare_file(), so it should be pretty easy to marfs-ize it: PathFactory::create_shallow() with source and dest, then use stat/open/close methods.
Also, the hardwired comparison of stat attributes should be replaced with a call to samefile(), so that once we fix that, it will work everywhere.
Jeff
On Mar 28, 2016, at 9:47 AM, garygrider [email protected]
wrote:Sounds like someone called stat instead of Marfs stat
Assume in the copy where it is verifying destIf it hasn't changed from long ago
I suppose we could start fuse everywhere for now on the batch nodes
Maybe someone missed an indirection level
From: David Bonnie [email protected]
Sent: Monday, March 28, 2016 9:42:05 AM
To: pftool/pftool
Subject: [pftool] pfcm appears to use "real" stat through FUSE - (#14)Multi-host pfcm jobs appear to only compare properly on the node with FUSE mounted for MarFS:
(output shortened for brevity, the only rank on the FUSE host is RANK 5):
RANK 9: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150809.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150809.0 -- MISSING DESTINATION
RANK 7: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150723.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150723.0 -- MISSING DESTINATION
RANK 6: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150712.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150712.0 -- MISSING DESTINATION
RANK 3: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20150714.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20150714.0 -- MISSING DESTINATION
RANK 5: INFO DATACOMPARE compared /lustre/scratch5/dbonnie/errorlists/archive.errorlist.20151030.0 to /campaign/admins/dbonnie/errorlists/archive.errorlist.20151030.0 -- SUCCESS
INFO FOOTER ====== NONFATAL ERRORS = 167INFO FOOTER Total Files/Links Examined: 211
INFO FOOTER Total Dirs Examined: 2
INFO FOOTER Total Files Compared: 211
INFO FOOTER Elapsed Time: 0 secondsYou are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/14
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
from pftool.
Fixed. (Pending push.) Tested with pftool copy of a few 4k files, then pftool compare, on machines having a marfs mount as well as machines without.
Compare of file-contents (pftool -M) also works on these small files.
TBD: There is untested support, using the same mechanisms that work in copy_file(), to deal with N:1 files (i.e. comparing the actual contents of files with '-M').
from pftool.
Done. Verified 'pftool -w 2 -M' on an N:1 file.
There was also another bug with COMPARE/LIST jobs, where pftool was causing the destination to become unreadable. That's fixed, too.
from pftool.
Related Issues (20)
- Change python shebang to use system python in python wrappers via autotools
- Replace optparse with argparse HOT 1
- Refactor error checking for config file
- Remove references to threading in README
- Remove all code related to threaded vs not threaded in python wrappers HOT 1
- Unable to use pfrsync HOT 1
- Pftool writes fail into the root of a MarFS repository - HOT 5
- Pftool will not build HOT 3
- avoid touching destinations until doing actual work on them HOT 3
- coordinate logging cmd-line parameters and function implementations HOT 1
- missing config NS results in obscure "failed to stat path" HOT 2
- restart after SIGINT occasionally gets rename failures on individual chunk-files HOT 1
- changes to CTF for temp-files need to be made to CTA, as well
- pfcp shouldn't try to create temp-files on /dev/null HOT 1
- fatal error: openssl/md2.h: No such file or directory HOT 1
- Unable to build pftool without MarFS - HOT 1
- Pftool fails to build as a subdirectory of marfs HOT 2
- After using disable-marfs with configure not able to make HOT 4
- While running any command of pftool getting segmentation fault HOT 13
- upgrade python wrappers to be complatible with python3 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pftool.