From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1Jv9qK-0000Kw-HW for mharc-grub-devel@gnu.org; Sun, 11 May 2008 07:35:52 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Jv9qI-0000Kd-03 for grub-devel@gnu.org; Sun, 11 May 2008 07:35:50 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Jv9qG-0000KN-Ey for grub-devel@gnu.org; Sun, 11 May 2008 07:35:48 -0400 Received: from [199.232.76.173] (port=43339 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jv9qG-0000KK-95 for grub-devel@gnu.org; Sun, 11 May 2008 07:35:48 -0400 Received: from fg-out-1718.google.com ([72.14.220.159]:18961) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Jv9qF-0000am-Nc for grub-devel@gnu.org; Sun, 11 May 2008 07:35:48 -0400 Received: by fg-out-1718.google.com with SMTP id l26so2141913fgb.30 for ; Sun, 11 May 2008 04:35:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:content-type; bh=maHRUW+lkqHN7FsKQg0MAL/S+2VlK7ULpj3sv/mZu8M=; b=B/YrzS8WTtdfQrmu8lGfyV6fK20nX9G2OQvYaa0k7iFtHt5aDjAXvoiXzlFWz9sw1MWvDpciSAE9ZYSyTQrGi7lC0gIqlUF9xRT0p0VXf/bS3RmZtTOzk8Wo09dXl48CMCrsRlyBW9mDb1+/Y72uPT6Oscv3C8QlWnRNqo4Ns6w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:content-type; b=fCccN6lhf5S6ACIULq2FR1fVWk3Uj9lMdn6OXVkQrzklv5PYigaasqHYIZJzG7UplGSY05BIEPCo5NwoMx/YIxCbqQ393HDUhcy2sZezVH96sT1eaYKbZdnps122IUX1r+uph7W+RDgOjajJq+VcWRHHs9r8IzCPJeAyqIsMyBo= Received: by 10.86.26.11 with SMTP id 11mr9931809fgz.23.1210505746363; Sun, 11 May 2008 04:35:46 -0700 (PDT) Received: from ?192.168.0.2? ( [79.114.39.147]) by mx.google.com with ESMTPS id 12sm5814877fgg.0.2008.05.11.04.35.44 (version=SSLv3 cipher=RC4-MD5); Sun, 11 May 2008 04:35:45 -0700 (PDT) Message-ID: <4826DA0D.9070302@gmail.com> Date: Sun, 11 May 2008 14:35:41 +0300 From: =?UTF-8?B?VMO2csO2ayBFZHdpbg==?= User-Agent: Mozilla-Thunderbird 2.0.0.12 (X11/20080420) MIME-Version: 1.0 To: grub-devel@gnu.org References: <481590B8.7000405@gmail.com> <20080429134626.GB8328@thorin> <481DC1BC.6020002@gmail.com> <20080506133126.GG5055@thorin> In-Reply-To: <20080506133126.GG5055@thorin> Content-Type: multipart/mixed; boundary="------------050300030205020503000506" X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 2) Subject: Re: Bug#478238: grub-probe: fails to find drive for /dev/sda10 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 May 2008 11:35:50 -0000 This is a multi-part message in MIME format. --------------050300030205020503000506 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable [sending to grub-devel@ as requested] Robert Millan wrote: > On Sun, May 04, 2008 at 05:01:32PM +0300, T=C3=B6r=C3=B6k Edwin wrote: > =20 >>>> Device Boot Start End Blocks Id System >>>> /dev/sda1 * 1 1275 10241406 7 HPFS/NTFS >>>> /dev/sda2 1276 2248 7815622+ a6 OpenBSD >>>> /dev/sda3 2249 5289 24426832+ f W95 Ext'd (L= BA) >>>> /dev/sda4 6080 7296 9775552+ bf Solaris >>>> /dev/sda5 2249 2371 987966 82 Linux swap /= Solaris >>>> /dev/sda6 2372 3587 9767488+ 83 Linux >>>> /dev/sda7 3588 3600 104391 83 Linux >>>> /dev/sda8 3601 4863 10145016 8e Linux LVM >>>> /dev/sda9 4864 5228 2931831 a6 OpenBSD >>>> /dev/sda10 5229 5289 489951 83 Linux >>>> =20 >> [...] >> grub> ls (hd0,10) >> error: unknown device >> grub> ls (hd0,11) >> error: unknown device >> grub> >> =20 > > I tried reproducing your setup, but I can't hit the same bug. This sta= rts to > look really nasty. Just spotted this: > > /build/buildd/grub2-1.96+20080426/partmap/pc.c:141: partition 0: flag= 0x80, type 0x7, start 0x3f, len 0x1388afc > [...] > /build/buildd/grub2-1.96+20080426/partmap/pc.c:141: partition 0: flag= 0x0, type 0x82, start 0x2270f07, len 0x1e267c > > for which I can't find any explanation other than memory corruption. A= lso, > due to a missing fflush() call the output is somewhat scrambled, which = makes > it harder to track (I fixed this already in upstream). > > Could you: > > - Apply the attached patch & run grub-probe again (this time output > will be a bit more readable) > =20 There was no patch attached, however I did a 'cvs diff -u -D2008-04-30', and applied that patch. I found what the problem is, and it also explains why you couldn't reproduce the problem. /dev/sda9 is not a valid OpenBSD partition, and in partmap/pc.c:176 the iteration fails with an error: invalid disk label magic 0x%x. If I replace that return with a continue, it works. The problem is that grub2 stops looking for more partitions as soon as it encountered the invalid partition, grub 0.97 was working perfectly and I never noticed the partition has the wrong type! Also if I change the partition type to 83 (as it should be) an unpatched grub-probe can find that /boot is on /dev/sda10: # grub-probe -t device /boot /dev/sda10 I think grub2 should handle errors more gracefully, eventually mark the partition as invalid, and keep going. grub-probe was looking for /dev/sda10, and it shouldn't be affected by /dev/sda9 being corrupted/invalid. Think of it this way: if a partition gets corrupted, that shouldn't prevent from booting, assuming the boot and root partitions are still ok. Compare what grub-emu says when sda9 has wrong type: grub> ls (hd0,10) error: unknown device And this is what it says when sda9 has the correct type: grub> ls (hd0,10) Partition hd0,10: Filesystem type ext2, Label debian_BOOT > - Send it to grub-devel@gnu.org > =20 Done > ? > > Maybe someone there has an idea, but if it's memory corruption and we c= an't > reproduce it, tracing the problem remotely isn't going to work very wel= l. > =20 It wasn't memory corruption, however I have run valgrind and it has shown some leaks, plus call to stat() with NULL parameter. The attached patch fixes some valgrind warnings. Some leaks still remain, I attached the new valgrind logs. P.S.: grub2 seems to work now, I am able to boot with it with the text-mode menu. The default graphics mode doesn't work I will open a separate bug about that. Best regards, --Edwin --------------050300030205020503000506 Content-Type: text/x-diff; name="grub2.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="grub2.patch" diff -ur grub2-1.96+20080429/kern/disk.c ../grub2-1.96+20080429/kern/disk.c --- grub2-1.96+20080429/kern/disk.c 2008-02-08 14:22:51.000000000 +0200 +++ ../grub2-1.96+20080429/kern/disk.c 2008-05-11 13:58:02.270673755 +0300 @@ -317,7 +317,10 @@ /* Reset the timer. */ grub_last_time = grub_get_rtc (); - grub_free (disk->partition); + if(disk->partition) { + grub_free (disk->partition->data); + grub_free (disk->partition); + } grub_free ((void *) disk->name); grub_free (disk); } diff -ur grub2-1.96+20080429/util/grub-probe.c ../grub2-1.96+20080429/util/grub-probe.c --- grub2-1.96+20080429/util/grub-probe.c 2008-05-11 13:59:14.934811935 +0300 +++ ../grub2-1.96+20080429/util/grub-probe.c 2008-05-11 13:46:21.729236855 +0300 @@ -190,9 +190,10 @@ struct stat st; grub_fs_t fs; - stat (path, &st); + if(path) + stat (path, &st); - if (st.st_mode == S_IFREG) + if (path && st.st_mode == S_IFREG) { /* Regular file. Verify that we can read it properly. */ --------------050300030205020503000506 Content-Type: text/plain; name="vallog" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="vallog" PT0yNTA3MT09IE1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3Rvci4KPT0yNTA3MT09 IENvcHlyaWdodCAoQykgMjAwMi0yMDA3LCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3 YXJkIGV0IGFsLgo9PTI1MDcxPT0gVXNpbmcgTGliVkVYIHJldiAxODA0LCBhIGxpYnJhcnkg Zm9yIGR5bmFtaWMgYmluYXJ5IHRyYW5zbGF0aW9uLgo9PTI1MDcxPT0gQ29weXJpZ2h0IChD KSAyMDA0LTIwMDcsIGFuZCBHTlUgR1BMJ2QsIGJ5IE9wZW5Xb3JrcyBMTFAuCj09MjUwNzE9 PSBVc2luZyB2YWxncmluZC0zLjMuMC1EZWJpYW4sIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1 bWVudGF0aW9uIGZyYW1ld29yay4KPT0yNTA3MT09IENvcHlyaWdodCAoQykgMjAwMC0yMDA3 LCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3YXJkIGV0IGFsLgo9PTI1MDcxPT0gRm9y IG1vcmUgZGV0YWlscywgcmVydW4gd2l0aDogLXYKPT0yNTA3MT09IAo9PTI1MDcxPT0gTXkg UElEID0gMjUwNzEsIHBhcmVudCBQSUQgPSA1NjYzLiAgUHJvZyBhbmQgYXJncyBhcmU6Cj09 MjUwNzE9PSAgICAuL2dydWItcHJvYmUKPT0yNTA3MT09ICAgIC1kCj09MjUwNzE9PSAgICAv ZGV2L3NkYTEwCj09MjUwNzE9PSAKPT0yNTA3MT09IFdhcm5pbmc6IG5vdGVkIGJ1dCB1bmhh bmRsZWQgaW9jdGwgMHgxMjYxIHdpdGggbm8gc2l6ZS9kaXJlY3Rpb24gaGludHMKPT0yNTA3 MT09ICAgIFRoaXMgY291bGQgY2F1c2Ugc3B1cmlvdXMgdmFsdWUgZXJyb3JzIHRvIGFwcGVh ci4KPT0yNTA3MT09ICAgIFNlZSBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMIGZv ciBndWlkYW5jZSBvbiB3cml0aW5nIGEgcHJvcGVyIHdyYXBwZXIuCj09MjUwNzE9PSBXYXJu aW5nOiBub3RlZCBidXQgdW5oYW5kbGVkIGlvY3RsIDB4MTI2MSB3aXRoIG5vIHNpemUvZGly ZWN0aW9uIGhpbnRzCj09MjUwNzE9PSAgICBUaGlzIGNvdWxkIGNhdXNlIHNwdXJpb3VzIHZh bHVlIGVycm9ycyB0byBhcHBlYXIuCj09MjUwNzE9PSAgICBTZWUgUkVBRE1FX01JU1NJTkdf U1lTQ0FMTF9PUl9JT0NUTCBmb3IgZ3VpZGFuY2Ugb24gd3JpdGluZyBhIHByb3BlciB3cmFw cGVyLgo9PTI1MDcxPT0gV2FybmluZzogbm90ZWQgYnV0IHVuaGFuZGxlZCBpb2N0bCAweDEy NjEgd2l0aCBubyBzaXplL2RpcmVjdGlvbiBoaW50cwo9PTI1MDcxPT0gICAgVGhpcyBjb3Vs ZCBjYXVzZSBzcHVyaW91cyB2YWx1ZSBlcnJvcnMgdG8gYXBwZWFyLgo9PTI1MDcxPT0gICAg U2VlIFJFQURNRV9NSVNTSU5HX1NZU0NBTExfT1JfSU9DVEwgZm9yIGd1aWRhbmNlIG9uIHdy aXRpbmcgYSBwcm9wZXIgd3JhcHBlci4KPT0yNTA3MT09IAo9PTI1MDcxPT0gRVJST1IgU1VN TUFSWTogMCBlcnJvcnMgZnJvbSAwIGNvbnRleHRzIChzdXBwcmVzc2VkOiAxMCBmcm9tIDEp Cj09MjUwNzE9PSBtYWxsb2MvZnJlZTogaW4gdXNlIGF0IGV4aXQ6IDYxMSwwNzcgYnl0ZXMg aW4gMTc2IGJsb2Nrcy4KPT0yNTA3MT09IG1hbGxvYy9mcmVlOiA5MDEgYWxsb2NzLCA3MjUg ZnJlZXMsIDIsMzk3LDIwMSBieXRlcyBhbGxvY2F0ZWQuCj09MjUwNzE9PSBGb3IgY291bnRz IG9mIGRldGVjdGVkIGVycm9ycywgcmVydW4gd2l0aDogLXYKPT0yNTA3MT09IHNlYXJjaGlu ZyBmb3IgcG9pbnRlcnMgdG8gMTc2IG5vdC1mcmVlZCBibG9ja3MuCj09MjUwNzE9PSBjaGVj a2VkIDY2MiwyNTYgYnl0ZXMuCj09MjUwNzE9PSAKPT0yNTA3MT09IDQsMDk2IGJ5dGVzIGlu IDEgYmxvY2tzIGFyZSBwb3NzaWJseSBsb3N0IGluIGxvc3MgcmVjb3JkIDMgb2YgNQo9PTI1 MDcxPT0gICAgYXQgMHg0MDA2QUI4OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjA3 KQo9PTI1MDcxPT0gICAgYnkgMHg4MDRBRkU0OiB4bWFsbG9jIChtaXNjLmM6ODEpCj09MjUw NzE9PSAgICBieSAweDgwNEI0MUE6IGdydWJfbWFsbG9jIChtaXNjLmM6MjIyKQo9PTI1MDcx PT0gICAgYnkgMHg4MDRDM0VCOiBncnViX2Rpc2tfY2FjaGVfc3RvcmUgKGRpc2suYzoxNjIp Cj09MjUwNzE9PSAgICBieSAweDgwNENEQzE6IGdydWJfZGlza19yZWFkIChkaXNrLmM6NDYx KQo9PTI1MDcxPT0gICAgYnkgMHg4MDY5QTcyOiBncnViX2x2bV9zY2FuX2RldmljZSAobHZt LmM6Mjg4KQo9PTI1MDcxPT0gICAgYnkgMHg4MDRDMDE0OiBpdGVyYXRlX3BhcnRpdGlvbi4y MTM0IChkZXZpY2UuYzoxMzIpCj09MjUwNzE9PSAgICBieSAweDgwNjZDOUM6IHBjX3BhcnRp dGlvbl9tYXBfaXRlcmF0ZSAocGMuYzoxNTMpCj09MjUwNzE9PSAgICBieSAweDgwNEYzQUQ6 IGdydWJfcGFydGl0aW9uX2l0ZXJhdGUgKHBhcnRpdGlvbi5jOjEyNikKPT0yNTA3MT09ICAg IGJ5IDB4ODA0QzA5RDogaXRlcmF0ZV9kaXNrLjIxMzEgKGRldmljZS5jOjEwMSkKPT0yNTA3 MT09ICAgIGJ5IDB4ODA0OThGQTogY2FsbF9ob29rIChiaW9zZGlzay5jOjEzMikKPT0yNTA3 MT09ICAgIGJ5IDB4ODA0OTkyQjogZ3J1Yl91dGlsX2Jpb3NkaXNrX2l0ZXJhdGUgKGJpb3Nk aXNrLmM6MTQxKQo9PTI1MDcxPT0gCj09MjUwNzE9PSAKPT0yNTA3MT09IDQxLDEzNiAoNDEs MTMyIGRpcmVjdCwgNCBpbmRpcmVjdCkgYnl0ZXMgaW4gMTIgYmxvY2tzIGFyZSBkZWZpbml0 ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNCBvZiA1Cj09MjUwNzE9PSAgICBhdCAweDQwMDZB Qjg6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMDcpCj09MjUwNzE9PSAgICBieSAw eDgwNEFGRTQ6IHhtYWxsb2MgKG1pc2MuYzo4MSkKPT0yNTA3MT09ICAgIGJ5IDB4ODA0QjQx QTogZ3J1Yl9tYWxsb2MgKG1pc2MuYzoyMjIpCj09MjUwNzE9PSAgICBieSAweDgwNEMzRUI6 IGdydWJfZGlza19jYWNoZV9zdG9yZSAoZGlzay5jOjE2MikKPT0yNTA3MT09ICAgIGJ5IDB4 ODA0Q0RDMTogZ3J1Yl9kaXNrX3JlYWQgKGRpc2suYzo0NjEpCj09MjUwNzE9PSAgICBieSAw eDgwNjZENEU6IHBjX3BhcnRpdGlvbl9tYXBfaXRlcmF0ZSAocGMuYzoxNjUpCj09MjUwNzE9 PSAgICBieSAweDgwNEYzQUQ6IGdydWJfcGFydGl0aW9uX2l0ZXJhdGUgKHBhcnRpdGlvbi5j OjEyNikKPT0yNTA3MT09ICAgIGJ5IDB4ODA0QzA5RDogaXRlcmF0ZV9kaXNrLjIxMzEgKGRl dmljZS5jOjEwMSkKPT0yNTA3MT09ICAgIGJ5IDB4ODA0OThGQTogY2FsbF9ob29rIChiaW9z ZGlzay5jOjEzMikKPT0yNTA3MT09ICAgIGJ5IDB4ODA0OTkyQjogZ3J1Yl91dGlsX2Jpb3Nk aXNrX2l0ZXJhdGUgKGJpb3NkaXNrLmM6MTQxKQo9PTI1MDcxPT0gICAgYnkgMHg4MDRDNEND OiBncnViX2Rpc2tfZGV2X2l0ZXJhdGUgKGRpc2suYzoyMDUpCj09MjUwNzE9PSAgICBieSAw eDgwNEJGNjM6IGdydWJfZGV2aWNlX2l0ZXJhdGUgKGRldmljZS5jOjEzOCkKPT0yNTA3MT09 IAo9PTI1MDcxPT0gTEVBSyBTVU1NQVJZOgo9PTI1MDcxPT0gICAgZGVmaW5pdGVseSBsb3N0 OiA0MSwxMzIgYnl0ZXMgaW4gMTIgYmxvY2tzLgo9PTI1MDcxPT0gICAgaW5kaXJlY3RseSBs b3N0OiA0IGJ5dGVzIGluIDEgYmxvY2tzLgo9PTI1MDcxPT0gICAgICBwb3NzaWJseSBsb3N0 OiA0LDA5NiBieXRlcyBpbiAxIGJsb2Nrcy4KPT0yNTA3MT09ICAgIHN0aWxsIHJlYWNoYWJs ZTogNTY1LDg0NSBieXRlcyBpbiAxNjIgYmxvY2tzLgo9PTI1MDcxPT0gICAgICAgICBzdXBw cmVzc2VkOiAwIGJ5dGVzIGluIDAgYmxvY2tzLgo9PTI1MDcxPT0gUmVhY2hhYmxlIGJsb2Nr cyAodGhvc2UgdG8gd2hpY2ggYSBwb2ludGVyIHdhcyBmb3VuZCkgYXJlIG5vdCBzaG93bi4K PT0yNTA3MT09IFRvIHNlZSB0aGVtLCByZXJ1biB3aXRoOiAtLWxlYWstY2hlY2s9ZnVsbCAt LXNob3ctcmVhY2hhYmxlPXllcwo= --------------050300030205020503000506--