testsuite not checking fifo & permision

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

testsuite not checking fifo & permision

Johannes Müller
Hi,

I would like to use additional third party testsuites similar to
pjd-fstest (found here:
http://www.tuxera.com/community/posix-test-suite/). The problem is that
my filesystem does not support chmod, chown, or named pipes. So is there
an other testsuite for my purpose? Or would it be better to adapt
pjd-fstest?
Also, it would be great to have tests that simulate long-term usage of
the filesystem that might be based on "common" data and usage patterns.
Common meaning text, video, and other files. Usage patterns could be
write once read many, do lots of copying and moving, change small parts
of files, random operations etc. I think this is a good way to evaluate
performance, reliability, and to find bugs like memory leaks, or even
race conditions.
I wrote similar tests, and also used the iozone tool, which is great.
But if you have any suggestions, please let me know.

Regards,
Johannes Müller

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Jean-Pierre André
Hi,

Johannes Müller wrote:
> Hi,
>
> I would like to use additional third party testsuites similar to
> pjd-fstest (found here:
> http://www.tuxera.com/community/posix-test-suite/). The problem is that
> my filesystem does not support chmod, chown, or named pipes. So is there
> an other testsuite for my purpose? Or would it be better to adapt
> pjd-fstest?

Adapting pjd-fstest should simple enough. See for instance
the "if setfacl" tests in xacl/*.t to avoid the Posix ACL
tests on file systems which do not support them.

Also note that utime(2) tests are missing...

If you go that way, please make your changes available.

> Also, it would be great to have tests that simulate long-term usage of
> the filesystem that might be based on "common" data and usage patterns.
> Common meaning text, video, and other files. Usage patterns could be
> write once read many, do lots of copying and moving, change small parts
> of files, random operations etc. I think this is a good way to evaluate
> performance, reliability, and to find bugs like memory leaks, or even
> race conditions.

> I wrote similar tests, and also used the iozone tool, which is great.
> But if you have any suggestions, please let me know.

Maybe fsx : http://codemonkey.org.uk/projects/fsx/samba-fsx.c

Regards

Jean-Pierre


------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Goswin von Brederlow-2
In reply to this post by Johannes Müller
On Tue, Jun 04, 2013 at 10:34:21AM +0200, Johannes Müller wrote:

> Hi,
>
> I would like to use additional third party testsuites similar to
> pjd-fstest (found here:
> http://www.tuxera.com/community/posix-test-suite/). The problem is that
> my filesystem does not support chmod, chown, or named pipes. So is there
> an other testsuite for my purpose? Or would it be better to adapt
> pjd-fstest?
> Also, it would be great to have tests that simulate long-term usage of
> the filesystem that might be based on "common" data and usage patterns.
> Common meaning text, video, and other files. Usage patterns could be
> write once read many, do lots of copying and moving, change small parts
> of files, random operations etc. I think this is a good way to evaluate
> performance, reliability, and to find bugs like memory leaks, or even
> race conditions.
> I wrote similar tests, and also used the iozone tool, which is great.
> But if you have any suggestions, please let me know.
>
> Regards,
> Johannes Müller

Some time ago (has it realy been 6 years?) I wrote a tool to check the
integrity of filesystems better. To detect data corruption from both
the filesystem and the underlying storage device.

http://mrvn.dyndns.tv/fstest.tar.bz2
http://mrvn.dyndns.tv/fstest/

Fstest randomly creates, verifies and deletes files in subdirectories
with a random size between minsize and maxsize and a random pattern
while keeping the filesystem around a fixed fill level.

On verify if a file does not contain the right pattern and error is
reported and fstest aborts. The filenames are based on the pattern in
each file so detecting when data from one file ends up in another
becomes possible. Or detecting when the raid storage reads back
corrupt data because the controlers ram is faulty. Files mysteriously
disapearing is also detected.

Thinks like permission, size, timestamps and such aren't checked. I
wrote this to find actual data corruption and to stress test. It
should also be good to test fragmentation. The higher you let the fs
fill up the worse fragmentation will be over time.

MfG
        Goswin

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Johannes Müller
In reply to this post by Jean-Pierre André
Hi,

First of all, thanks for your suggestions. (And excuse me for replying
directly to you, Jean, instead of writing to the mailing list.)

On 04.06.2013 11:32, Jean-Pierre wrote:
> Adapting pjd-fstest should simple enough. See for instance
> the "if setfacl" tests in xacl/*.t to avoid the Posix ACL
> tests on file systems which do not support them.
>
> Also note that utime(2) tests are missing...
>
> If you go that way, please make your changes available.
I will try this and notify you when I make the version public in the
testsuite directory of my repository (http://nubisave.org).

>
>> Also, it would be great to have tests that simulate long-term usage of
>> the filesystem that might be based on "common" data and usage patterns.
>> Common meaning text, video, and other files. Usage patterns could be
>> write once read many, do lots of copying and moving, change small parts
>> of files, random operations etc. I think this is a good way to evaluate
>> performance, reliability, and to find bugs like memory leaks, or even
>> race conditions.
>
>> I wrote similar tests, and also used the iozone tool, which is great.
>> But if you have any suggestions, please let me know.
>
> Maybe fsx : http://codemonkey.org.uk/projects/fsx/samba-fsx.c
>
I have a problem running samba-fsx and don't know what the error
messages is supposed to mean. On a common fs it works neatly, though I
cannot see what causes the hickup.
#touch mnt/data/test1
#./samba-fsx -d -l 10000 -W -R -L mnt/data/test1
mapped writes DISABLED
Floating point exception (core dumped)

I logged the operations and it does create test1.fsxgood and
test1.fsxlog, or truncates them. Thereafter, both are flushed and
released three times before the error occurs.


Goswin, thanks, your test is running. First, I got a warning about
builtin strncat chk might overflow destination buffer, and ignored it
for now. (Though I made a backup to be on the save side :) )
After a while, it only does get_attribute calls, though. I am trying to
debug this, but I'm not into C at the moment:

Starting program: ../fstest/fstest
fstest v0.1
Directory           : ./fstest.5613
Goal percentage used: 90.000000%
Minimum size        : 2^20
Maximum size        : 2^35
Stats time          : 900s
Filesystem size     : 2147483648
Filesystem free     : 2145583104
Filesystem used     : 0.088501%
Starting test at    : Wed Jun  5 17:10:30 2013
<timestamp> write: <total> GiB, <total> MiB/s [<last> MiB/s] read:
<total> GiB, <total> MiB/s [<last> MiB/s] # ctime
1370445030 write: 0 GiB, 0.000000 MiB/s [0.000000 MiB/s] read: 0 GiB,
0.000000 MiB/s [0.000000 MiB/s] # Wed Jun  5 17:10:30 2013
1370445988 write: 0 GiB, 0.141962 MiB/s [0.141962 MiB/s] read: 0 GiB,
0.133612 MiB/s [0.133612 MiB/s] # Wed Jun  5 17:26:28 2013
Goal of 90.000000% reached
1370447100 write: 4 GiB, 2.044444 MiB/s [3.683453 MiB/s] read: 0 GiB,
0.065700 MiB/s [0.007194 MiB/s] # Wed Jun  5 17:45:00 2013
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7b018b0 in read () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) list
102    ++level;
103    max_files = level * level;
104    //fprintf(stderr, "Going to level %d\n", level);
105    dir_activate_dirs();
106    (void)dir_create(NULL, level);
107 };
108    }
109 }
110
111 int main(int argc, char * const argv[]) {

I cluttered your program with logging statements and will see what it
turns up. Do you have any hunch? And could you explain the output to me?


Regards,
Johannes



------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Johannes Müller
In reply to this post by Goswin von Brederlow-2
Hi,

So far your tool runs fine.
My experience for others:
I needed to change the line in Makefile before running make.
WARNFLAGS := -W -Wall
Then you can call fstest --help to give you the available options:
-p|--percent <percent> - goal percentage used of filesystem [default: 90].
-i|--min-size <i>      - use minimum size of 2^i bytes [default: 20,
which results in a minimum size of 1MB].
-a|--max-size <i>      - use maximum size of 2^i bytes [default: 35,
which results in a maximum size of32GB].
-t|--stats-time <i>    - report statistics at most every i seconds
[default: 900].

Example:
>>>fstest -a 28 -p 42 my_mount
This will create a nested directory structure with files with size
ranging from about 1MB to about 2^28 bytes, which is about 268MB.
When the file system reaches a capacity of over 42%, some of the created
files are deleted. The files are filled with the name of the file itself
written sequentially several times. Before the file is deleted, its
content is checked and an error occurs, if the content is corrupted.
This is done in a loop. Every 5 Minutes or so, a line of statistics is
printed to the output showing how much data was written and read, plus
the average speed.
Take care however, that maximum file size is not too large. I had a
problem, because fstest tried to write a 4GB file, whereas my file
system has a maximal capacity of 2GB; Though it might still prove useful
to see if your fs can handle the exception gracefully.

Thank you very much Goswin, I will integrate fstest and probably just
let it run on my test PC whenevr it has nothing else to do :)

Also, I remembered that there is Bonny(++) which I wanted to give a try
as well. Searching for a disk workload generator, I stumbled upon an
article suggesting several other tools: http://www.linux-mag.com/id/7464/

Regards,
Johannes

On 04.06.2013 15:10, Goswin von Brederlow wrote:

> On Tue, Jun 04, 2013 at 10:34:21AM +0200, Johannes Müller wrote:
>> Hi,
>>
>> I would like to use additional third party testsuites similar to
>> pjd-fstest (found here:
>> http://www.tuxera.com/community/posix-test-suite/). The problem is that
>> my filesystem does not support chmod, chown, or named pipes. So is there
>> an other testsuite for my purpose? Or would it be better to adapt
>> pjd-fstest?
>> Also, it would be great to have tests that simulate long-term usage of
>> the filesystem that might be based on "common" data and usage patterns.
>> Common meaning text, video, and other files. Usage patterns could be
>> write once read many, do lots of copying and moving, change small parts
>> of files, random operations etc. I think this is a good way to evaluate
>> performance, reliability, and to find bugs like memory leaks, or even
>> race conditions.
>> I wrote similar tests, and also used the iozone tool, which is great.
>> But if you have any suggestions, please let me know.
>>
>> Regards,
>> Johannes Müller
>
> Some time ago (has it realy been 6 years?) I wrote a tool to check the
> integrity of filesystems better. To detect data corruption from both
> the filesystem and the underlying storage device.
>
> http://mrvn.dyndns.tv/fstest.tar.bz2
> http://mrvn.dyndns.tv/fstest/
>
> Fstest randomly creates, verifies and deletes files in subdirectories
> with a random size between minsize and maxsize and a random pattern
> while keeping the filesystem around a fixed fill level.
>
> On verify if a file does not contain the right pattern and error is
> reported and fstest aborts. The filenames are based on the pattern in
> each file so detecting when data from one file ends up in another
> becomes possible. Or detecting when the raid storage reads back
> corrupt data because the controlers ram is faulty. Files mysteriously
> disapearing is also detected.
>
> Thinks like permission, size, timestamps and such aren't checked. I
> wrote this to find actual data corruption and to stress test. It
> should also be good to test fragmentation. The higher you let the fs
> fill up the worse fragmentation will be over time.
>
> MfG
> Goswin
>
>
------------------------------------------------------------------------------

> How ServiceNow helps IT people transform IT departments:
> 1. A cloud service to automate IT design, transition and operations
> 2. Dashboards that offer high-level views of enterprise services
> 3. A single system of record for all IT processes
> http://p.sf.net/sfu/servicenow-d2d-j
> _______________________________________________
> fuse-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/fuse-devel
>


------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Bernd Schubert-2
In reply to this post by Goswin von Brederlow-2
Hi all,

On 06/04/2013 03:10 PM, Goswin von Brederlow wrote:
> On Tue, Jun 04, 2013 at 10:34:21AM +0200, Johannes Müller wrote:
>> Hi,
>>
>> I would like to use additional third party testsuites similar to
>> pjd-fstest (found here:
>> http://www.tuxera.com/community/posix-test-suite/). The problem is that
>> my filesystem does not support chmod, chown, or named pipes. So is there
>> an other testsuite for my purpose? Or would it be better to adapt
>> pjd-fstest?

pjd-fstests are nice, but are in now way suitable for a cluster file
system to check posix consistency between clients. So one of our
students is currently using pjd-fstests as template and rewrites it into
python. The main idea is to use a server-client model and to send
command to any of the connected client. Partly that already works.
For now the main repository is:

https://bitbucket.org/bugsincode/posix_fstests

Later that will probably change to

https://bitbucket.org/aakef/posix_fstests



>> Also, it would be great to have tests that simulate long-term usage of
>> the filesystem that might be based on "common" data and usage patterns.
>> Common meaning text, video, and other files. Usage patterns could be
>> write once read many, do lots of copying and moving, change small parts
>> of files, random operations etc. I think this is a good way to evaluate
>> performance, reliability, and to find bugs like memory leaks, or even
>> race conditions.
>> I wrote similar tests, and also used the iozone tool, which is great.
>> But if you have any suggestions, please let me know.
>>
>> Regards,
>> Johannes Müller
>
> Some time ago (has it realy been 6 years?) I wrote a tool to check the
> integrity of filesystems better. To detect data corruption from both
> the filesystem and the underlying storage device.
>
> http://mrvn.dyndns.tv/fstest.tar.bz2
> http://mrvn.dyndns.tv/fstest/
>
> Fstest randomly creates, verifies and deletes files in subdirectories
> with a random size between minsize and maxsize and a random pattern
> while keeping the filesystem around a fixed fill level.
>
> On verify if a file does not contain the right pattern and error is
> reported and fstest aborts. The filenames are based on the pattern in
> each file so detecting when data from one file ends up in another
> becomes possible. Or detecting when the raid storage reads back
> corrupt data because the controlers ram is faulty. Files mysteriously
> disapearing is also detected.
>

In order to find issues more quickly I made it multithreaded (reader and
writer) and added other features. So an improved version is here:

https://bitbucket.org/aakef/ql-fstest


Cheers,
Bernd



------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Bernd Schubert-2
On 06/10/2013 01:25 PM, Bernd Schubert wrote:

> Hi all,
>
> On 06/04/2013 03:10 PM, Goswin von Brederlow wrote:
>> On Tue, Jun 04, 2013 at 10:34:21AM +0200, Johannes Müller wrote:
>>> Hi,
>>>
>>> I would like to use additional third party testsuites similar to
>>> pjd-fstest (found here:
>>> http://www.tuxera.com/community/posix-test-suite/). The problem is that
>>> my filesystem does not support chmod, chown, or named pipes. So is there
>>> an other testsuite for my purpose? Or would it be better to adapt
>>> pjd-fstest?
>

Err, sorry, I always only notice spelling mistakes once I sent a mail :(

> pjd-fstests are nice, but are in now way suitable for a cluster file

'in no way suitable', of course.



------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Johannes Müller
In reply to this post by Jean-Pierre André
Hi,

On 04.06.2013 11:32, Jean-Pierre wrote:
> Maybe fsx : http://codemonkey.org.uk/projects/fsx/samba-fsx.c

The first error hinted at an implementation issue of truncate. The tool
expects truncate to be able to extend a file to a larger size.
I am not quite sure if this is standard behaviour, even though the tool
claims in the error message, that my fs is not posix compatible.
After fixing this, I get the following message:

#./samba-fsx -d -l 10 -W -R mnt/data/test44
mapped writes DISABLED
Seed set to 1954412229 10
1 write 0x9 thru 0x9 (0x1 bytes)
Size error: expected 0xa stat 0x0 seek 0x0
LOG DUMP (1 total operations):
1(1 mod 256): WRITE 0x9 thru 0x9 (0x1 bytes) HOLE
Correct content saved for comparison
(maybe hexdump "mnt/data/test44" vs "mnt/data/test44.fsxgood")
Segmentation fault (core dumped)

Even though, the file is identical to the .fsxgood one. This is quite
unreadable output, as, sadly, I have experienced with most fs testing
tools. So I will have to dig through the code again, except anyone here
knows what to look for.

I didn't yet get pjd tests to run, but this will be the next step.

It would be great to have a graphical user interface, integrating most
of the fs testing tools, which translates parameters & output to
something user friendly. The main issue is, that the tools are not
reusable if you hardly understand the output and if they are
intransparent to the point that you have to riddle what they are
supposed to do.
Maybe I can initiate a project solving this, as I have written some hard
to understand tools myself and have to meddle with the other tools anyway :)

Regards,
Johannes



------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Jean-Pierre André
Hi,

Johannes Müller wrote:
> Hi,
>
> On 04.06.2013 11:32, Jean-Pierre wrote:
>> Maybe fsx : http://codemonkey.org.uk/projects/fsx/samba-fsx.c
>
> The first error hinted at an implementation issue of truncate. The tool
> expects truncate to be able to extend a file to a larger size.
> I am not quite sure if this is standard behaviour, even though the tool
> claims in the error message, that my fs is not posix compatible.


 From http://pubs.opengroup.org/onlinepubs/000095399/functions/truncate.html

"The truncate() function shall cause the regular file named by path to
have a size which shall be equal to length bytes.

If the file previously was larger than length, the extra data is
discarded. If the file was previously shorter than length, its size is
increased, and the extended area appears as if it were zero-filled"

> After fixing this, I get the following message:
>

Jean-Pierre


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: testsuite not checking fifo & permision

Johannes Müller
In reply to this post by Bernd Schubert-2
On 10.06.2013 13:25, Bernd Schubert wrote:

>
> pjd-fstests are nice, but are in now way suitable for a cluster file
> system to check posix consistency between clients. So one of our
> students is currently using pjd-fstests as template and rewrites it into
> python. The main idea is to use a server-client model and to send
> command to any of the connected client. Partly that already works.
> For now the main repository is:
>
> https://bitbucket.org/bugsincode/posix_fstests
>
> Later that will probably change to
>
> https://bitbucket.org/aakef/posix_fstests

Ah, if I understand correctly, you try to see if POSIX compilance is
preserved in a heavy multi-user environment. It seems to me that this is
a great endeavor.
> In order to find issues more quickly I made it multithreaded (reader and
> writer) and added other features. So an improved version is here:
>
> https://bitbucket.org/aakef/ql-fstest
I am successfully running ql-fstest for several days now and it
especially helps with generating load to monitor memory usage over a
long period of time. Could you explain the output though? The "read: 0
GiB" part has been over 1Gib already, but changes back to 0 from time to
time. Also, it would be interesting to know how the throughput rate is
calculated. Over the total run time/only while doing read or write/
including open, flush, and release? I am testing a network file system,
so for instance, files are transferred while being flushed.

1373878036 write: 0 GiB [0.0132087 MiB/s] read: 0 GiB [1.2632 MiB/s]
Files: 1 [0.0131579 files/s] # Mon Jul 15 10:47:16 2013
 idx write: 3 idx read: 0
Re-starting to read from index 0 (was 2)

At the moment it only operates on my local cache and does this all day long:
Re-starting to read from index 0 (was 2)

I guess this is because there is very little space in my file system. I
will see what happens, if I get it some more space.


Regards,
Johannes




------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel