[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Write error - SATA link reset with growisofs and tracksize not multiple of 32kB



Andy Polyakov <appro@fy.chalmers.se> wrote:

It apparently times out, which is basically why I thought of "Short DAO
recordings."

Could you test following. Open growisofs_mmc.cpp in text editor, locate
line that reads

	cmd.timeout(dao_toggle?180:60);

Modify it as

	cmd.timeout(180);

Recompile and retry recording. If it still times out, try to increase to
say 300.

I tried it - no better. I just have to wait longer for the Error to occur. With 300 growisofs is writing:
  587497472/587524096 (100.0%) @0.0x, remaining 0:00 RBU   0.1% UBU 100.0%
for approximately 5 Minutes, then Kernel logs the link reset and I get the error. One interesting thing: The drive blinks for about 1-2 minutes after the first 100%-line. Then it comes short into action (noise like spin up/down) and the LED on the drives goes out. It seems to have finished. But you have to wait for another few minutes until growisofs stops with error. As said above, kernel messages also appear only at the end of the wait time.


For your question about the kernel-Log in later mail:
As far as I remember, the kernel output belongs to this recording, but
I'm not 100% sure. If you think it's important, I will test it again.

Well, I'd bet the values are from different recordings, because
discrepancy is simply insane. It's as important as to maintain sanity:-)


Ok, to maintain sanity :-) : You were right. The correct kernel-log for the 0.5G-Testfile is:
-----------------
[ 1656.664046] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen [ 1656.664067] ata2.00: cmd a0/01:00:00:00:80/00:00:00:00:00/a0 tag 0 dma 32768 out
[ 1656.664070]          cdb 2a 00 00 04 60 90 00 00  0d 00 00 00 00 00 00 00
[ 1656.664072] res 40/00:03:00:00:80/00:00:00:00:00/a0 Emask 0x4 (timeout)
[ 1656.664077] ata2.00: status: { DRDY }
[ 1656.664084] ata2: hard resetting link
[ 1663.204032] ata2: link is slow to respond, please be patient (ready=0)
[ 1666.681520] ata2: softreset failed (device not ready)
[ 1666.681546] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 1671.681523] ata2.00: qc timeout (cmd 0xa1)
[ 1671.681543] ata2.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[ 1671.681548] ata2.00: revalidation failed (errno=-5)
[ 1671.681557] ata2: hard resetting link
[ 1678.212027] ata2: link is slow to respond, please be patient (ready=0)
[ 1681.684035] ata2: softreset failed (device not ready)
[ 1681.684061] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 1691.685542] ata2.00: qc timeout (cmd 0xa1)
[ 1691.685564] ata2.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[ 1691.685569] ata2.00: revalidation failed (errno=-5)
[ 1691.685577] ata2: hard resetting link
[ 1692.168030] ata2: softreset failed (device not ready)
[ 1692.168041] ata2: failed due to HW bug, retry pmp=0
[ 1692.333545] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 1692.339886] ata2.00: configured for UDMA/100
[ 1692.339936] ata2: EH complete
---------------

With "04 60 90" as the correct failing LBA-Adress.
I don't know which test the other kernel log was from.



Too complicated:-) Open growisofs_mmc.cpp in text editor and locate
function named minus_r_reserve_track. In the beginning it reads

	if (is_dao) dao_blocks = blocks;

Replace this line with

	if (0) dao_blocks = blocks;

A.

This does the trick in my case. Burns without problems. So I can stay with growisofs and don't have to try all different burning programs.
(and such a simple one - could have searched for eternity to find it).

Nevertheless if you think it's worth (still no other complained about the same error) and if you have additional ideas, I could make further testing.
Otherwise we could close this thread. Many thanks for your help!


Markus



Reply to: