Write error - SATA link reset with growisofs and tracksize not	multiple of 32kB
Hi,
I have a problem with my SATA-drive LG GH20NS10 (actual firmware EL01,  
same with old firmware) and growisofs (7.1):
If I try to burn a DVD-Image on a DVD-R (or quick-blanked DVD-RW) in  
DAO-Mode with a size not divisible by 32kB, writing stops after the  
last complete 32kB-Block and I get an write error:
--------------------
growisofs -dvd-compat -Z /dev/scd0=test2.iso
Executing 'builtin_dd if=test2.iso of=/dev/scd0 obs=32k seek=0'
/dev/scd0: FEATURE 21h is not on, engaging DAO...
/dev/scd0: reserving 286877 block, warning for short DAO recording
/dev/scd0: "Current Write Speed" is 4.1x1352KBps.
          0/587524096 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU   0.0%
          0/587524096 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU   0.0%
          0/587524096 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU   0.0%
          0/587524096 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU   0.0%
          0/587524096 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU   0.0%
          0/587524096 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU   0.0%
   16646144/587524096 ( 2.8%) @3.6x, remaining 13:43 RBU 100.0% UBU  85.3%
   35160064/587524096 ( 6.0%) @4.0x, remaining 7:19 RBU  99.9% UBU 100.0%
   53641216/587524096 ( 9.1%) @4.0x, remaining 5:08 RBU 100.0% UBU 100.0%
   72122368/587524096 (12.3%) @4.0x, remaining 4:10 RBU 100.0% UBU 100.0%
   90636288/587524096 (15.4%) @4.0x, remaining 3:28 RBU  99.9% UBU 100.0%
  [...]
  534609920/587524096 (91.0%) @4.0x, remaining 0:11 RBU 100.0% UBU 100.0%
  553123840/587524096 (94.1%) @4.0x, remaining 0:07 RBU 100.0% UBU 100.0%
  571604992/587524096 (97.3%) @4.0x, remaining 0:03 RBU  47.5% UBU 100.0%
  587497472/587524096 (100.0%) @3.4x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
 [repeating]
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
:-[ WRITE@LBA=46090h failed with SK=0h/ASC=00h/ACQ=03h]: Input/output error
:-( write failed: Input/output error
----------------------
at the same time, kernel logs:
---------------------
[ 6030.669547] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action  
0x6 frozen
[ 6030.669568] ata2.00: cmd a0/01:00:00:00:80/00:00:00:00:00/a0 tag 0  
dma 32768 out
[ 6030.669570]          cdb 2a 00 00 01 db 40 00 00  0e 00 00 00 00 00 00 00
[ 6030.669573]          res 40/00:03:00:00:80/00:00:00:00:00/a0 Emask  
0x4 (timeout)
[ 6030.669581] ata2.00: status: { DRDY }
[ 6030.669589] ata2: hard resetting link
[ 6037.200029] ata2: link is slow to respond, please be patient (ready=0)
[ 6040.672036] ata2: softreset failed (device not ready)
[ 6040.672061] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 6045.672181] ata2.00: qc timeout (cmd 0xa1)
[ 6045.672204] ata2.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[ 6045.672209] ata2.00: revalidation failed (errno=-5)
[ 6045.672218] ata2: hard resetting link
[...]
[ 6105.680071] ata2.00: disabled
[ 6105.680091] ata2: exception Emask 0x40 SAct 0x0 SErr 0x800 action  
0x6 frozen t4
[ 6105.680097] ata2: SError: { HostInt }
[ 6105.680104] ata2: hard resetting link
[ 6112.212025] ata2: link is slow to respond, please be patient (ready=0)
[ 6115.684025] ata2: softreset failed (device not ready)
[ 6115.684049] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 6115.684086] ata2: EH complete
-----------
(Board: Gigabyte GA-MA78G-DS3H with AMD780G Chipset)
The DVD is readable afterwards, and a "dd" gives me the complete image  
size (not only the bytes reported as successfull written). But the  
error is annoying.
With  -use-the-force-luke=tracksize:XYZ and XYZ divisible by 16 (=32kB  
blocks), it works without error.
My other drive (Optiarc  DVD RW AD-7170A, IDE - not SATA) doesn't have  
this problem, I haven't found other problems with the LG-drive and I  
haven't found any problems like this in the internet.
Is there a explanation for the behaviour? As far as I understand,  
DVD-R can only be written in 32kB-Blocks, but the drive itself should  
fill up incomplete blocks. Could it be a defect drive or a bug of the  
SATA-Chipset?
Would it be a good idea to patch growisofs and make sure that  
tracksize is automatically extended to the next 32kB? Or could this  
lead to other problems?
Regards
Markus
Reply to: