[Dovecot] Unseen messages question

2012-04-14 Thread Antoine Nguyen
Hi list,

this question is related to the IMAP protocol itself, not really to
Dovecot.

I'm trying to understand what is the more efficient way to maintain the
number of unseen messages of the currently selected mailbox. RFC3501 says a
client must not issue a STATUS command to the selected mailbox and that
information sent by a SELECT is enough.

My current idea follows these steps :
* Issue a STATUS before the mailbox is selected => I know how many unseen
messages it contains
* SELECT the mailbox => I got the eventual first unseen message in this
mailbox but I don't understand how this info can be useful
* Maintain the unseen counter (on client side) according to what the user do
* Send a NOOP command every X minutes and look at the RECENT response to
see if there are new messages

I think it works pretty well when the mailbox is opened only once. Let's
imagine this mailbox is opened twice, by different clients. If one client
marks a message as \Seen, how can the second client know about this change?

Thanks for your help,

Antoine Nguyen
http://modoboa.org/


Re: [Dovecot] Better to use a single large storage server or multiple smaller for mdbox?

2012-04-14 Thread Ed W

On 14/04/2012 04:48, Stan Hoeppner wrote:

On 4/13/2012 10:31 AM, Ed W wrote:


You mean those "answers" like:
 "you need to read 'those' articles again"

Referring to some unknown and hard to find previous emails is not the
same as answering?

No, referring to this:

On 4/12/2012 5:58 AM, Ed W wrote:


The claim by ZFS/BTRFS authors and others is that data silently "bit
rots" on it's own.

Is it not a correct assumption that you read this in articles?  If you
read this in books, scrolls, or chiseled tablets, my apologies for
assuming it was articles.



WHAT?!!  The original context was that you wanted me to learn some very 
specific thing that you accused me of misunderstanding, and then it 
turns out that the thing I'm supposed to learn comes from re-reading 
every email, every blog post, every video, every slashdot post, every 
wiki, every ... that mentions ZFS's reason for including end to end 
checksumming?!!


Please stop wasting our time and get specific

You have taken my email which contained a specific question, been asked 
of you multiple times now and yet you insist on only answering 
irrelevant details with a pointed and personal dig on each answer.  The 
rudeness is unnecessary, and your evasiveness of answers does not fill 
me with confidence that you actually know the answer...


For the benefit of anyone reading this via email archives or whatever, I 
think the conclusion we have reached is that: modern systems are now a) 
a complex sum of pieces, any of which can cause an error to be injected, 
b) the level of error correction which was originally specified as being 
sufficient is now starting to be reached in real systems, possibly even 
consumer systems.  There is no "solution", however, the first step is to 
enhance "detection".  Various solutions have been proposed, all increase 
cost, computation or have some disadvantage - however, one of the more 
promising detection mechanisms is an end to end checksum, which will 
then have the effect of augmenting ALL the steps in the chain, not just 
one specific step.  As of today, only a few filesystems offer this, roll 
on more adopting it


Regards

Ed W


Re: [Dovecot] Better to use a single large storage server or multiple smaller for mdbox?

2012-04-14 Thread Jan-Frode Myklebust
On Fri, Apr 13, 2012 at 07:33:19AM -0500, Stan Hoeppner wrote:
> > 
> > What I meant wasn't the drive throwing uncorrectable read errors but
> > the drives are returning different data that each think is correct or
> > both may have sent the correct data but one of the set got corrupted
> > on the fly. After reading the articles posted, maybe the correct term
> > would be the controller receiving silently corrupted data, say due to
> > bad cable on one.
> 
> This simply can't happen.  What articles are you referring to?  If the
> author is stating what you say above, he simply doesn't know what he's
> talking about.

It has happened to me, with RAID5 not RAID1. It was a firmware bug
in the raid controller that caused the RAID array to go silently
corrupted. The HW reported everything green -- but the filesystem was
reporting lots of strange errors..  This LUN was part of a larger
filesystem striped over multiple LUNs, so parts of the fs was OK, while
other parts was corrupt.

It was this bug:

   
http://delivery04.dhe.ibm.com/sar/CMA/SDA/02igj/7/ibm_fw1_ds4kfc_07605200_anyos_anycpu.chg
   - Fix 432525 - CR139339  Data corruption found on drive after
 reconstruct from GHSP (Global Hot Spare)




> In closing, I'll simply say this:  If hardware, whether a mobo-down SATA
> chip, or a $100K SGI SAN RAID controller, allowed silent data corruption
> or transmission to occur, there would be no storage industry, and we'll
> all still be using pen and paper.  The questions you're asking were
> solved by hardware and software engineers decades ago.  You're fretting
> and asking about things that were solved decades ago.

Look at the plans are for your favorite fs:

http://www.youtube.com/watch?v=FegjLbCnoBw

They're planning on doing metadata checksumming to be sure they don't
receive corrupted metadata from the backend storage, and say that data
validation is a storage subsystem *or* application problem. 

Hardly a solved problem..


  -jf


Re: [Dovecot] Better to use a single large storage server or multiple smaller for mdbox?

2012-04-14 Thread Ed W

On 14/04/2012 04:31, Stan Hoeppner wrote:

On 4/13/2012 10:31 AM, Ed W wrote:

On 13/04/2012 13:33, Stan Hoeppner wrote:

In closing, I'll simply say this:  If hardware, whether a mobo-down SATA
chip, or a $100K SGI SAN RAID controller, allowed silent data corruption
or transmission to occur, there would be no storage industry, and we'll
all still be using pen and paper.  The questions you're asking were
solved by hardware and software engineers decades ago.  You're fretting
and asking about things that were solved decades ago.

So why are so many people getting excited about it now?

"So many"?  I know of one person "getting excited" about it.


You love being vague don't you?  Go on, I'll bite again, do you mean 
yourself?


:-)


Data densities and overall storage sizes and complexity at the top end
of the spectrum are increasing at a faster rate than the
consistency/validation mechanisms.  That's the entire point of the
various academic studies on the issue.


Again, you love being vague.  By your dismissive "academic studies" 
phrase, do you mean studies done on a major industrial player, ie NetApp 
in this case?  Or do you mean that it's rubbish because they asked 
someone with some background in statistics to do the work, rather than 
asking someone sitting nearby in the office to do it?


I don't think the researcher broke into NetApp to do this research, so 
we have to conclude that the industrial partner was onboard.  NetApp 
seem to do a bunch of engineering of their own (got enough patents..) 
that I think we can safely assume they very much do their own research 
on this and it's not just "academic"...  I doubt they publish all their 
own internal research, be thankful you got to see some of the results 
this way...



   Note that the one study required
a sample set of 1.5 million disk drives.  If the phenomenon were a
regular occurrence as you would have everyone here believe, they could
have used a much smaller sample set.


Sigh... You could criticise the study if it had a small number of drives 
as being under-representive and now you criticise a large study for 
having too many observations...


You cannot have "too many" observations when measuring a small and 
unpredictable phenomena...


Where does it say that they could NOT have reproduced this study with 
just 10 drives?  If you have 1.5 million available, why not use all the 
results??




Ed, this is an academic exercise.  Academia leads industry.  Almost
always has.  Academia blows the whistle and waves hands, prompting
industry to take action.


Sigh... We are back to the start of the email thread again... Gosh you 
seem to love arguing and muddying the water for zero reason but to have 
the last word?


It's *trivial* to do a google search and hit *lots* of reports of 
corruptions in various parts of the system, from corrupting drivers, to 
hardware which writes incorrectly, to operating system flaws.  I just 
found a bunch more in the Redhat database today while looking for 
something else.  You yourself are very vocal on avoiding certain brands 
of HD controller which have been rumoured to cause corrupted data... 
(and thankyou for revealing that kind of thing - it's very helpful)


Don't veer off at a tangent now: The *original* email this has spawned 
is about a VERY specific point.  RAID1 appears to offer less protection 
against a class of error conditions than does RAID6.  Nothing more, 
nothing less.  Don't veer off and talk about the minutiae of testing 
studies at universities, this is a straightforward claim that you have 
been jumping around and avoiding answering with claims of needing to 
educate me on SCSI protocols and other fatuous responses. Nor deviate 
and discuss that RAID6 is inappropriate for many situations - we all get 
that...





There is nothing normal users need to do to address this problem.


...except sit tight and hope they don't loose anything important!

:-)



