>Number:         165695
>Category:       kern
>Synopsis:       Make geli errors on first attachment clearer when using data 
>authentication
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 04 20:50:12 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Robert Simmons
>Release:        9.0-RELEASE
>Organization:
>Environment:
FreeBSD test 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012  
[email protected]:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
Immediately after you attach a geli encrypted provider for the first time you 
get a series of error messages mentioning corrupted data such as the following 
if you configured that provider to use data authentication.

GEOM_ELI: ada0p4.eli: 4096 bytes corrupted at offset 0.
GEOM_ELI: ada0p4.eli: 4096 bytes corrupted at offset 4096.

As the man page suggests, one must use dd to write to the entire provider to 
initialize it before its first use.  These errors are because this 
initialization has not happened yet, and the data is failing authentication.  
These errors are harmless at this point, and can be safely ignored.

I have patched the kernel errors to be more descriptive, and I've patched the 
man page to include a message about these errors and that they can be safely 
ignored.
>How-To-Repeat:
Replace the device node in the following with whatever is appropriate for your 
system.  Also, the -a is imperative because that is what is enabling data 
authentication in the provider.

geli init -b -v -a hmac/sha256 -l 256 -s 4096 /dev/ada0p4
geli attach /dev/ada0p4

After attaching this provider, you get the error messages in question.
>Fix:
I have included a unified diff to fix both the problem with the error messages 
and the man page to make sure what is happening is more clear.

Patch attached with submission follows:

diff -ur src/sbin/geom/class/eli/geli.8 src.new/sbin/geom/class/eli/geli.8
--- src/sbin/geom/class/eli/geli.8      2012-03-04 13:58:18.000000000 -0500
+++ src.new/sbin/geom/class/eli/geli.8  2012-03-04 14:52:36.000000000 -0500
@@ -925,6 +925,9 @@
 It is recommended to write to the whole provider before first use,
 in order to make sure that all sectors and their corresponding
 checksums are properly initialized into a consistent state.
+Due to this, one can safely ignore data authentication errors that occur
+immediately after the first time a provider is attached and when it is
+initialized by writing to it to set a consistent state.
 .Sh SEE ALSO
 .Xr crypto 4 ,
 .Xr gbde 4 ,
diff -ur src/sys/geom/eli/g_eli_integrity.c 
src.new/sys/geom/eli/g_eli_integrity.c
--- src/sys/geom/eli/g_eli_integrity.c  2011-05-08 05:17:56.000000000 -0400
+++ src.new/sys/geom/eli/g_eli_integrity.c      2012-03-04 15:12:58.000000000 
-0500
@@ -206,7 +206,7 @@
                                 */
                                if (coroff != -1) {
                                        G_ELI_DEBUG(0, "%s: %jd bytes "
-                                           "corrupted at offset %jd.",
+                                           "not authenticated at offset %jd.",
                                            sc->sc_name, (intmax_t)corsize,
                                            (intmax_t)coroff);
                                        coroff = -1;
@@ -221,7 +221,7 @@
                }
                /* Report previous corruption if there was one. */
                if (coroff != -1) {
-                       G_ELI_DEBUG(0, "%s: %jd bytes corrupted at offset %jd.",
+                       G_ELI_DEBUG(0, "%s: %jd bytes not authenticated at 
offset %jd.",
                            sc->sc_name, (intmax_t)corsize, (intmax_t)coroff);
                }
        }


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to