Linux ata hard disk access race condition. Doug's Rough Notes. WWW.Smythies.com
Some commands used when I was working on this a couple of months ago (~~ 2012.04 or 05).(to remind me how.)
Some commands used when I was working on this around 2012.07 to early 08(to remind me how.)
I created a schroot i386 environment on s15.smythies.com, for two reasons: I couldn't figure out to cross compile a i386 kernel on the 64 bit machine; It took over 33 hours to compile the kernel on the beater i386 test machine, and then it gives up with an out of memory error.
While I was sucessful compiling an i386 kernel, now I don't remember how I did it, and I also need to catch up to the latest.
To go to the i386 32 bit server 12.04 chroot environment on s15: schroot -c precise_i386
2013.01.18 A potentially related thread on Ubuntu Forums
2012.11.22: One would think that another workaround would be to merely change the one line in /lib/udev/rules.d/60-persistent-storage.rules back to what it was.
Which does work if one remembers to do "sudo update-initramfs -u" after changing the rule (Dough!!).
O.K. so that is about 837 times easier than what I was doing.
Reference link. (with all due credit to Ubuntu forums - zika who pointed me to it).
The text for the first message in kern.log seems to come from:
./drivers/ata/libata-sff.c: * ata_sff_lost_interrupt - Check for an apparent lost interrupt
./drivers/ata/libata-sff.c: ata_port_warn(ap, "lost interrupt (Status 0x%x)\n",
Is it called from here?: /drivers/ata/libata-eh.c :
if (ap->ops->lost_interrupt)
ap->ops->lost_interrupt(ap);
If I can remember how to compile the kernel for 32 bit, maybe I can add a printk statement.
2012.08.13 try changing the log level to debug in /etc/udev/udev.conf.
While some minor differences could be seen between the logs, they still did not give added insight as to the root issue, at least that I could see.
2012.08.12 attribute-walk for hard disk for 175-0ubuntu10 (2759)
2012.08.12 attribute-walk for hard disk for 175-0ubuntu11 (2760)
2012.08.12 attribute-walk for CD for 175-0ubuntu10 (2759)
2012.08.12 attribute-walk for CD for 175-0ubuntu11 (2760)
2012.08.12 differences in the above files, both in one file
2012.08.12 legend for my local builds:
175-0ubuntu9 is unchanged.
175-0ubuntu10 is 175-0ubuntu9 with launchpad revision 2761 put back to 2759. (do not confuse with the real 175-0ubuntu10.)
175-0ubuntu11 is 175-0ubuntu9 with launchpad revision 2761 put back to 2760.
175-0ubuntu12 is 175-0ubuntu9 with launchpad revision 2761 put back to 2761. (i.e. unchanged , but re-built).
2012.08.10 Kernel 3.2.0-29.46 was released today. This kernel with udev 175-0ubuntu9.1 took ~6900 seconds for the first failure with the read_random_big test program, which is unusually long.
O.K. I have finally figured out how to make basically 175-0ubuntu9 with the revision 2761 part reverted to revision 2759. It compiled to 175-0ubuntu10, which should not be confused with the real 175-0ubuntu10.
Now testing...
2012.08.08 My compiled 175-0ubuntu6: No issue. This was just a sanity check test, as "6" was expected to work. Note that I have to re-boot after changing versions. Max seeks time was 0.300 seconds.
My compiled 175-0ubuntu7: Yes, issue. O.K. so finally it is narrowed down to which version introduced the issue.
It seems to be extremely difficult to just try something with this stuff. This has been a frustrating experience. bzr will not let me do anything.
O.K. so by disecting the debian/rules file and also the commands I use to compile the kernel, this perhaps worked:
time fakeroot debian/rules clean
time fakeroot debian/rules binary
But then when I tried again, it didn't work.
(precise_i386)doug@s15:~/udev-bzr-pp-2/bug-986654$ time fakeroot debian/rules binary make: *** No rule to make target `configure', needed by `build-deb/config.status'. Stop. real 0m0.090s user 0m0.060s sys 0m0.012s (precise_i386)doug@s15:~/udev-bzr-pp-2/bug-986654$
Why not? This is just so frustrating.
2012.08.07 O.K. so now the next question is how do I build version 8?
This seemed to help:
(precise_i386)doug@s15:~/udev-bzr-pp-2$ bzr branch -r tag:175-0ubuntu7 precise bug-986654-7 bzr: ERROR: Already a branch: "bug-986654-7". (precise_i386)doug@s15:~/udev-bzr-pp-2$ bzr branch -r tag:175-0ubuntu7 precise bug-986654-7a Branched 215 revisions. (precise_i386)doug@s15:~/udev-bzr-pp-2$ bzr branch -r tag:175-0ubuntu8 precise bug-986654-8 Branched 216 revisions. (precise_i386)doug@s15:~/udev-bzr-pp-2$ bzr branch -r tag:175-0ubuntu6 precise bug-986654-6 Branched 214 revisions. (precise_i386)doug@s15:~/udev-bzr-pp-2$
2012.08.07 The compile problem was that I was only asking for source code to be built, but not compiled into a .deb. This was incredibly not obvious to me withotu the answer, but with the answer if I re-read the how to web page it is a little clearer.
So, after the "bzr builddeb -- -S -us -uc" step I needed to do "bzr builddeb -- -b -us -uc" (I guessed at the overalll command). However, I see that I should have maybe used "pbuilder-dist
Reference: My Ubuntu forums request for help thread
2012.08.06 There is a version 9.1 now, but this issue of these web pages is still there.
2012.08.05: a description of the issue..
another useful (sort of) link.
There seems to be a difference between being able to use an abbriviation and not, which differs from the documentation:
(precise_i386)doug@s15:~/udev-bzr-pp-2$ bzr branch ubuntu:p/udev precise Enter passphrase for key '/home/doug/.ssh/id_rsa': bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/p/udev/". (precise_i386)doug@s15:~/udev-bzr-pp-2$ bzr branch ubuntu:precise/udev precise Enter passphrase for key '/home/doug/.ssh/id_rsa': Most recent Ubuntu Precise version: 175-0ubuntu9 Packaging branch status: CURRENT Most recent Ubuntu Quantal version: 175-0ubuntu10 Packaging branch status: CURRENT Branched 217 revisions. (precise_i386)doug@s15:~/udev-bzr-pp-2$
2012.08.03: Still can not get it to compile.The difference today was getting the precise version of the source code. Enabling verbose in debian/rules did not give more information.
2012.08.02: Finally got back to this. Following the Ubuntu Packaging guide very carefully, I couldn't get the source to compile when I got to that step.
2012.07.07: Saw there is a version 10, only for 12.10 so far. I tried to install it, but it had dependency issues. Retored the 9 version.
How do I make a .deb package? Tried using Ubuntu Packaging Wiki even though it says it is laregely out of date.
Then there was the Ubuntu Packaging guide which I didn't find until later.
Tried to make Personal Builder environment within my chroot i386 environment within s15.smythies.com. Seemed to proceed O.K.
As usual a saga unfolded.
My gpg key files an s15.smythies.com all got clobbered while trying to compile udev. Sometimes I really hate this shit.