Having the prestigious degree that you do, you should already understand
the relationship between academic research and industry, and the
considerable lead times involved.


I'm guessing you haven't attended higher education then?  You are 
confusing graduate and post-graduate systems...


Byee

Ed W



Re: [Dovecot] [OT] Outlook identities

2012-04-14 Thread Jerry
On Fri, 13 Apr 2012 12:13:30 -0400
Michael Orlitzky articulated:

> Exchange... the cure is worse than the disease! This isn't looking
> good -- I guess I'll continue to do what I have been: telling people
> to switch off of Outlook if they want their mail client to not suck.

First of all, there are no existing RFC's that require any MUA to meet
the requirements that you desire. So please, stop your wining and
crying. It is embarrassing.

Second, there are avenues available that can make Outlook behave in a
fashion that should be acceptable to you. If you choose not to pursue
them, then that is you business. I have had to endure hours of tedious
nonsense to get a simple sound card to work under a *.nix environment
when I could have simply plugged it into a machine running Microsoft
Windows and had it working immediately. Your "the cure is worse than
the disease" is just self-serving bull-shit.

Outlook + MS Exchange offers features that no other MUA presently comes
close to being able to duplicate in an office environment. If these
don't fit your needs, then please find an MUA that does. No one is
holding a gun to your head. However, your desire to force others to
abandon something that works fine for them to simple suit your narrow
view of what an MUA should or should not do stinks of fascism. I use
Outlook at work and claws-mail at home. Each one fits perfectly into
the environment I have chosen to use it in.

By the way, after examining your original post, I cannot find a single
thing that the proper use of filtering rules and plugins cannot easily
accomplish. Instead of your customers using a different MUA, they
should consider changing to a new service provider.

-- 
Jerry ♔

Disclaimer: off-list followups get on-list replies or get ignored.
Please do not ignore the Reply-To header.
__



Re: [Dovecot] Dovecot 2.1 with custom OpenSSL fails to build

2012-04-14 Thread Andreas M. Kirchwitz
Timo Sirainen  wrote:

 >> But two libraries are not quite okay. They don't find their SSL libs:
 >>
 >> libdovecot-lda.so
 >> libdovecot-storage.so
 >
 > Maybe this fixes it?
 >
 > http://hg.dovecot.org/dovecot-2.1/rev/8b91367bc3e1
 
Works perfectly! Great, now all components find their libraries
by themselves. Thanks a lot for fixing this issue which seemed
quite complicated.

Very good, thank you ... Andreas


[Dovecot] Compressed mbox - patch

2012-04-14 Thread Kamil Jońca

Some time ago I complained about very slow access to compressed mboxes.
Unfortunately it looks like that it is very little interest in it, so I
have to investigate some things by myself.

Firstly: some rationale.
Why do I prefer use mbox/maildir over mdbox. Short answer "bus factor"
for support mdbox (not only dovecot)
Longer answer: if something goes wrong withm maildir/mbox i can use
other tools (mutt, or formail or even text editor) and with mdbox ...

I am not ISP, I use dovecot as a "gateway" to my (rather huge) mail
archive. Most of these mails are rather valuable for me, so I prefer use
something "well-known-and-tested".
(I can't do like most ISP's do: write in "Terms of Service" that mail
can be lost or damaged and we give no warranty :) )

So then:

Below my patch. 
It contains 2 changes:
1. when buffer is compressed, we try to save last marked offset. 
2. Increase temporary buffer for decompression.

without these changes 1.5 GB of bzip compressed mbox with ~20K messages 
can't be open in 1.5 day
After applying 1. change it can be open in ~1.5 h 
With both changes it was a few minutes.

