Silly Kernel Panic in Mac OS X 10.2.2
shibby tells us that it is easy to cause a kernel panic in Mac OS X 10.2.2, by attempting to move a directory into the same location as another one of the same name, using Terminal: mkdir ~/mydir; cd ~/mydir; mkdir mydir; mv mydir ... Kernel panic is instant. Save all your documents and quit your open apps if you feel the need to see it for yourself. Happy Thanksgiving!
Apple has a bug. This is amazing news. FP
Reliable, Great Value Hosting: $7.95/mo 2.4G/120G
Please tell me that shibbey or pudge...or someone... actually submitted this bug to Apple before posting it here.
It'll be interesting, though, to see how long we wait for a fix. If this is a legit thing. I haven't tested it and don't plan to.
You like your Macintosh better than me, don't you Dave? Dave? Can you hear me Dave?
This is as dumb as the windows file/run/file://C|/CON/CON doohickey.
Can this be exploited by a rouge shell script? "Funny_Picture.png.sh" wouldnt be fun, given the average mac user is
1) As guilable as windows users
2) Not as savvy to the ways of trick emails as windows users.
At least it wouldnt propergate - I assume theres a undered different mail clients on OSX. (I'm not a millionaire and cant afford my own mac you insensitive clod!)
os9 would never, despite its shabby memory protection, and pathetic preemptive multitasking, do that.
hmmmph, this sounds like troll/flamebait
karma: ouch!
yes there are many mail apps for OSX, here are 3 to start with. Mail - built in for free Eudora Entourage(Microsofts Mail app in Office) and so on as far as being a millionaire, you dont even have to be a thousandaire. macs start at $999 www.apple.com for some education
Not only does it cause a kernal panic, but it slaps the user on the head and asks them, "Why the heck did you create a directory with the same name as the current directory????"
:-)
Those crazy kernal programmers
Found the offending piece of code in Darwin ...
...
BOOL HFSPLUS_Directory_Move( const char *src, const char *dest ) {
if ( !strcmp( src, dest ) ) {
__kernelPanic( KP_IMMEDIATE );
}
}
codegolf.com - smaller *is* better.
Then there was Colonel Panic, who wouldn't work if you added two folders with the same name to the same in box on his desk.
What's next? Private Keychain will forget where he stored my passwords and x.509 certificates?
Oh wait... you were talking about kernels...
Sorry!
-wjc.
"I figure you're here 'cause you need some whacko who's willing to stick his finger in the fan. So who are we helping?
Be very careful with this - If you are testing, or accidentally gonna do this, you will lose both directories and all data in them.
codegolf.com - smaller *is* better.
I was able to create a directory and move a directory of the same name into it. Bash is my default shell. Try the same thing in Bash. exx@eddy:~/mydir/mydir$
Edmund White
http://flickr.com/ewwhite
anyway, you can add all that to the entry level G4 Tower swapping HD's and adding in another DVD/DCRW is simple. $1699 is the base price, cheaper for students. way off topic now, so have fun with windows.
Try explaining to mom why she can't have two directories named letters without crashing the machine
The GUI (gracefully) prevents you from doing this, so if Mom can understand the sequence of terminal commands that triggers the panic, she'll have no trouble understanding why...
/sw/bin/mv: cannot overwrite directory `../mydir'
Edmund White
http://flickr.com/ewwhite
Still, in Linux it just gives you an error message, or does what you would expect. I'm still curious about the origins of this bug, and where it is. I would look at the 'mv' command code first.
Here's the message (login: archives, pass: archives)
This list is teeming with Apple folks, so I'm sure someone's posted a RADAR bug already.
This problem also came up on MacNN and is discussed in detail here
Now here's the kicker - as the kernel is open-source (APSL - don't complain), someone's already traced the problem back to a recursive lock in the HFS+ subsystem (hfs_vnops.c). Kewl or wha'?
Alison
"It is a miracle that curiosity survives formal education." - Albert Einstein
- You have the correct permissions to the folder, and
- You are running 10.2.2?
Missing either of these might make the bug not work (oh no!).Alcohol and Calculus don't mix. Don't drink and derive.
.. have a thread going on this, too. Link here
Alison
"It is a miracle that curiosity survives formal education." - Albert Einstein
Funny you mention video editing. Even on the low end, your $1,200 PC is never going to run iMovie.
t icle2.h tml
;)
On the high end, your cost comparison is a joke, because the cost of the computer is the least of your expenses. A high end PC based (with Avid or the like) system is going to set you back $100,000 or more.
The cost for a similarly featured Apple video editing system with Final Cut Pro? Less than $10,000.
Read it and weep:
http://www.filmandvideo.com/New%20Pages/ar
Worried about this kernel panic ruining your video editing? Don't. You are not likely to be in your Terminal making two directories of the same name and moving them about in the course of your video editing. Even if you were, this is happening in the Unix part of OS X, which is open source, and it is being announced on Slashdot. Someone will probably fix it for fun over the weekend and email Apple a patch by Monday. We'll probably see an official, tested, security update from Apple next week. That is the beauty of open source.
If this were Microsoft and a "blue screen of death", well, don't hold your breath. Their response would be the same as seven years ago: "There are no significant bugs in Windows XP. Trust us.". Yeah, right! That's what PC Magazine said about Windows 95, when I spent 11 months trying to get a stable install of the original version.
Windows: "Go talk to my friend, an 800 pound monopoly-abusing gorilla!"
Mac: "And here's my good buddy, the 66,000 ton Godzilla!"
Godzilla: Stomp!
Isn't "mydir" a Microsoft innovation? Could explain why it crashes ;p
More like non-existant
I believe that classic MacOS could do preemptive threading of some sort, but only with 680x0 code, not PPC.
I got interested in writing threaded stuff under the MacOS at one point, so this is out of hazy memory here.
May we never see th
Try using the BSD mv (/bin/mv) rather than the GNU one
Apple has a bug. This is amazing news.
/me thinks Apple would have been better using someone else's kernel -- like the FreeBSD one -- verbatim instead of trying to hack up that Mach POS (which I've heard nothing but bad things about from OS people up at Carnegie Mellon, where Mach was developed). They could still have plopped Carbon and Quartz and all their other goodies on top.
I'd say it's pretty notable. Apple's never been noted for particularly buggy code, though OS X has had a fairly nasty number of things like kernel oopses since its introduction. So while it's not *that* out of line for issues to pop up in a youthful OS, the amazing thing is that this didn't show up before.
Of course, I certainly could be missing something -- could be that the FBSD kernel just didn't do something that Apple had to have it do, and that the FBSD people wouldn't have accepted. Could be SMP issues, I suppose...
May we never see th
perhaps off topic, but it will also cause kernel panic (at least in my network without fail).
try to mount a share from an local smb server that does not exist. cancel it, then try to mount one that DOES exist.
ie. from the finder command-k
smb://10.0.1.3 #does not exist
cancel it,
smb://10.0.1.4 #does exist
the second attempt will time out and the machine will have to be hard reset.
maybe this is just me, but this has been happening to me since 10.1.5
Sure enough using /bin/mv it crashed as advertised.
/sw/bin/mv, which is the GNU version of mv from the fileutils package, just gives a "cannot overwrite directory" error.
But
This is (one of the many reasons) why the GNU versions of everything should be standard on all systems in the universe. So go fetch and install a copy of fink and (optionally) FinkCommander.
Also, "alias mv mv -i" is a Very Good Idea(tm).
"The cost of freedom is eternal vigilance." -Thomas Jefferson
I run bash and the bug works beautifully well, I even gathered a crowd to witness it. Its immediateness is really amazing, a worthy watch. Maybe if you call Apple support they can help you to crash just like the rest of us.
I understand the commands. I don't understand for the life of me why this warrants a PANIC!!!! ok a "denied" error response is UNDERSTANDABLE (well to me) this is just sloppy...
--
"we live in a post-ideological world..." - Billy Bragg.
you are not using /bin/mv you are using /sw/bin/mv probably the GNU version.
hard reset?
Why not remote login and kill the process?
You should see the death screen. Very slick. I'd post a screen grab, but well you know. :)
I know I'm going to hell, I'm just trying to get good seats.
Better yet... If samba has shared user directories try this: Mount username's samba share (ie home directory) in ~/mnt/username/ Now try to cd ~/mnt/username/mnt/username/mnt/username Make sure you use some tab completions as well. At some point you will no longer be able to continue typing the command. ^C wont stop it either. Ok, so you now want to unmount it to try and stop it from happening again. Good luck. umount ~/mnt/username will end up locking up as well. Yet again ^C wont stop it.
I understand the commands. I don't understand for the life of me why this warrants a PANIC!
Agreed. I was just responding to the troll about how this would ruin the lives of non-power users.
I bulit and installed GNU fileutils 4.1 on my Mac OS X system some time ago (I wanted my Linux flavored fileutils!) and it turns out that they (mv) don't have this ...mv dirname .. problem. Try it!
Rise above your name, then maybe your criticizms will bite a little harder.
You like your Macintosh better than me, don't you Dave? Dave? Can you hear me Dave?
try it and see. the result is the OS X equivalent to a BSOD in windows or the bomb icon in OS 9. the desktop will gray and a dialogue will appear (in a number of languages) telling you to hard reset.
do that then.
Why isn't Premiere in your cost when the 'equivalent' Mac has bundled iMovie and iDVD?
My $1500 933MHz G4 comes with iMovie, iDVD, and DVD-R. I don't have a DV-Analog converter in the system, but I do use my camcorder for that purpose.
For the 'average' joe who wants to buy a computer, buy a camcorder, make a movie, then burn a DVD, the iMac/eMac/PowerMac is still a great deal, in terms of learning curve, cost, effort, and ease of use.
GPL Deconstructed
What's missing that you want HFS+ to go away or something?
It's got metadata, which Microsoft only *added* with NTFS
It finally got journaling with 10.2.2
It spans, quite comfortably, 180GB hard drives
File sizes can be larger than 2gb, and I believe up to 2TB (2^63 bytes per file)
Is there something missing? Perhaps encryption? Apple already has support for encrypted volumes...
GPL Deconstructed
It would be smart to enable journalling before doing this: /
sudo diskutil enablejournal
Overall, I've found OS X to be a wonderfully stable product, and have never seen a kernel panic.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
I must admit to being somewhat taken aback by the comments here . . .
While this bug appears trivial it is not.
Consider: An entire apple server can be totally killed requiring a human to reboot it just by getting a totally unpriveleged shell access.
EVEN A GUEST can kill the system using this simple simple set of commands. That's not good. Of course it's not the end of the world either.
anyone know of a way to get unprivileged access on an apple server of your choice?!
Later . . . . . . WebBug
Try changing an Ethernet interface's MAC address using ifconfig. Whoops.
IE 5 chokes on that page for me, too, even though I'm running OS 9.2. I guess the problem isn't OS specific.
In one way, though, it's worse on mine - I actually had to reset because, darn it, OS 9 doesn't have protected memory!
I hope that you realize that, assuming that you're telling the truth), you have just breached Apple's NDA on seeded operating systems.
"DAMN, sticking that fork in my eye really hurt!"
"Oooh, I WANT TO TRY!"
-braxton
I finally feel better about formatting my disk UFS rather than HFS+. Now if they would just improve the performance...
That's a finder lock-up, not a kernel panic.
Thanks for the info. I'm getting fink again as we speak!
I was able to cause a panic in 10.1.x by simply moving all files out of the root of an SMB share on a foreign host from the Terminal. I was able to duplicate at will, and did submit to Apple at one time.
No problem copying and removing the files from the terminal (using the same filespecs). Only the "mv" command would do it.
I have no idea of this was fixed in a later release of 10.1 or 10.2.
-- clvrmnky
I reported this bug to Apple quite a while ago and was informed that this bug was already known to them.
>/sw/bin/mv: cannot overwrite directory `../mydir'
You are probably using gnu fileutils (/sw/bin/... are programs installed by Fink).
Crash Different(TM)
i just tried in 10.1.5... nothing. i think the second mydir that was created just disappeared. someone should tell apple though.
I mod down pyramid schemes in sigs.
...stick my head up my ass and shake it.
Doc: Don't do that.
Mike Dumas.
I was able to cause a great kernel panic with 10.1, and reproduce it all the time. I'm not sure if it still works, but if one took Netscape 4.7 in classic and went to http://localhost/, assuming an apache web server were running, there was an instant kernel panic.
I sent an email to Apple awhile back, so it may be fixed; however, I have not tested this bug recently, as I cannot stand opening Classic anymore T.t
threaten a Congressional investigation into his mens' use of military-issued credit cards.
oh, wait, that's a Colonel....
Back in the days of 10.1.x, a bug developed whereby connecting to a network server process running outside Classic from a client running inside Classic on the same Mac would cause an immediate kernel panic. This caused trouble for people testing Web pages with Classic browsers, people using Dreamweaver under Classic to work with stuff served by Apache, and also for anyone trying to use OpenSSH tunneling with a Classic news or mail client (which had worked fine up until about 10.1.3 or so). It annoyed me because this last was actually something I had been doing a lot.
Eventually they patched it so it no longer crashed, but still didn't work. It did create an incentive for me to move away from Classic Eudora.
I just tested this over an FTP connection to a Mac OS X 10.2.2 box using Transmit (a Mac FTP client) from a MacOS 9 machine.
I was ABLE to panic the kernel remotely.
This has just taken a violent swing into serious, as ANY USER WITH FTP ACCESS can now drop your Mac OS X machine. Apple needs to patch this, and quickly. I don't care if the security update is 15k to replace
Any idea what eactly could be wrong with either the kernel or mv that would cause such a problem? Branching to the wrong case (i.e. branching to the "same name" case as opposed to the "can't replace a directory with an item it contains" case)?
Is this a job for the Darwin team since it involves a BSD component?
CAn'T CompreHend SARcaSm?
A friend of mine has tested build 6G19, and the KP seems to be fixed.
Don't you find it the least bit funny that you're trying to help him to cause a kernel panic on his computer?
Hey, this is OS X we're talking about here. Unlike in the Windows world, you really gotta put some effort into making the system crash.
It's damn funny what a novelty it is to us OS X users to see the system crash....I did it.....just for fun.
-ZTolerance does not tolerate intolerance, or hypocrisy.
I tryed it but did not have a panic. Using 10.2.2
As some of you may know, you can use the equivalent of Terminal.app without logging into OS X by logging in as >console it will take you to a BSD style login prompt where you have to login and can still render the same results featured in this article.
"True programmers are artists and someday we'll respect programming as self expression and personal effort." - fateswarm