issue with usb hdd and SU+J

2012-01-10 Thread Alexander Best
can somebody help me with this issue? i'm running HEAD on amd64:

1) connect my usb hdd
2) mount it (/mnt/wd)
3) don't access it for a few hours
4) ls /mnt/wd returns nothing; doing ls or pwd from /mnt/wd returns ENXIO
5) unmount /mnt/wd succeeds
6) mount /mnt/wd fails

then i did fsck /mnt/wd three times to be sure the drive didn't contain any
errors:

otaku% fsck /dev/ufs/wd
** /dev/ufs/wd

USE JOURNAL? [yn] y

** SU+J Recovering /dev/ufs/wd
** Reading 33554432 byte journal from inode 4.

RECOVER? [yn] y

** Building recovery table.
** Resolving unreferenced inode list.
** Processing journal entries.

WRITE CHANGES? [yn] y

** 4 journal records in 1024 bytes for 12.50% utilization
** Freed 0 inodes (0 dirs) 0 blocks, and 0 frags.

* FILE SYSTEM MARKED CLEAN *
otaku% fsck /dev/ufs/wd
** /dev/ufs/wd

USE JOURNAL? [yn] y

** SU+J Recovering /dev/ufs/wd
Journal timestamp does not match fs mount time
** Skipping journal, falling through to full fsck

** Last Mounted on /mnt/wd
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
1420 files, 170686465 used, 69659704 free (304 frags, 8707425 blocks, 0.0% 
fragmentation)

* FILE SYSTEM IS CLEAN *

* FILE SYSTEM WAS MODIFIED *
otaku% fsck /dev/ufs/wd
** /dev/ufs/wd

USE JOURNAL? [yn] y

** SU+J Recovering /dev/ufs/wd
Journal timestamp does not match fs mount time
** Skipping journal, falling through to full fsck

** Last Mounted on /mnt/wd
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
1420 files, 170686465 used, 69659704 free (304 frags, 8707425 blocks, 0.0% 
fragmentation)

* FILE SYSTEM IS CLEAN *

* FILE SYSTEM WAS MODIFIED *

...i found this umass error in my dmesg:

(probe0:umass-sim0:0:0:1): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(probe0:umass-sim0:0:0:1): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:1): SCSI status: Check Condition
(probe0:umass-sim0:0:0:1): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid 
command operation code)

...and this lor witness warning:

lock order reversal:
 1st 0xfe006fb4fbd8 ufs (ufs) @ 
/usr/subversion-src/sys/kern/vfs_mount.c:1209
 2nd 0xfe000dbaedb8 syncer (syncer) @ 
/usr/subversion-src/sys/kern/vfs_subr.c:2279
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b
kdb_backtrace() at kdb_backtrace+0x39
witness_checkorder() at witness_checkorder+0x6c5
__lockmgr_args() at __lockmgr_args+0x382
vop_stdlock() at vop_stdlock+0x3c
VOP_LOCK1_APV() at VOP_LOCK1_APV+0x42
_vn_lock() at _vn_lock+0x43
vputx() at vputx+0x140
dounmount() at dounmount+0x27f
sys_unmount() at sys_unmount+0x251
amd64_syscall() at amd64_syscall+0x1f8
Xfast_syscall() at Xfast_syscall+0xfb
--- syscall (22, FreeBSD ELF64, sys_unmount), rip = 0x80088ab8c, rsp = 
0x7fffd2b8, rbp = 0x800c09098 ---

cheers.
alex

ps: camcontrol devlist reports:

 at scbus0 target 0 lun 0 (pass0,ada0)
 at scbus1 target 0 lun 0 (pass1,ada1)
at scbus2 target 0 lun 0 (pass2,cd0)
 at scbus6 target 0 lun 0 (da0,pass3)
   at scbus6 target 0 lun 1 (pass4)

unfortunately camcontrol identify won't work with {da0,pass3,pass4}. nothing
gets output and echo $? returns 1.

this is the dmesg output when the drive gets attached:

ugen3.3:  at usbus3
umass0:  on usbus3
da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
da0:  Fixed Direct Access SCSI-6 device 
da0: 40.000MB/s transfers
da0: 953837MB (1953458176 512 byte sectors: 255H 63S/T 121597C)
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"


issue with usb hdd

2011-11-18 Thread Alexander Best
hi there,

i recently bought a western digital 1 terrabyte usb2/usb3 hdd:

[83611.209514] umass0:  on usbus3
[83613.618514] da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
[83613.618514] da0:  Fixed Direct Access SCSI-6 
device 
[83613.618514] da0: 40.000MB/s transfers
[83613.618514] da0: 953837MB (1953458176 512 byte sectors: 255H 63S/T 121597C)