Maybe it is a good idea to add config parameter to specify size of
decompress buffer?


Patch is against v2.0.18


diff -x '*.o' -x '*.lo' -x '*.la' -u -r ../dovecot-2.0.18/src/lib/istream.c ./src/lib/istream.c
--- ../dovecot-2.0.18/src/lib/istream.c	2011-12-13 12:38:27.0 +0100
+++ ./src/lib/istream.c	2012-04-14 10:27:23.790724625 +0200
@@ -452,6 +452,22 @@
 	stream->pos -= stream->skip;
 
 	stream->skip = 0;
+
+}
+
+void i_stream_compress1(struct istream_private *stream, size_t bytes )
+{
+
+size_t lskip ;
+
+	lskip = (stream->skip > bytes ? bytes : stream->skip );
+
+	memmove(stream->w_buffer, stream->w_buffer + lskip ,
+		stream->pos - lskip);
+	stream->pos -= lskip;
+	stream->skip -= lskip;
+
+
 }
 
 void i_stream_grow_buffer(struct istream_private *stream, size_t bytes)
diff -x '*.o' -x '*.lo' -x '*.la' -u -r ../dovecot-2.0.18/src/lib/istream-internal.h ./src/lib/istream-internal.h
--- ../dovecot-2.0.18/src/lib/istream-internal.h	2011-12-13 12:38:27.0 +0100
+++ ./src/lib/istream-internal.h	2012-04-13 00:06:27.700298378 +0200
@@ -51,6 +51,7 @@
 i_stream_create(struct istream_private *stream, struct istream *parent, int fd);
 
 void i_stream_compress(struct istream_private *stream);
+void i_stream_compress1(struct istream_private *stream, size_t bytes );
 void i_stream_grow_buffer(struct istream_private *stream, size_t bytes);
 bool i_stream_get_buffer_space(struct istream_private *stream,
 			   size_t wanted_size, size_t *size_r);
 
diff -x '*.o' -x '*.lo' -x '*.la' -u -r ../dovecot-2.0.18/src/plugins/zlib/istream-bzlib.c ./src/plugins/zlib/istream-bzlib.c
--- ../dovecot-2.0.18/src/plugins/zlib/istream-bzlib.c	2012-02-09 18:32:48.0 +0100
+++ ./src/plugins/zlib/istream-bzlib.c	2012-04-14 10:35:04.349800777 +0200
@@ -9,12 +9,14 @@
 #include 
 
 #define CHUNK_SIZE (1024*64)
