Multiple USB sticks: g_vfs_done():ufs/pfsense0[WRITE(offset=663584768, length=40



  • We used to run pfSense off a bootable 4GB USB stick (http://www.newegg.com/Product/Product.aspx?Item=9SIA25V0TW0489).

    We would burn the 4 GB image like so:

    gunzip -c pfSense-2.1-RELEASE-4g-i386-nanobsd.img.gz | dd of=/dev/sdc bs=16k

    And everything has been working well for a while.

    When upgrade time came around, the 4 GB sticks we were using were no longer available in the quantities we needed, so we picked the next size up (http://www.newegg.com/Product/Product.aspx?Item=N82E16820235047)

    To upgrade remote offices, we write the pfSense image, and ship the sticks out to their respective offices so the people on-site can power down the router, plug the new stick in, power it up, answer a few interface questions, and go.

    After the first 6 upgrades failed, I recalled all the sticks.

    Here is what people are seeing:

    
     <snip>Enter the Optional 3 interface name or 'a' for auto-detection                                                                                                                                                                                
    (or nothing if finished):                                                                                                                                                                                                                    
    
    The interfaces will be assigned as follows:                                                                                                                                                                                                  
    
    WAN  -> vr0                                                                                                                                                                                                                                  
    LAN  -> re0                                                                                                                                                                                                                                  
    OPT1 -> re1                                                                                                                                                                                                                                  
    OPT2 -> re2                                                                                                                                                                                                                                  
    
    Do you want to proceed [y|n]?y                                                                                                                                                                                                               
    
    Writing configuration...g_vfs_done():ufs/cf[READ(offset=13189120, length=4096)]error = 5                                                                                                                                                     
    g_vfs_done():ufs/cf[READ(offset=26353664, length=4096)]error = 5                                                                                                                                                                             
    g_vfs_done():ufs/cf[READ(offset=24576, length=4096)]error = 5                                                                                                                                                                                
    g_vfs_done():ufs/cf[READ(offset=39518208, length=4096)]error = 5                                                                                                                                                                             
    g_vfs_done():ufs/cf[READ(offset=24576, length=4096)]error = 5                                                                                                                                                                                
    pid 305 (php), uid 0 inumber 1635 on /cf: out of inodes
    
    /cf: create/symlink failed, no inodes free
    g_vfs_done():ufs/pfsense0[READ(offset=246595584, length=65536)]error = 5
    vnode_pager_getpages: I/O read error
    vm_fault: pager read error, pid 305 (php)
    g_vfs_done():ufs/pfsense0[WRITE(offset=8192, length=1536)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=237568, length=2560)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1512923136, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1512955904, length=4096)]error = 5
    pid 305 (php), uid 0: exited on signal 11
    Segmentation fault
    Starting CRON... g_vfs_done():ufs/pfsense0[WRITE(offset=663580672, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=663584768, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1512923136, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1512955904, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1844711424, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1844719616, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1844727808, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1844736000, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=1844740096, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=8192, length=1536)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=237568, length=2560)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=238936064, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=265449472, length=4096)]error = 5
    g_vfs_done():ufs/pfsense0[WRITE(offset=265453568, length=4096)]error = 5                                                                                                                                                                     
    g_vfs_done():ufs/pfsense0[WRITE(offset=265457664, length=4096)]error = 5                                                                                                                                                                     
    g_vfs_done():ufs/pfsense0[WRITE(offset=291991552, length=4096)]error = 5                                                                                                                                                                     
    g_vfs_done():ufs/pfsense0[READ(offset=480997376, length=34816)]error = 5                                                                                                                                                                     
    vnode_pager_getpages: I/O read error                                                                                                                                                                                                         
    done.</snip> 
    

    At that point, the router appears to hang.

    Normally I would think that was a bad drive, but after the first six failed we tested a few on a windows machine–formatting them, filling them up with files, etc...  They all appear to work fine.

    Any pointers?

    -A



  • This is definitely a regression.
    Identical hardware, used the same exact USB stick for testing.

    This version works flawlessly: pfSense-2.0.3-RELEASE-4g-i386-nanobsd-20130412-1022.img.gz

    This version dies horribly: pfSense-2.1-RELEASE-2g-i386-nanobsd.img.gz

    -A



  • I stand corrected.  2.0.3 gets much further before throwing errors and dying.

    I'm guessing the model of USB stick isn't supported.