← Back to team overview

kernel-packages team mailing list archive

[Bug 1384969] Re: Writing large amounts of data to exFAT formatted micro sdcards with Ubuntu causes kernel errors and permanent sdcard failure.

 

This exact same pattern occurred to me, using dd to copy a system image
to an SD card.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1384969

Title:
  Writing large amounts of data to exFAT formatted micro sdcards with
  Ubuntu causes kernel errors and permanent sdcard failure.

Status in linux package in Ubuntu:
  Expired

Bug description:
  I've now confirmed 3 cases where writing large volumes of data causes
  kernel errors:

  System: linux Kubuntu 12.04.5 LTS,  
  Package: udev 175-0ubuntu9.6 

  STEPS: 
  1) Insert new 64G microsd card (either via built-in card reader or with USB style adapter)
  2) Create and write fresh partition with fdisk (full card, 1 primary partition, type 7, exFAT)
  3) mkfs.exfat /dev/sdi1
  4) mount partition using device manager gui (process shows as /sbin/mount.exfat /dev/sdi1 /media/<user>/6FED-20E6 -o rw,nosuid,nodev,uhelper=udisks2)
  5) Attempt to copy a large amount (20G+) of data to drive using Dolphin gui, or in the most recent case, rsync.
  $ rsync -rltsihv --delete --progress --stats /home/user/syncfolder/  /media/<user>/6FED-20E6/

  Somewhere during the middle of the operation the process will hang and
  provide the dmesg output below.  Once this happens, the card will go
  into internal failsafe mode and become permanently read-only.  The
  card is now non-recoverable using any software method (fsck, hdpart,
  windows chkdsk, or the sdcard.org formatter).

  This originally occurred for me on a new G.Skill 32gb card, then on a
  Sandisk Ultra Plus 64g card.  Both cards were returned to the
  manufacturers which confirmed the cards as permanently failed (and
  replaced under warranty).

  Today I tried again with the replacement Sandisk card using a micro
  sdcard usb adapter instead of the built in card reader, and received
  the same result - another failed card.  This same card was able to
  accept a large amount of data copied on with my android phone, but is
  now failed after copying data under Kubuntu.

  
  ** dmesg log once the copy process hangs **
  [ 8158.303149] INFO: task hald-addon-stor:2145 blocked for more than 120 seconds.
  [ 8158.303154] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
  [ 8158.303157] hald-addon-stor D 0000000000000003     0  2145   1991 0x00000000
  [ 8158.303163]  ffff8802f740d928 0000000000000082 ffff8802f740d908 ffffffff810581db
  [ 8158.303169]  ffff8802f740dfd8 ffff8802f740dfd8 ffff8802f740dfd8 00000000000137c0
  [ 8158.303174]  ffff8802654e0000 ffff880318f95c00 0000000000000082 7fffffffffffffff
  [ 8158.303179] Call Trace:
  [ 8158.303189]  [<ffffffff810581db>] ? check_preempt_wakeup+0x15b/0x230
  [ 8158.303195]  [<ffffffff816621df>] schedule+0x3f/0x60
  [ 8158.303199]  [<ffffffff8166281d>] schedule_timeout+0x29d/0x310
  [ 8158.303204]  [<ffffffff810539c6>] ? ttwu_do_activate.constprop.178+0x66/0x70
  [ 8158.303209]  [<ffffffff8103ec29>] ? default_spin_lock_flags+0x9/0x10
  [ 8158.303213]  [<ffffffff8166201f>] wait_for_common+0xdf/0x180
  [ 8158.303218]  [<ffffffff81060aa0>] ? try_to_wake_up+0x200/0x200
  [ 8158.303222]  [<ffffffff8166219d>] wait_for_completion+0x1d/0x20
  [ 8158.303228]  [<ffffffff8108752e>] flush_work+0x2e/0x40
  [ 8158.303232]  [<ffffffff81083860>] ? wake_up_worker+0x30/0x30
  [ 8158.303236]  [<ffffffff810875fb>] flush_delayed_work+0x4b/0x60
  [ 8158.303242]  [<ffffffff81301634>] disk_clear_events+0x84/0x130
  [ 8158.303248]  [<ffffffff811b2987>] check_disk_change+0x37/0x80
  [ 8158.303254]  [<ffffffff81449b3d>] sd_open+0xad/0x1e0
  [ 8158.303258]  [<ffffffff811b4177>] __blkdev_get+0x2f7/0x460
  [ 8158.303266]  [<ffffffff8118e5f0>] ? __pollwait+0xf0/0xf0
  [ 8158.303268]  [<ffffffff811b433e>] blkdev_get+0x5e/0x1e0
  [ 8158.303271]  [<ffffffff811b451d>] blkdev_open+0x5d/0x80
  [ 8158.303274]  [<ffffffff81178ff0>] __dentry_open+0x2b0/0x380
  [ 8158.303276]  [<ffffffff811b44c0>] ? blkdev_get+0x1e0/0x1e0
  [ 8158.303280]  [<ffffffff812a19dc>] ? security_inode_permission+0x1c/0x30
  [ 8158.303283]  [<ffffffff8118708a>] ? inode_permission+0x4a/0x110
  [ 8158.303285]  [<ffffffff8117978d>] vfs_open+0x3d/0x40
  [ 8158.303288]  [<ffffffff8117a850>] nameidata_to_filp+0x40/0x50
  [ 8158.303290]  [<ffffffff811898c8>] do_last+0x3f8/0x730
  [ 8158.303292]  [<ffffffff8118afa1>] path_openat+0xd1/0x3f0
  [ 8158.303295]  [<ffffffff81312837>] ? kobject_put+0x27/0x60
  [ 8158.303318]  [<ffffffff813f7907>] ? put_device+0x17/0x20
  [ 8158.303321]  [<ffffffff8118b3e2>] do_filp_open+0x42/0xa0
  [ 8158.303324]  [<ffffffff8131e9f1>] ? strncpy_from_user+0x31/0x40
  [ 8158.303326]  [<ffffffff8118672a>] ? do_getname+0x10a/0x180
  [ 8158.303329]  [<ffffffff8166413e>] ? _raw_spin_lock+0xe/0x20
  [ 8158.303333]  [<ffffffff81198707>] ? alloc_fd+0xf7/0x150
  [ 8158.303335]  [<ffffffff8117a958>] do_sys_open+0xf8/0x240
  [ 8158.303337]  [<ffffffff8117aac0>] sys_open+0x20/0x30
  [ 8158.303341]  [<ffffffff8166c782>] system_call_fastpath+0x16/0x1b
  [ 8158.303374] INFO: task mount.exfat:14071 blocked for more than 120 seconds.
  [ 8158.303375] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
  [ 8158.303377] mount.exfat     D ffffffff81806240     0 14071      1 0x00000000
  [ 8158.303380]  ffff88032afbb9b8 0000000000000086 ffff88032afbb9a8 ffffffff812f8fbc
  [ 8158.303383]  ffff88032afbbfd8 ffff88032afbbfd8 ffff88032afbbfd8 00000000000137c0
  [ 8158.303386]  ffff88032b709700 ffff8802db000000 ffff88032afbb998 ffff88033fcd4080
  [ 8158.303389] Call Trace:
  [ 8158.303392]  [<ffffffff812f8fbc>] ? blk_queue_bio+0x1bc/0x370
  [ 8158.303394]  [<ffffffff811ac2b0>] ? __wait_on_buffer+0x30/0x30
  [ 8158.303396]  [<ffffffff816621df>] schedule+0x3f/0x60
  [ 8158.303398]  [<ffffffff8166228f>] io_schedule+0x8f/0xd0
  [ 8158.303401]  [<ffffffff811ac2be>] sleep_on_buffer+0xe/0x20
  [ 8158.303403]  [<ffffffff81662a9f>] __wait_on_bit+0x5f/0x90
  [ 8158.303405]  [<ffffffff811b1c1a>] ? bio_alloc_bioset+0x5a/0xf0
  [ 8158.303407]  [<ffffffff811ac2b0>] ? __wait_on_buffer+0x30/0x30
  [ 8158.303410]  [<ffffffff81662b4c>] out_of_line_wait_on_bit+0x7c/0x90
  [ 8158.303413]  [<ffffffff8108c420>] ? autoremove_wake_function+0x40/0x40
  [ 8158.303415]  [<ffffffff811ac2ae>] __wait_on_buffer+0x2e/0x30
  [ 8158.303418]  [<ffffffff811af39c>] __block_write_begin+0x36c/0x520
  [ 8158.303421]  [<ffffffff811b3a00>] ? blkdev_get_blocks+0xd0/0xd0
  [ 8158.303423]  [<ffffffff811b3a00>] ? blkdev_get_blocks+0xd0/0xd0
  [ 8158.303425]  [<ffffffff811af7e1>] block_write_begin+0x51/0xa0
  [ 8158.303429]  [<ffffffff81119a5a>] ? unlock_page+0x2a/0x40
  [ 8158.303432]  [<ffffffff811b3063>] blkdev_write_begin+0x23/0x30
  [ 8158.303434]  [<ffffffff81119e1a>] generic_perform_write+0xca/0x210
  [ 8158.303438]  [<ffffffff812a2786>] ? security_inode_need_killpriv+0x16/0x20
  [ 8158.303440]  [<ffffffff81119fbd>] generic_file_buffered_write+0x5d/0x90
  [ 8158.303443]  [<ffffffff8111b9d9>] __generic_file_aio_write+0x229/0x440
  [ 8158.303448]  [<ffffffff81280050>] ? fuse_dev_read+0x70/0x80
  [ 8158.303450]  [<ffffffff811b36c3>] blkdev_aio_write+0x33/0x90
  [ 8158.303453]  [<ffffffff8117ad4a>] do_sync_write+0xda/0x120
  [ 8158.303457]  [<ffffffff812dc7c8>] ? apparmor_file_permission+0x18/0x20
  [ 8158.303459]  [<ffffffff812a1e4c>] ? security_file_permission+0x2c/0xb0
  [ 8158.303462]  [<ffffffff8117b2f1>] ? rw_verify_area+0x61/0xf0
  [ 8158.303464]  [<ffffffff8117b653>] vfs_write+0xb3/0x180
  [ 8158.303466]  [<ffffffff8117bb12>] sys_pwrite64+0xa2/0xb0
  [ 8158.303469]  [<ffffffff8166c782>] system_call_fastpath+0x16/0x1b
  [ 8158.303471] INFO: task flush-8:128:14081 blocked for more than 120 seconds.
  [ 8158.303473] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
  [ 8158.303474] flush-8:128     D ffffffff81806240     0 14081      2 0x00000000
  [ 8158.303477]  ffff88032a3b36d0 0000000000000046 ffff88032a3b3690 ffff880325751d60
  [ 8158.303480]  ffff88032a3b3fd8 ffff88032a3b3fd8 ffff88032a3b3fd8 00000000000137c0
  [ 8158.303483]  ffff88032b659700 ffff8800b0b0ae00 ffff88032a3b36a0 ffff88033fc34080
  [ 8158.303486] Call Trace:
  [ 8158.303488]  [<ffffffff816621df>] schedule+0x3f/0x60
  [ 8158.303490]  [<ffffffff8166228f>] io_schedule+0x8f/0xd0
  [ 8158.303492]  [<ffffffff812f7f86>] get_request_wait+0xf6/0x1d0
  [ 8158.303495]  [<ffffffff8108c3e0>] ? add_wait_queue+0x60/0x60
  [ 8158.303497]  [<ffffffff812f8e7f>] blk_queue_bio+0x7f/0x370
  [ 8158.303501]  [<ffffffff812f5a94>] generic_make_request.part.52+0x74/0xb0
  [ 8158.303504]  [<ffffffff812f5ea8>] generic_make_request+0x68/0x70
  [ 8158.303507]  [<ffffffff812f5f35>] submit_bio+0x85/0x110
  [ 8158.303509]  [<ffffffff811b1c1a>] ? bio_alloc_bioset+0x5a/0xf0
  [ 8158.303512]  [<ffffffff811abaab>] submit_bh+0xeb/0x120
  [ 8158.303514]  [<ffffffff811adf30>] __block_write_full_page+0x210/0x3a0
  [ 8158.303516]  [<ffffffff811ad710>] ? end_buffer_async_read+0x140/0x140
  [ 8158.303519]  [<ffffffff811b3a00>] ? blkdev_get_blocks+0xd0/0xd0
  [ 8158.303521]  [<ffffffff811b3a00>] ? blkdev_get_blocks+0xd0/0xd0
  [ 8158.303524]  [<ffffffff811ae8bd>] block_write_full_page_endio+0xcd/0x100
  [ 8158.303527]  [<ffffffff8111a2c4>] ? find_get_pages_tag+0x44/0x140
  [ 8158.303529]  [<ffffffff811ae905>] block_write_full_page+0x15/0x20
  [ 8158.303531]  [<ffffffff811b30a8>] blkdev_writepage+0x18/0x20
  [ 8158.303534]  [<ffffffff81123997>] __writepage+0x17/0x40
  [ 8158.303537]  [<ffffffff811240cd>] write_cache_pages+0x20d/0x460
  [ 8158.303539]  [<ffffffff81123980>] ? set_page_dirty_lock+0x60/0x60
  [ 8158.303542]  [<ffffffff8112436a>] generic_writepages+0x4a/0x70
  [ 8158.303545]  [<ffffffff811252d1>] do_writepages+0x21/0x40
  [ 8158.303549]  [<ffffffff811a4b00>] writeback_single_inode+0x170/0x420
  [ 8158.303551]  [<ffffffff811a51c6>] writeback_sb_inodes+0x1b6/0x270
  [ 8158.303554]  [<ffffffff811a531e>] __writeback_inodes_wb+0x9e/0xd0
  [ 8158.303557]  [<ffffffff811a55bb>] wb_writeback+0x26b/0x310
  [ 8158.303559]  [<ffffffff811a6618>] wb_do_writeback+0x198/0x1d0
  [ 8158.303562]  [<ffffffff811a66d3>] bdi_writeback_thread+0x83/0x280
  [ 8158.303565]  [<ffffffff811a6650>] ? wb_do_writeback+0x1d0/0x1d0
  [ 8158.303567]  [<ffffffff8108b93c>] kthread+0x8c/0xa0
  [ 8158.303570]  [<ffffffff8166e8f4>] kernel_thread_helper+0x4/0x10
  [ 8158.303573]  [<ffffffff8108b8b0>] ? flush_kthread_worker+0xa0/0xa0
  [ 8158.303576]  [<ffffffff8166e8f0>] ? gs_change+0x13/0x13
  [ 8170.090834] sd 6:0:0:4: timing out command, waited 180s
  [ 8170.090846] sd 6:0:0:4: [sdi] Unhandled sense code
  [ 8170.090848] sd 6:0:0:4: [sdi]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
  [ 8170.090853] sd 6:0:0:4: [sdi]  Sense Key : Hardware Error [current]
  [ 8170.090858] sd 6:0:0:4: [sdi]  Add. Sense: Data phase error
  [ 8170.090864] sd 6:0:0:4: [sdi] CDB: Write(10): 2a 00 00 00 82 70 00 00 f0 00
  [ 8170.090874] end_request: I/O error, dev sdi, sector 33392
  [ 8170.090878] Buffer I/O error on device sdi1, logical block 3918
  [ 8170.090881] lost page write due to I/O error on sdi1
  [ 8170.090887] Buffer I/O error on device sdi1, logical block 3919
  [ 8170.090889] lost page write due to I/O error on sdi1
  [ 8170.090893] Buffer I/O error on device sdi1, logical block 3920
  [ 8170.090895] lost page write due to I/O error on sdi1
  [ 8170.090899] Buffer I/O error on device sdi1, logical block 3921
  [ 8170.090901] lost page write due to I/O error on sdi1
  [ 8170.090905] Buffer I/O error on device sdi1, logical block 3922
  [ 8170.090907] lost page write due to I/O error on sdi1
  [ 8170.090911] Buffer I/O error on device sdi1, logical block 3923
  [ 8170.090913] lost page write due to I/O error on sdi1
  [ 8170.090917] Buffer I/O error on device sdi1, logical block 3924
  [ 8170.090919] lost page write due to I/O error on sdi1
  [ 8170.090922] Buffer I/O error on device sdi1, logical block 3925
  [ 8170.090925] lost page write due to I/O error on sdi1
  [ 8170.090930] Buffer I/O error on device sdi1, logical block 3926
  [ 8170.090932] lost page write due to I/O error on sdi1
  [ 8170.090934] Buffer I/O error on device sdi1, logical block 3927
  [ 8170.091006] lost page write due to I/O error on sdi1

  
  ** dmesg log when trying to unmount failed sdcard **
  [ 8278.261364] INFO: task flush-8:128:14081 blocked for more than 120 seconds.
  [ 8278.261367] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
  [ 8278.261369] flush-8:128     D ffffffff81806240     0 14081      2 0x00000000
  [ 8278.261373]  ffff88032a3b36d0 0000000000000046 ffff88032a3b3690 ffff880325751d60
  [ 8278.261377]  ffff88032a3b3fd8 ffff88032a3b3fd8 ffff88032a3b3fd8 00000000000137c0
  [ 8278.261380]  ffff88032b659700 ffff8800b0b0ae00 ffff88032a3b36a0 ffff88033fc34080
  [ 8278.261383] Call Trace:
  [ 8278.261390]  [<ffffffff816621df>] schedule+0x3f/0x60
  [ 8278.261393]  [<ffffffff8166228f>] io_schedule+0x8f/0xd0
  [ 8278.261435]  [<ffffffff812f7f86>] get_request_wait+0xf6/0x1d0
  [ 8278.261440]  [<ffffffff8108c3e0>] ? add_wait_queue+0x60/0x60
  [ 8278.261442]  [<ffffffff812f8e7f>] blk_queue_bio+0x7f/0x370
  [ 8278.261447]  [<ffffffff812f5a94>] generic_make_request.part.52+0x74/0xb0
  [ 8278.261449]  [<ffffffff812f5ea8>] generic_make_request+0x68/0x70
  [ 8278.261452]  [<ffffffff812f5f35>] submit_bio+0x85/0x110
  [ 8278.261456]  [<ffffffff811b1c1a>] ? bio_alloc_bioset+0x5a/0xf0
  [ 8278.261458]  [<ffffffff811abaab>] submit_bh+0xeb/0x120
  [ 8278.261461]  [<ffffffff811adf30>] __block_write_full_page+0x210/0x3a0
  [ 8278.261463]  [<ffffffff811ad710>] ? end_buffer_async_read+0x140/0x140
  [ 8278.261467]  [<ffffffff811b3a00>] ? blkdev_get_blocks+0xd0/0xd0
  [ 8278.261469]  [<ffffffff811b3a00>] ? blkdev_get_blocks+0xd0/0xd0
  [ 8278.261471]  [<ffffffff811ae8bd>] block_write_full_page_endio+0xcd/0x100
  [ 8278.261475]  [<ffffffff8111a2c4>] ? find_get_pages_tag+0x44/0x140
  [ 8278.261478]  [<ffffffff811ae905>] block_write_full_page+0x15/0x20
  [ 8278.261480]  [<ffffffff811b30a8>] blkdev_writepage+0x18/0x20
  [ 8278.261483]  [<ffffffff81123997>] __writepage+0x17/0x40
  [ 8278.261486]  [<ffffffff811240cd>] write_cache_pages+0x20d/0x460
  [ 8278.261488]  [<ffffffff81123980>] ? set_page_dirty_lock+0x60/0x60
  [ 8278.261491]  [<ffffffff8112436a>] generic_writepages+0x4a/0x70
  [ 8278.261494]  [<ffffffff811252d1>] do_writepages+0x21/0x40
  [ 8278.261497]  [<ffffffff811a4b00>] writeback_single_inode+0x170/0x420
  [ 8278.261500]  [<ffffffff811a51c6>] writeback_sb_inodes+0x1b6/0x270
  [ 8278.261503]  [<ffffffff811a531e>] __writeback_inodes_wb+0x9e/0xd0
  [ 8278.261505]  [<ffffffff811a55bb>] wb_writeback+0x26b/0x310
  [ 8278.261508]  [<ffffffff811a6618>] wb_do_writeback+0x198/0x1d0
  [ 8278.261511]  [<ffffffff811a66d3>] bdi_writeback_thread+0x83/0x280
  [ 8278.261513]  [<ffffffff811a6650>] ? wb_do_writeback+0x1d0/0x1d0
  [ 8278.261516]  [<ffffffff8108b93c>] kthread+0x8c/0xa0
  [ 8278.261520]  [<ffffffff8166e8f4>] kernel_thread_helper+0x4/0x10
  [ 8278.261523]  [<ffffffff8108b8b0>] ? flush_kthread_worker+0xa0/0xa0
  [ 8278.261525]  [<ffffffff8166e8f0>] ? gs_change+0x13/0x13

  The unmount process will hang as well and cannot be killed even using
  "kill -n 9".  When doing a forced system reboot the shutdown process
  will hand on "udevd [xyz] timeout: killing: "udisk-part-id /dev/sdi".

  Thanks.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1384969/+subscriptions