+#define BUFF_SIZE (1024*1024*16)
 
 struct bzlib_istream {
 	struct istream_private istream;
-
+	
 	bz_stream zs;
 	uoff_t eof_offset, stream_size;
+	uoff_t marked_offset;
 	size_t prev_size, high_pos;
 	struct stat last_parent_statbuf;
 
@@ -48,7 +50,6 @@
 	uoff_t high_offset;
 	size_t size;
 	int ret;
-
 	high_offset = stream->istream.v_offset + (stream->pos - stream->skip);
 	if (zstream->eof_offset == high_offset) {
 		i_assert(zstream->high_pos == 0 ||
@@ -87,7 +88,14 @@
 		if (stream->pos == stream->buffer_size) {
 			if (stream->skip > 0) {
 /* lose our buffer cache */
-i_stream_compress(stream);
+/* try to save our buffer cache as much as possible */
+
+if (zstream->marked && (stream-> skip - (stream->istream.v_offset - zstream->marked_offset)) >0 ){
+	
+	i_stream_compress1(stream, stream-> skip - (stream->istream.v_offset - zstream->marked_offset));
+} else {
+	i_stream_compress(stream);
+}
 			}
 
 			if (stream->pos == stream->buffer_size)
@@ -215,8 +223,12 @@
 	struct bzlib_istream *zstream = (struct bzlib_istream *) stream;
 	uoff_t start_offset = stream->istream.v_offset - stream->skip;
 
+	if (mark) 
+		zstream->marked_offset = v_offset;		
 	if (v_offset < start_offset) {
 		/* have to seek backwards */
+
+	
 		i_stream_bzlib_reset(zstream);
 		start_offset = 0;
 	} else if (zstream->high_pos != 0) {
@@ -243,6 +255,7 @@
 			}
 
 			i_stream_skip(&stream->istream, avail);
+
 		} while (i_stream_read(&stream->istream) >= 0);
 
 		if (stream->istream.v_offset != v_offset) {
@@ -260,8 +273,11 @@
 		}
 	}
 
-	if (mark)
+	if (mark){
 		zstream->marked = TRUE;
+		zstream->marked_offset = v_offset;
+	}
+
 }
 
 static const struct stat *
@@ -329,7 +345,9 @@
 	i_stream_bzlib_init(zstream);
 
 	zstream->istream.iostream.close = i_stream_bzlib_close;
-	zstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
+	//	zstream->istream.max_buffer_size = (input->real_stream->max_buffer_size);
+	zstream->istream.max_buffer_size = BUFF_SIZE;
+
 	zstream->istream.re

[Dovecot] Sieve pipe extension - can it retur something?

2012-04-14 Thread Kamil Jońca


I have a question about sieve pipe: can it return something to further
processing?
For example in procmail I can do:
--8<---cut here---start->8---
:0
VIRUS=`$CLAMSCAN --mbox --disable-summary --stdout -`
--8<---cut here---end--->8---
and then test VIRUS variable.

Maybe I missing something, when read
http://hg.rename-it.nl/pigeonhole-0.2-sieve-pipe/raw-file/tip/doc/rfc/spec-bosch-sieve-pipe.txt

KJ

-- 
http://sporothrix.wordpress.com/2011/01/16/usa-sie-krztusza-kto-nastepny/
Gloffing is a state of mine.



[Dovecot] Dovecot 2.1.4 and client certificates

2012-04-14 Thread Бранко Мајић
Version: 2.1.4
OS: Gentoo stable/amd64
OpenSSL version: 1.0.0h

I'm having a slight problem with the client certificates in Dovecot
2.1.4. I've set-up the client certificate verification/authentication,
and it seems that Dovecot is choking on the trustchain with CRL's that
I'm providing to it (attached to this mail).

When I enable the client authentication using certificates, and pick
the certificate from my client (I've also tried it out with gnutls-cli
as well), I get the following errors in Dovecot's log:

imap-login: Info: Invalid certificate: Different CRL scope: /CN=Example
Root CA/O=Example Inc./C=RS

As per the wiki2 configuration page, I've set up the truststore in the
following order (everything PEM-encoded):

Example Person CA Certificate
Example Person CA CRL
Example Root CA Certificate
Example Root CA CRL

Person CA is the one issuing the end-entity certificates, of course.
I'm also attaching the certificate I've used for testing.

On additional note, the imap-login process also got stuck writing out
the error message to the log file, refusing to die when receiving the
SIGTERM (had to send SIGKILL).

A similar set-up used to work under Dovecot in Debian Squeeze (version
1.2.15). The same file copied over to Dovecot 2.1.4's configuration
won't work.

I've compiled Dovecot by hand, and I'm not running it in any kind of
chroot (this is a developer set-up so I could add support for
rfc822Name username extraction I mentioned a week or so ago without
messing around as root).

Best regards

-- 
Branko Majic
Jabber: bra...@majic.rs
Please use only Free formats when sending attachments to me.

Бранко Мајић
Џабер: bra...@majic.rs
Молим вас да додатке шаљете искључиво у слободним форматима.


trustchain.pem
Description: application/x509-ca-cert


branko_majic.crt
Description: application/x509-ca-cert


signature.asc
Description: PGP signature


[Dovecot] LMTP auth problem

2012-04-14 Thread Cor Bosman
hey all,  im  getting the following error:

Apr 14 14:29:44 lmtpdirector1 dovecot: auth: Error: passdb(scorpio,127.0.0.1): 
Auth client doesn't have permissions to do a PASS lookup: 
/var/run/dovecot/auth-userdb mode=0666, but not owned by UID 112(dovecot)
Apr 14 14:29:44 lmtpdirector1 dovecot: lmtp(18298): Error: user scorpio: Auth 
PASS lookup failed


My config.  Director servers running both imap and lmtp with a matching set of 
real servers accepting imap/lmtp. Imap is working fine, and has been working 
fine for a while. Im trying to add lmtp to the director, but i cant seem to get 
that working.  We're passing passdb on to the real servers. How does this work 
with lmtp?

protocols = imap lmtp

protocol lmtp {
  auth_socket_path = director-userdb
}

lmtp_proxy = yes

# passdb check on real servers
passdb {
   driver = static
   args = proxy=y nopassword=y
}


Cor



Re: [Dovecot] LMTP auth problem

2012-04-14 Thread Cor Bosman
Of course the moment I post I seem to have figured it out..

service auth {
  unix_listener auth-userdb {
mode = 0777
  }
}

Is this safe if your servers are secure?

Cor


Re: [Dovecot] LMTP auth problem

2012-04-14 Thread Thomas Leuxner
Am 14.04.2012 um 18:24 schrieb Cor Bosman:

> Apr 14 14:29:44 lmtpdirector1 dovecot: auth: Error: 
> passdb(scorpio,127.0.0.1): Auth client doesn't have permissions to do a PASS 
> lookup: /var/run/dovecot/auth-userdb mode=0666, but not owned by UID 
> 112(dovecot)
> Apr 14 14:29:44 lmtpdirector1 dovecot: lmtp(18298): Error: user scorpio: Auth 
> PASS lookup failed

I'd just try 'user = dovecot' rather than making it wide open because that's 
what the log basically says.

$ doveconf -d | grep 'unix_listener auth-userdb' -A 4
  unix_listener auth-userdb {
group = 
mode = 0666
user =  
  } 

Regards
Thomas

signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [Dovecot] LMTP auth problem

2012-04-14 Thread Cor Bosman
> > Apr 14 14:29:44 lmtpdirector1 dovecot: auth: Error: 
> > passdb(scorpio,127.0.0.1): Auth client doesn't have permissions to do a 
> > PASS lookup: /var/run/dovecot/auth-userdb mode=0666, but not owned by UID 
> > 112(dovecot)
> > Apr 14 14:29:44 lmtpdirector1 dovecot: lmtp(18298): Error: user scorpio: 
> > Auth PASS lookup failed
> 
> I'd just try 'user = dovecot' rather than making it wide open because that's 
> what the log basically says.
> 
> $ doveconf -d | grep 'unix_listener auth-userdb' -A 4
>   unix_listener auth-userdb {
> group = 
> mode = 0666
> user =  
>   } 
> 

My config was the same as yours. That didnt work for me. But if I add
  
  user = dovecot 
  mode = 0666


That does work. Of course, the difference between 777 and 666 is
minimal. I think 666 is handled as a special case in the code?

Cor


Re: [Dovecot] Sieve pipe extension - can it retur something?

2012-04-14 Thread Stephan Bosch

Op 4/14/2012 2:13 PM, Kamil Jońca schreef:


I have a question about sieve pipe: can it return something to further
processing?
For example in procmail I can do:
--8<---cut here---start->8---
:0
VIRUS=`$CLAMSCAN --mbox --disable-summary --stdout -`
--8<---cut here---end--->8---
and then test VIRUS variable.

Maybe I missing something, when read
http://hg.rename-it.nl/pigeonhole-0.2-sieve-pipe/raw-file/tip/doc/rfc/spec-bosch-sieve-pipe.txt


For Pigeonhole 0.3/Dovecot 2.1 there is a new plugin called ExtPrograms. 
Apart from the 'pipe' extension it adds the 'execute' extension that 
should match just what you want:


http://hg.rename-it.nl/pigeonhole-0.3-sieve-extprograms/raw-file/d4683490a878/doc/rfc/spec-bosch-sieve-extprograms.txt

Regards,

Stephan.


Re: [Dovecot] Better to use a single large storage server or multiple smaller for mdbox?

2012-04-14 Thread Stan Hoeppner
On 4/14/2012 5:04 AM, Jan-Frode Myklebust wrote:
> On Fri, Apr 13, 2012 at 07:33:19AM -0500, Stan Hoeppner wrote:
>>>
>>> What I meant wasn't the drive throwing uncorrectable read errors but
>>> the drives are returning different data that each think is correct or
>>> both may have sent the correct data but one of the set got corrupted
>>> on the fly. After reading the articles posted, maybe the correct term
>>> would be the controller receiving silently corrupted data, say due to
>>> bad cable on one.
>>
>> This simply can't happen.  What articles are you referring to?  If the
>> author is stating what you say above, he simply doesn't know what he's
>> talking about.
> 
> It has happened to me, with RAID5 not RAID1. It was a firmware bug
> in the raid controller that caused the RAID array to go silently
> corrupted. The HW reported everything green -- but the filesystem was
> reporting lots of strange errors..  This LUN was part of a larger
> filesystem striped over multiple LUNs, so parts of the fs was OK, while
> other parts was corrupt.
> 
> It was this bug:
> 
>
> http://delivery04.dhe.ibm.com/sar/CMA/SDA/02igj/7/ibm_fw1_ds4kfc_07605200_anyos_anycpu.chg
>- Fix 432525 - CR139339  Data corruption found on drive after
>  reconstruct from GHSP (Global Hot Spare)

Note my comments were specific to the RAID1 case, or a concatenated set
of RAID1 devices.  And note the discussion was framed around silent
corruption in the absence of bugs and hardware failure, or should I say,
where no bugs or hardware failures can be identified.

> 
> 
>> In closing, I'll simply say this:  If hardware, whether a mobo-down SATA
>> chip, or a $100K SGI SAN RAID controller, allowed silent data corruption
>> or transmission to occur, there would be no storage industry, and we'll
>> all still be using pen and paper.  The questions you're asking were
>> solved by hardware and software engineers decades ago.  You're fretting
>> and asking about things that were solved decades ago.
> 
> Look at the plans are for your favorite fs:
> 
>   http://www.youtube.com/watch?v=FegjLbCnoBw
> 
> They're planning on doing metadata checksumming to be sure they don't
> receive corrupted metadata from the backend storage, and say that data
> validation is a storage subsystem *or* application problem. 

You can't made sure you don't receive corrupted data.  You take steps to
mitigate the negative effects of it if and when it happens.  The XFS
devs are planning this for the future.  If the problem was here now,
this work would have already been done.

> Hardly a solved problem..

It has been up to this point.  The issue going forward is that current
devices don't employ sufficient consistency checking to meet future
needs.  And the disk drive makers apparently don't want to consume the
additional bits required to properly do this in the drives.

If they'd dedicate far more bits to ECC we may not have this issue.  But
since it appears this isn't going to change, kernel, filesystem and
application developers are taking steps to mitigate it.  Again, this
"silent corruption" issue as described in the various academic papers is
a future problem for most, not a current problem.  It's only a current
problem for those are the bleeding edge of large scale storage.  Note
that firmware bugs in individual products aren't part of this issue.
Those will be with us forever in various products because humans make
mistakes.  No amount of filesystem or application code can mitigate
those.  The solution to that is standard best practices: snapshots,
backups, or even mirroring all your storage across different vendor
hardware.

-- 
Stan


Re: [Dovecot] Better to use a single large storage server or multiple smaller for mdbox?

2012-04-14 Thread Stan Hoeppner
On 4/14/2012 5:00 AM, Ed W wrote:
> On 14/04/2012 04:48, Stan Hoeppner wrote:
>> On 4/13/2012 10:31 AM, Ed W wrote:
>>
>>> You mean those "answers" like:
>>>  "you need to read 'those' articles again"
>>>
>>> Referring to some unknown and hard to find previous emails is not the
>>> same as answering?
>> No, referring to this:
>>
>> On 4/12/2012 5:58 AM, Ed W wrote:
>>
>>> The claim by ZFS/BTRFS authors and others is that data silently "bit
>>> rots" on it's own.
>> Is it not a correct assumption that you read this in articles?  If you
>> read this in books, scrolls, or chiseled tablets, my apologies for
>> assuming it was articles.
>>
> 
> WHAT?!!  The original context was that you wanted me to learn some very
> specific thing that you accused me of misunderstanding, and then it
> turns out that the thing I'm supposed to learn comes from re-reading
> every email, every blog post, every video, every slashdot post, every
> wiki, every ... that mentions ZFS's reason for including end to end
> checksumming?!!

No, the original context was your town crier statement that the sky is
falling due to silent data corruption.  I pointed out that this is not
the case, currently, that most wouldn't see this until quite a few years
down the road.  I provided facts to back my statement, which you didn't
seem to grasp or comprehend.  I pointed this out and your top popped
with a cloud of steam.

> Please stop wasting our time and get specific

Whose time am I wasting Ed?  You're the primary person one on this list
who wastes everyone's time with these drawn out threads, usually
unrelated to Dovecot.  I have been plenty specific.  The problem is you
lack the knowledge and understanding of hardware communication.  You're
upset because I'm not pointing out the knowledge you seem to lack?  Is
that not a waste of everyone's time?  Is that not be even "more
insulting"?  Causing even more excited/heated emails from you?

> You have taken my email which contained a specific question, been asked
> of you multiple times now and yet you insist on only answering
> irrelevant details with a pointed and personal dig on each answer.  The
> rudeness is unnecessary, and your evasiveness of answers does not fill
> me with confidence that you actually know the answer...

Ed, I have not been rude.  I've been attempting to prevent you dragging
us into the mud, which you've done, as you often do.  How specific would
you like me to get?  This is what you seem to be missing:

Drives perform per sector CRC before transmitting data to the HBA.  ATA,
SATA, SCSI, SAS, fiber channel devices and HBAs all perform CRC on wire
data.  The PCI/PCI-X/PCIe buses/channels and Southbridge all perform CRC
on wire data.  HyperTransport, and Intel's proprietary links also
perform CRC on wire transmissions.  Server memory is protected by ECC,
some by ChipKill which can tolerate double bit errors.

With today's systems and storage densities, with error correcting code
on all data paths within the system, and on the drives themselves,
"silent data corruption" is not an issue--in absence of defective
hardware or a bug, which are not relevant to the discussion.

> For the benefit of anyone reading this via email archives or whatever, I
> think the conclusion we have reached is that: modern systems are now a)
> a complex sum of pieces, any of which can cause an error to be injected,

