Contribute
Register

Chimera text-spinner suddenly hangs (at about '|' or '/') with presence of internal time machine dri

Status
Not open for further replies.
Joined
Apr 20, 2011
Messages
60
Motherboard
Gigabyte Auros z390 Ulta
CPU
i9-9900K
Graphics
HD 630
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
This problem suddenly started happening, and I'm not sure why. The computer goes completely unresponsive. I did not upgrade Mac OS X nor modify any other configuration between several successful boots and then now.

If I take the time-machine drive out, the computer boots just fine.

I've taken the time-machine drive out, hooked it up to my laptop via USB, have verified the disk, checked partition tables, etc. It reads fine, no signs of drive failure.

If I boot with both drives in, even with a USB stick, then the same failure occurs.

My hunch is there is a bug in Chimera in which the software encounters some unexpected state, doesn't know how to handle it, and freezes.

I'm happy to provide any logs or try any custom Chimera builds to help diagnose the problem, I just don't know where to start.

In a few days, I'm going to try re-partitioning the drive to see if it changes things, but hopefully I can use the reproducible state to help diagnose a Chimera issue.

Thanks!
 
MacMan, I get that you're busy. You frequently get confused / mistaken bug reports. And who knows, maybe this is one of them. But, you wouldn't be able to reproduce it, because without the presence of my otherwise perfectly readable time machine drive (when hooked up to other machines via external dock), Chimera boots just fine.

When the drive is present, it fails on the text spinner... I believe the one powered by the below code:

