500 miles
This commit is contained in:
parent
b157306d1b
commit
7be5725a83
@ -8,6 +8,7 @@ link dump,/linklink
|
||||
timezone,/oneshot/timezone
|
||||
coding bibble,/oneshot/codingbible
|
||||
footgun,/oneshot/footgun
|
||||
500 miles,/oneshot/500miles
|
||||
guestbook,http://users3.smartgb.com/g/g.php?a=s&i=g36-36498-b6
|
||||
direct message me,/personal/qa
|
||||
thanks page,/thanks
|
||||
|
|
147
oneshot/500miles.md
Normal file
147
oneshot/500miles.md
Normal file
@ -0,0 +1,147 @@
|
||||
---
|
||||
title: 500 miles
|
||||
---
|
||||
## Sourced from <https://web.mit.edu/jemorris/humor/500-miles>
|
||||
|
||||
From: Trey Harris <trey@sage.org>
|
||||
|
||||
Here's a problem that *sounded* impossible... I almost regret posting
|
||||
the story to a wide audience, because it makes a great tale over drinks
|
||||
at a conference. :-) The story is slightly altered in order to protect
|
||||
the guilty, elide over irrelevant and boring details, and generally make
|
||||
the whole thing more entertaining.
|
||||
|
||||
I was working in a job running the campus email system some years ago
|
||||
when I got a call from the chairman of the statistics department.
|
||||
|
||||
"We're having a problem sending email out of the department."
|
||||
|
||||
"What's the problem?" I asked.
|
||||
|
||||
"We can't send mail more than 500 miles," the chairman explained.
|
||||
|
||||
I choked on my latte. "Come again?"
|
||||
|
||||
"We can't send mail farther than 500 miles from here," he repeated. "A
|
||||
little bit more, actually. Call it 520 miles. But no farther."
|
||||
|
||||
"Um... Email really doesn't work that way, generally," I said, trying
|
||||
to keep panic out of my voice. One doesn't display panic when speaking
|
||||
to a department chairman, even of a relatively impoverished department
|
||||
like statistics. "What makes you think you can't send mail more than
|
||||
500 miles?"
|
||||
|
||||
"It's not what I *think*," the chairman replied testily. "You see, when
|
||||
we first noticed this happening, a few days ago--"
|
||||
|
||||
"You waited a few DAYS?" I interrupted, a tremor tinging my voice. "And
|
||||
you couldn't send email this whole time?"
|
||||
|
||||
"We could send email. Just not more than--"
|
||||
|
||||
"--500 miles, yes," I finished for him, "I got that. But why didn't
|
||||
you call earlier?"
|
||||
|
||||
"Well, we hadn't collected enough data to be sure of what was going on
|
||||
until just now." Right. This is the chairman of *statistics*. "Anyway,
|
||||
I asked one of the geostatisticians to look into it--"
|
||||
|
||||
"Geostatisticians..."
|
||||
|
||||
"--yes, and she's produced a map showing the radius within which we can
|
||||
send email to be slightly more than 500 miles. There are a number of
|
||||
destinations within that radius that we can't reach, either, or reach
|
||||
sporadically, but we can never email farther than this radius."
|
||||
|
||||
"I see," I said, and put my head in my hands. "When did this start?
|
||||
A few days ago, you said, but did anything change in your systems at
|
||||
that time?"
|
||||
|
||||
"Well, the consultant came in and patched our server and rebooted it.
|
||||
But I called him, and he said he didn't touch the mail system."
|
||||
|
||||
"Okay, let me take a look, and I'll call you back," I said, scarcely
|
||||
believing that I was playing along. It wasn't April Fool's Day. I
|
||||
tried to remember if someone owed me a practical joke.
|
||||
|
||||
I logged into their department's server, and sent a few test mails.
|
||||
This was in the Research Triangle of North Carolina, and a test mail to
|
||||
my own account was delivered without a hitch. Ditto for one sent to
|
||||
Richmond, and Atlanta, and Washington. Another to Princeton (400 miles)
|
||||
worked.
|
||||
|
||||
But then I tried to send an email to Memphis (600 miles). It failed.
|
||||
Boston, failed. Detroit, failed. I got out my address book and started
|
||||
trying to narrow this down. New York (420 miles) worked, but Providence
|
||||
(580 miles) failed.
|
||||
|
||||
I was beginning to wonder if I had lost my sanity. I tried emailing a
|
||||
friend who lived in North Carolina, but whose ISP was in Seattle.
|
||||
Thankfully, it failed. If the problem had had to do with the geography
|
||||
of the human recipient and not his mail server, I think I would have
|
||||
broken down in tears.
|
||||
|
||||
Having established that -- unbelievably -- the problem as reported was
|
||||
true, and repeatable, I took a look at the sendmail.cf file. It looked
|
||||
fairly normal. In fact, it looked familiar.
|
||||
|
||||
I diffed it against the sendmail.cf in my home directory. It hadn't been
|
||||
altered -- it was a sendmail.cf I had written. And I was fairly certain
|
||||
I hadn't enabled the "FAIL_MAIL_OVER_500_MILES" option. At a loss, I
|
||||
telnetted into the SMTP port. The server happily responded with a SunOS
|
||||
sendmail banner.
|
||||
|
||||
Wait a minute... a SunOS sendmail banner? At the time, Sun was still
|
||||
shipping Sendmail 5 with its operating system, even though Sendmail 8 was
|
||||
fairly mature. Being a good system administrator, I had standardized on
|
||||
Sendmail 8. And also being a good system administrator, I had written a
|
||||
sendmail.cf that used the nice long self-documenting option and variable
|
||||
names available in Sendmail 8 rather than the cryptic punctuation-mark
|
||||
codes that had been used in Sendmail 5.
|
||||
|
||||
The pieces fell into place, all at once, and I again choked on the dregs
|
||||
of my now-cold latte. When the consultant had "patched the server," he
|
||||
had apparently upgraded the version of SunOS, and in so doing
|
||||
*downgraded* Sendmail. The upgrade helpfully left the sendmail.cf
|
||||
alone, even though it was now the wrong version.
|
||||
|
||||
It so happens that Sendmail 5 -- at least, the version that Sun shipped,
|
||||
which had some tweaks -- could deal with the Sendmail 8 sendmail.cf, as
|
||||
most of the rules had at that point remained unaltered. But the new
|
||||
long configuration options -- those it saw as junk, and skipped. And
|
||||
the sendmail binary had no defaults compiled in for most of these, so,
|
||||
finding no suitable settings in the sendmail.cf file, they were set to
|
||||
zero.
|
||||
|
||||
One of the settings that was set to zero was the timeout to connect to
|
||||
the remote SMTP server. Some experimentation established that on this
|
||||
particular machine with its typical load, a zero timeout would abort a
|
||||
connect call in slightly over three milliseconds.
|
||||
|
||||
An odd feature of our campus network at the time was that it was 100%
|
||||
switched. An outgoing packet wouldn't incur a router delay until hitting
|
||||
the POP and reaching a router on the far side. So time to connect to a
|
||||
lightly-loaded remote host on a nearby network would actually largely be
|
||||
governed by the speed of light distance to the destination rather than by
|
||||
incidental router delays.
|
||||
|
||||
Feeling slightly giddy, I typed into my shell:
|
||||
|
||||
$ units
|
||||
1311 units, 63 prefixes
|
||||
|
||||
You have: 3 millilightseconds
|
||||
You want: miles
|
||||
* 558.84719
|
||||
/ 0.0017893979
|
||||
|
||||
"500 miles, or a little bit more."
|
||||
|
||||
Trey Harris
|
||||
--
|
||||
I'm looking for work. If you need a SAGE Level IV with 10 years Perl,
|
||||
tool development, training, and architecture experience, please email
|
||||
me at trey@sage.org. I'm willing to relocate for the right opportunity.
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user