i partitioned it via the gpt scheme and one big ufs2 partition with SU+J
enabled:

Geom name: da0
modified: false
state: OK
fwheads: 255
fwsectors: 63
last: 1953458142
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: da0p1
   Mediasize: 1000170551808 (931G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0
   rawuuid: 39d3bf09-fb47-11e0-ade1-000fb58207c8
   rawtype: 516e7cb6-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 1000170551808
   offset: 17408
   type: freebsd-ufs
   index: 1
   end: 1953458142
   start: 34
Consumers:
1. Name: da0
   Mediasize: 1000170586112 (931G)
   Sectorsize: 512
   Mode: r0w0e0


=>34  1953458109  da0  GPT  (931G)
  34  19534581091  freebsd-ufs  (931G)


tunefs: POSIX.1e ACLs: (-a)disabled
tunefs: NFSv4 ACLs: (-N)   disabled
tunefs: MAC multilabel: (-l)   disabled
tunefs: soft updates: (-n) enabled
tunefs: soft update journaling: (-j)   enabled
tunefs: gjournal: (-J) disabled
tunefs: trim: (-t) disabled
tunefs: maximum blocks per file in a cylinder group: (-e)  4096
tunefs: average file size: (-f)16384
tunefs: average number of files in a directory: (-s)   64
tunefs: minimum percentage of free space: (-m) 8%
tunefs: optimization preference: (-o)  time
tunefs: volume label: (-L) wd

mounting and everything works great. however if i don't access the monted hdd
for a couple of hours, and then do `ls /mnt/wd`, nothing is there. `mount -p`
reports that the hdd is still mounted:

/dev/ufs/rootfs /   ufs ro  1 1
devfs   /devdevfs   rw  0 0
/dev/ufs/varfs  /varufs rw  1 2
/dev/ufs/usrfs  /usrufs rw  1 2
linprocfs   /usr/compat/linux/proc  linprocfs   rw  
0 0
linsysfs/usr/compat/linux/sys   linsysfsrw  
0 0
devfs   /usr/compat/linux/dev   devfs   rw  0 0
linprocfs   /usr/local/gentoo-stage3/proc linprocfs rw  
0 0
linsysfs/usr/local/gentoo-stage3/sys linsysfs   rw  
0 0
devfs   /usr/local/gentoo-stage3/dev devfs  rw  
0 0
tmpfs   /tmptmpfs   rw  0 0
tmpfs   /var/tmptmpfs   rw  0 0
/dev/ufs/wd /mnt/wd ufs rw,noexec,nosuid
0 0

`pwd` executed will return ENXIO. i can then do `umount /mnt/wd`, but
re-mounting the hdd fails with the following dmesg warnings:

[96836.840512] (probe0:umass-sim0:0:0:1): TEST UNIT READY. CDB: 0 0 0 0 0 0 
[96836.840512] (probe0:umass-sim0:0:0:1): CAM status: SCSI Status Error
[96836.840512] (probe0:umass-sim0:0:0:1): SCSI status: Check Condition
[96836.840512] (probe0:umass-sim0:0:0:1): SCSI sense: ILLEGAL REQUEST asc:20,0 
(Invalid command operation code)
[97109.824517] WARNING: R/W mount of /mnt/wd denied.  Filesystem is not clean - 
run fsck
[97109.824517] WARNING: Forced mount will invalidate journal contents
[97126.200518] WARNING: R/W mount of /mnt/wd denied.  Filesystem is not clean - 
run fsck
[97126.200518] WARNING: Forced mount will invalidate journal contents
[97129.283518] WARNING: R/W mount of /mnt/wd denied.  Filesystem is not clean - 
run fsck
[97129.283518] WARNING: Forced mount will invalidate journal contents
[97133.904518] WARNING: R/W mount of /mnt/wd denied.  Filesystem is not clean - 
run fsck
[97133.904518] WARNING: Forced mount will invalidate journal contents

(i believe the "probe0" stuff is from the umount)

`mount` fails with EPERM btw. what i have to do is: `fsck /dev/ufs/wd`. this
complains about the following:

** /dev/ufs/wd

USE JOURNAL? [yn] y

** SU+J Recovering /dev/ufs/wd
** Reading 33554432 byte journal from inode 4.

RECOVER? [yn] y

** Building recovery table.
** Resolving unreferenced inode list.
** Processing journal entries.

* FILE SYSTEM MARKED CLEAN *

...now everything is back to normal and i can mount the hdd again. any
suggestions? i'm running a very recent HEAD on amd64.

cheers.
alex
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/free