Errors occur all the time.  And they're corrected nearly all of the
time, on modern complex systems.  Silent errors do not occur frequently,
usually not at all, on most modern systems.

> b) the level of error correction which was originally specified as being
> sufficient is now starting to be reached in real systems, 

FSVO 'real systems'.  The few occurrences of "silent data corruption"
I'm aware of have been documented in academic papers published by
researches working at taxpayer funded institutions.  In the case of
CERN, the problem was a firmware bug in the Western Digital drives that
caused an issue with the 3Ware controllers.  This kind of thing happens
when using COTS DIY hardware in the absence of proper load validation
testing.  So this case doesn't really fit the Henny-penny silent data
corruption scenario as a firmware bug caused it.  One that should have
been caught and corrected during testing.

In the other cases I'm aware of, all were HPC systems which generated
SDC under extended high loads, and these SDCs nearly all occurred
somewhere other than the storage systems--CPUs, RAM, interconnect, etc.
 HPC apps tend to run the CPUs, interconnects, storage, etc, at full
bandwidth for hours at a time, across tens of thousands of nodes, so the
probability of SDC is much higher simply due to scale.

> possibly even
> consumer systems.  

Possibly?  If you're going to post pure conjecture why not say "possibly
even iPhones or Androids"?  There's no data to back either claim.  Stick
to the facts.

> There is no "solution", however, the first step is to
> enhance "detection".  Va