Code:
/Users/timcharper/src/projects/cham/Release/i386/boot2/graphics.c

    1167 | //==========================================================================
    1168 | // Display and clear the activity indicator.
    1169 | 
    1170 | static char indicator[] = {'-', '\\', '|', '/', '-', '\\', '|', '/', '\0'};
    1171 | 
    1172 | // To prevent a ridiculously fast-spinning indicator,
    1173 | // ensure a minimum of 1/9 sec between animation frames.
    1174 | #define MIN_TICKS 2
    1175 | 
    1176 | void
    1177 | spinActivityIndicator(int sectors)
    1178 | {
    1179 |     static unsigned long lastTickTime = 0, currentTickTime;
    1180 |     
    1181 | 	if (previewTotalSectors && previewSaveunder)

My hunch is that it is the code that scans for available drives and populates the boot menu which is freezing up. It sees my TimeMachine drive, and something about it just causes it to freak out and crash.

I can `dd` my TimeMachine header if that would help... not sure if it has an MBR record written or not.

Whether I boot from a USB Hackintosh Mountain Lion installer, or my primary drive (which works when the TimeMachine drive is not connected), it still freezes. I've had the TimeMachine drive connected internally via SATA and backing up for over a year. This problem suddenly cropped up. Something about the state of the drive is causing Chimera to crash. I've upgraded to the latest Chimera release, and it still crashes when the drive is connected.

I have another identically 2TB drive, same brand and model, also used for TimeMachine, but for a different computer. If I connect THAT one internally (in place of the offending TimeMachine drive), the bootloader DOES NOT crash. In my mind, this narrows the issue down to some sequence of bytes contained on the offending drive that is causing Chimera to crash, and not a failing SATA cable, controller, etc. The offending TimeMachine drive reads perfectly well, scans perfectly well, does not show any sign of disk failure.

Even still, should disk failure be able to cause the bootloader to freeze?

I am tempted to wipe the drive clean, reformat, and repartition it. I'm confident that by so doing I will be back in working order. But I will also miss an opportunity to help locate and fix a bug.

If you really don't care, then I'll just do that. It's fine with me, I'd just like to contribute to the project.

Speaking of which... what is the magic invocation to build Chimera? If I run `make`, I get the following:

Code:
    timcharper@timcharper:~/src/projects/cham/Release $ make
      [MKDIR] /Users/timcharper/src/projects/cham/Release/sym
      [MKDIR] /Users/timcharper/src/projects/cham/Release/obj
      [MAKE] config
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory
    ================= make config for i386 =================
    /bin/sh: line 0: cd: i386: No such file or directory

(I'd like to build Chimera and add some additionally debug statements to see whereabouts the code is halting.)

I've recorded a video showing the problem, and showing how it crashes with the presence of the TimeMachine drive, without the drive... it's like 2GB and is uploading to Youtube. I'll post it when it finishes.
 
By the way... the activity indicator code reminds me of the good-old-days... hooking into interrupt 08h to run stuff in the background... high quality stuff :) I used to mess around with this when I wrote a mod player and other fun pranks that would show messages on dos terminals at random intervals.

[I see now that spinActivityIndicator method is being called with every loop iteration in disk.c... and it's reading the tick interval from BIOS, not hooking into 08h... anyways, just the whole 1/18th second thing reminded me... this is all totally unrelated to the issue at hand, of course]
 
I am tempted to wipe the drive clean, reformat, and repartition it. I'm confident that by so doing I will be back in working order. But I will also miss an opportunity to help locate and fix a bug.

That has fixed the issue on two of my machines, both running 10.6.8, on completely different hardware (X58 & Z68, see sig). In both cases, I've reformatted and repartitioned the drive to correct it.

It has just happened again on the machine I'm typing this on (which has led me here). I've just cloned a 10.6.8 install to an SSD and run Multibeast against the SSD in this machine (Z68).

eta: A temporary fix is to add the key/string Scan Single Drive=Yes to the boot.plist.
 
Codymac, thanks for the tip, I'll give that a try. All of my operating systems boot from the same drive.

I dd'd the first 8k of my disk and piped it through hexdump, via

Code:
    sudo su -
    diskutil list
    # find disk number
    dd if=/dev/disk3 count=16 | hexdump

Here's the output. Not sure if it's somewhere around here that is causing chimera to freeze. I'm going to reformat the drive and start backing up all over.

Code:
    0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    00001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe
    00001c0 ff ff ee fe ff ff 01 00 00 00 af 88 e0 e8 00 00
    00001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    00001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa
    0000200 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00
    0000210 af ac 44 d3 00 00 00 00 01 00 00 00 00 00 00 00
    0000220 af 88 e0 e8 00 00 00 00 22 00 00 00 00 00 00 00
    0000230 8e 88 e0 e8 00 00 00 00 08 07 99 09 d9 e0 99 46
    0000240 8f 53 83 70 72 f4 5a 9b 02 00 00 00 00 00 00 00
    0000250 80 00 00 00 80 00 00 00 54 60 ae cf 00 00 00 00
    0000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000400 28 73 2a c1 1f f8 d2 11 ba 4b 00 a0 c9 3e c9 3b
    0000410 8e 45 fc b8 95 9d 67 47 af 19 28 46 72 d8 21 7e
    0000420 28 00 00 00 00 00 00 00 27 40 06 00 00 00 00 00
    0000430 00 00 00 00 00 00 00 00 45 00 46 00 49 00 20 00
    0000440 53 00 79 00 73 00 74 00 65 00 6d 00 20 00 50 00
    0000450 61 00 72 00 74 00 69 00 74 00 69 00 6f 00 6e 00
    0000460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000480 00 53 46 48 00 00 aa 11 aa 11 00 30 65 43 ec ac
    0000490 68 91 be a1 7b ad c9 46 b6 b1 fa 81 13 d5 0a c5
    00004a0 28 40 06 00 00 00 00 00 87 88 dc e8 00 00 00 00
    00004b0 00 00 00 00 00 00 00 00 4d 00 65 00 64 00 69 00
    00004c0 61 00 43 00 65 00 6e 00 74 00 65 00 72 00 20 00
    00004d0 54 00 69 00 6d 00 65 00 4d 00 61 00 63 00 68 00
    00004e0 69 00 6e 00 65 00 00 00 00 00 00 00 00 00 00 00
    00004f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0002000

If others run in to this problem, try doing the same... and post it here, maybe it will be helpful data.

I'd try and recompile Chimera with extra debug output to narrow this down, but can't build it for the life of me. Make fails with the output (as follows).


Code:
timcharper@timcharper:~/src/projects/cham/Release $ make
	[MAKE] config
================= make config for i386 =================
/bin/sh: line 0: cd: i386: No such file or directory
================= make config for i386 =================
/bin/sh: line 0: cd: i386: No such file or directory
================= make config for i386 =================
/bin/sh: line 0: cd: i386: No such file or directory
================= make config for i386 =================
/bin/sh: line 0: cd: i386: No such file or directory
================= make config for i386 =================
/bin/sh: line 0: cd: i386: No such file or directory
================= make config for i386 =================
/bin/sh: line 0: cd: i386: No such file or directory
================= make config for i386 =================
/bin/sh: line 0: cd: i386: No such file or directory
================= make config for i386 =================
... snip 500+ lines...
make[9]: *** [rebuild_config] Error 2
make[8]: *** [rebuild_config] Error 2
make[7]: *** [rebuild_config] Error 2
make[6]: *** [rebuild_config] Error 2
make[5]: *** [rebuild_config] Error 2
make[4]: *** [rebuild_config] Error 2
make[3]: *** [rebuild_config] Error 2
make[2]: *** [rebuild_config] Error 2
make[1]: *** [rebuild_config] Error 2

(update: As expected, repartitioning the drive resolved the boot issues. Back to booting just fine with both drives installed)
 
I've repartitioned the drive, here's a diff of the first 8k:

Code:
root@timcharper:~ $ diff -u <(hexdump before) <(hexdump after) 
--- /dev/fd/63	2013-05-12 21:52:17.000000000 -0600
+++ /dev/fd/62	2013-05-12 21:52:17.000000000 -0600
@@ -6,15 +6,15 @@
 *
 00001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa
 0000200 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00
-0000210 af ac 44 d3 00 00 00 00 01 00 00 00 00 00 00 00
+0000210 a5 7f 75 45 00 00 00 00 01 00 00 00 00 00 00 00
 0000220 af 88 e0 e8 00 00 00 00 22 00 00 00 00 00 00 00
-0000230 8e 88 e0 e8 00 00 00 00 08 07 99 09 d9 e0 99 46
-0000240 8f 53 83 70 72 f4 5a 9b 02 00 00 00 00 00 00 00
-0000250 80 00 00 00 80 00 00 00 54 60 ae cf 00 00 00 00
+0000230 8e 88 e0 e8 00 00 00 00 1c ae 82 2e 6f 20 eb 40
+0000240 8d c3 08 c0 17 43 31 a3 02 00 00 00 00 00 00 00
+0000250 80 00 00 00 80 00 00 00 20 1f b9 ed 00 00 00 00
 0000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 *
 0000400 28 73 2a c1 1f f8 d2 11 ba 4b 00 a0 c9 3e c9 3b
-0000410 8e 45 fc b8 95 9d 67 47 af 19 28 46 72 d8 21 7e
+0000410 3f e1 20 9e 52 bb 8b 48 af 76 ce b7 f3 bf 8e 1f
 0000420 28 00 00 00 00 00 00 00 27 40 06 00 00 00 00 00
 0000430 00 00 00 00 00 00 00 00 45 00 46 00 49 00 20 00
 0000440 53 00 79 00 73 00 74 00 65 00 6d 00 20 00 50 00
@@ -22,12 +22,11 @@
 0000460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 *
 0000480 00 53 46 48 00 00 aa 11 aa 11 00 30 65 43 ec ac
-0000490 68 91 be a1 7b ad c9 46 b6 b1 fa 81 13 d5 0a c5
+0000490 74 7f 2a 27 93 4e 41 42 9b eb 4b b5 31 9d cb 81
 00004a0 28 40 06 00 00 00 00 00 87 88 dc e8 00 00 00 00
-00004b0 00 00 00 00 00 00 00 00 4d 00 65 00 64 00 69 00
-00004c0 61 00 43 00 65 00 6e 00 74 00 65 00 72 00 20 00
-00004d0 54 00 69 00 6d 00 65 00 4d 00 61 00 63 00 68 00
-00004e0 69 00 6e 00 65 00 00 00 00 00 00 00 00 00 00 00
-00004f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00004b0 00 00 00 00 00 00 00 00 4d 00 43 00 20 00 54 00
+00004c0 69 00 6d 00 65 00 4d 00 61 00 63 00 68 00 69 00
+00004d0 6e 00 65 00 00 00 00 00 00 00 00 00 00 00 00 00
+00004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 *
 0002000
 
Codymac, thanks for the tip, I'll give that a try. All of my operating systems boot from the same drive.

Unfortunately mine are on multiple drives so scanning a single drive makes things a bit of a pain here.

In hindsight, I'm fairly certain my X58 system is running PC EFI and I did install Chameleon on my Z68 system and confirmed that it behaved the same.

I'm betting that your Time Machine drive is larger than 1tb. Mine have been.
 
Thanks so much for pointing this bug out. It helped me to get an external PCIe Sata card working. I too was getting the "freeze" at the 'l' or '/' at Chimera start. I hadn't realised that it was the Time machine disk that I had attached to the card until reading this post.
A reformat of the Time machine disk fixed this.
The problem for me seems to be that the time machine disk had been until this point generated via an eSATA docking station (don't know if that is necessary to invoke the bug). It certainly resulted in the freeze. The minute I disconnected this drive (1tb Western Digital Caviar) the problem disappeared.
I am now using the same disk as a Time machine disk but regenerating it via the internal PCIe SATA card. I will repost here if this causes problems.
 
Status
Not open for further replies.
Back
Top