You Bitch!
25th of April, 2024

About

Rube

An Advanced and Magical Blogger at an Unbelievable Price!

Latest Comments

Sturm

Drang

Broodlings

G'scheits - German Blogging

Archives

2003
Mar
2003
Apr May Aug Sep Oct Nov Dec
2004
Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec
2005
Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec
2006
Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec
2007
Jan Feb Mar Apr May Jul Aug Sep Oct Nov Dec
2008
Jan Feb Mar Apr May Jun
Jul Sep Oct Nov Dec
2009
Jan Feb Apr May Jul
2010
Jan Feb Mar Apr Jun
Sep Nov
2011
Jan Oct
2012
Feb Jul Sep
2013
Jan Apr
2014
Mar
2015
Jun
Nov Dec
2016
Jul
2021
Jun

2023
Jun

2024
Jan

Occam and the Hard-Mount Conundrum

Computers have been around for a while, now. The first digital computers that did useful work were used by the British during World War II to crack the Germans’ Enigma cryptographic scheme, with the help of literary greats Alan Turing and Kate Winslett. Computer networks came about not long after. In fact, the network technology that most people use today, Ethernet, was developed back during the Nixon administration by Xerox. But that’s really more of a hardware spec, invisible to most of us that use it, and used only in the most vaguely analogous sense by the Internet and wireless connections that we find ourselves using more and more.

What runs over those networks, well, that’s the stuff that really concerns us. We wouldn’t care if our SMB, HTTP, or NFS protocols were running over a length of twine connecting a couple of dead beavers, just as long as they kept the links up and the bits moving. But for some reason, these protocols, like unto the network itself conceived in the dark, smoke-filled chambers of engineering history, are still less than adequate in real world situations. I’ll give you an example: There’s not a computer or operating system built today that gracefully handles an unexpectedly disconnected network volume.

I’ll grant, for the sake of argument, that I’m on the only moron in the world who would forget to dismount a network drive before clapping his laptop shut and carrying it out of the office. But you would think, in the 30 or more years we’ve been using networks to share our data, that exactly this scenario might have come up at some point in a worst-case-scenario brainstorming session by one of the major vendors. But I guess the very idea such a thing could happen was judged preposterous, and relegated to the realm of science fiction, freeing the engineering team to work on more critical issues like the Desktop Cleanup Wizard.

So maybe the story I’m about to tell could land me in the rubber room, but I’ll chance it, as the Truth Wants to Be Free. As you may have already inferred, in my hurry today, I forgot to dismount a shared network volume before packing my laptop and heading out of the office . Upon opening my laptop once more, I was greeted by the Symbol of Waiting, which refused to go away. All the while, in the corner of my friendly graphical user interface, said network volume’s icon was displayed, indicating a continuing, vigorous mounting. Obviously, the Symbol of Waiting was my computer’s way of telling me that, while it seemed unlikely that this drive could be mounted without access to its network or, indeed, any network whatsoever, it was still experiencing a moment of indecision. It was telling me that it was considering the two conflicting possibilities of a) the network connection being gone, and therefore all processes using it should be informed of this fact, or b) the server having followed me to the café I’m sitting in, installed a network cabling plant, snuggled itself under my table, and then connected itself to my laptop, and was just in the processing of booting itself back up in order to serve that dreadfully missing network share; a possibility which, I might add, the computer was willing to indulge ad infinitum. Apparently, Occam’s Razor is a difficult principle to express in Objective-C.

All of this culminated in a computer caught in a permanent moment of indecision. I like to believe that every time you boot your computer, the cycle of its life is started anew, with the hopes and dreams of a better life this time around; the corollary of course being that you’ve had to viciously snuff out the life of its previous incarnation. Thus as I was administering the Mac equivalent of a three-finger salute (Ctrl-Cmd-Power) to this shivering, broken husk of a computer a moment ago, I felt no regret. It was better to end it there, to ease its suffering. I felt pity however, in that it probably didn’t understand what it was going through, what the source of its confusion and suffering was.

But I also couldn’t help think it could have been prevented. Perhaps the status check of a network mount could be moved into a thread, instead of being embedded in the main event loop of the user interface, blocking all input? Perhaps an operating system could check to see if there are any open files on a mounted network drive before betting its entire existence upon the fact that it may, one day, return? Is the termination of a single process blocking on a stat call really worth the life of the entire ecosystem? These are questions for the politicians, apparently, and not for the medics in the field.

In a technical interview recently, a man asked me if I knew the point of “hard-mounting” network shares, particularly those of the NFS variety. I gave the textbook answer he expected, that it was preferable for applications to block and fail in the case of a missing disk than to go on believing that it still existed, without the knowledge that their write operations had failed, and their data were most likely corrupted. It’s easy to be so cold and calculating when you haven’t seen the suffering involved in such a catastrophic break. It’s easy to extoll the virtues of data integrity über alles. But from the perspective of the victim, ignorance is, unfortunately, bliss.

UPDATE: This was, oddly, the Whine of the Week on Macbreak Weekly.


Technorati Tags: , ,

Comments

Michele

Sounds like you had a great weekend!! L

Leave a Comment

    • This field is required.
    • This field is required.
    • This field is required.
  • Comments use Markdown syntax. HTML may be stripped. Preview is your friend.
  • Akismet