The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Thursday, February 13, 2020

Notes on an overheard phone conversation with a computer about a product that was just delivered

“We can send you updates and confirmations about our product and future products to your email address. Would you like to do this?”

“No.”

“Okay then. We can send you a follow-up email about our product you just received.”

“What? I just said ‘no’ to your previous question about email!”

“Great! Expect to see a follow-up email real soon now.”

“No! No! N—”

“Do you have any more questions?”

“—o!”

“Okay then. Thank you for using our product. Good-bye.'

“Wait!”

Wednesday, February 12, 2020

Notes on an overheard conversation upon mail call

“Here you go. I've removed the real estate guide because I know you aren't interested.”

“But … it says ‘Real Estate Guide.’”

“No, it says the real estate guide is inside!

“… Oh, it does.”

“I swear, I don't know how you dress yourself.”

Tuesday, February 04, 2020

It might be worth the trouble if there were another zero in the number

So it turns out my Dad had two bank accounts—the one in California, and another one in Nevada. There were no issues getting the Nevada bank to cut a check for the whopping $100 remaining in the account (I'm rich! I'm rich I tell ya!), unlike the California bank. There was filling out the affidavit and the shenannigans required to get it notarized (I did not realize there were multiple levels of notarization—go figure) and sending it back along with the death certificate.

The California bank then sent the check via certified mail—we missed the initial delivery. Bunny can deal with the bureaucracy better than I, so when she went to the post office to pick it up, they couldn't find it. That was yesterday.

Today the post office called her to say they found the letter, so after work we went to pick it up and find out if all this trouble was worth the $45.71. We're in the car and I open up the letter.

“Wait! They didn't send the check! There's no check here!” I said, looking through a thick packet of papers.

“It's right here,” said Bunny, holding up a check. “How could you have missed it? It was right here in the envelope.”

“Oh cool!”

“But … it's made out to your Dad,” she said. “And they included a page from a loan made to somebody else …”

Passersby were amused to see me honking the car horn with my head.

Wednesday, January 29, 2020

“This is an invalid protocol because I can't open a file”

TS2 comes to my desk at the Ft. Lauderdale Office of the Corporation. “I'm running a load test of ‘Project: Cleese’ and it's not functioning. If I run a normal test, it runs fine.”

“Hmm … let me take a look.” I head back to TS2's desk. Sure enough, “Project: Cleese” is crashing under load. Well, not a hard crash—it is written in Lua and what's crashing are individual coroutines due to an uncaught error (the Lua equivalent of exceptions) where the only information being reported is “invalid protocol.” I have TS2 send me copies of the data files and script he's using to load test, and I'm able to reproduce the issue. It's an odd problem, because it appears to be crashing on this line of code:

local sock,err = net.socket(addr.family,'tcp')

I dive in, and isolate the issue to this bit of C code that's part of the net.socket() function:

if (getprotobyname_r(proto,&result,tmp,sizeof(tmp),&presult) != 0)
  return luaL_error(L,"invalid protocol");

Odd, “tcp” is a valid protocol, so I shouldn't be getting ENOENT, and the buffer used to store data is large enough (because normally it works fine) so I don't think I'm getting ERANGE. And that covers the errors that getprotobyname_r() is documented to return. I add some logging to see what error I'm actually getting.

I'm getting “Too many open files” and it suddenly all makes sense.

getprotobyname_r() is using some data file (probably /etc/protocols) to translate “tcp” to the actual protocol value but it can't open the file because the program is out of available file descriptors. “Project: Cleese” is out of file descriptors because each network connection counts as a file descriptor, and the test systems (Linux in this case) only allow 1,024 descriptors per process. It's easy enough to up that to some higher value (I did 65,536) and sure enough, the “Too many open files” error starts showing up where I expect it to.

On the plus side, it's not my code. On the minus side, you have to love those leaky abstractions (and perhaps relying upon documentation a bit too much).

Tuesday, January 28, 2020

I feel the earth move under my feet

I'm sitting at my desk at the Ft. Lauderdate Office of the Corporation when I get this weird feeling the building is moving. How, the Tri-Rail runs along side the Ft. Lauderdale Office of the Corporation, and the rail itself is shared with freight trains. When a freight train goes by, you can feel it in the building. But this movement doesn't feel the same. First, I can't hear the train (which I can from my desk since it's on that side of the building). Second, it's a longer, slower, swaying motion rather than than the short back-and-forth type movement typical of freight trains blowing past the building.

“Hey, TS1,” I said, “do you feel the building moving?”

“No.”

“Oh.” So I'm left with the thought that 1) I'm going crazy or 2) I'm experiencing some major medical event. The sensation subsides after a minute or so, I'm not on the floor writhing in pain or unconscious, so I stop thinking about it and go back to work.

I'm at home when Bunny says, “Did you hear about the 7.7 earthquake between Cuba and Jamaca today?”

“Really? When did it happen?”

“Um … looks like this afternoon. It was felt as far north as Miami.”

“No, I didn't hear about it, but I think I felt it.”

It's one thing to worry about earthquakes in Brevard, North Carolina but now I have to worry about them here? La-la-la-la-la-la-la-la-la-la!

“Sean, why are you running around with your fingers in your ears?”

Friday, January 17, 2020

Mysterious packets in the night

For about a decade, I've been monitoring syslog traffic in real time. It makes for an interesting background screen. For instance, I've noticed over the years Mac OS-X getting more and more paranoid about running executables. that one UPS needs a new battery, and just how many DNS requests Firefox makes. Just stuff I notice out of the corner of my eye.

So it was rather alarming when I just saw the following pop out:

iTunes  tcp_connection_destination_perform_socket_connect 140 connectx to 2600:1403:b:19a::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 140 connectx to 2600:1403:b:1a8::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 140 connectx to 2600:1403:b:1ab::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 140 connectx to 2600:1403:b:1ac::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 140 connectx to 2600:1403:b:185::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 141 connectx to 2600:1403:b:1ac::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 141 connectx to 2600:1403:b:185::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 141 connectx to 2600:1403:b:19a::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 141 connectx to 2600:1403:b:1a8::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 141 connectx to 2600:1403:b:1ab::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 143 connectx to 2600:1403:b:188::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 143 connectx to 2600:1403:b:18c::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 143 connectx to 2600:1403:b:18d::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 143 connectx to 2600:1403:b:1a1::2a1.443@0 failed: [65] No route to host 
iTunes  tcp_connection_destination_perform_socket_connect 143 connectx to 2600:1403:b:1ad::2a1.443@0 failed: [65] No route to host 

Now, I have IPv6 enabled on my Mac to play around with the technology, but my main connection out to the Intarwebs is still plain IPv4. So that explains the error. But the question is why is iTunes trying to connect to some machine on the Intarwebs? I have iTunes running, but doing nothing at the moment.

So then I look into that IPv6 address. First, it's assigned to Europe, which is odd, because I'm not in Europe. Second, it seems it belongs to Akamai Technologies. So the bigger question now is, what is iTunes trying to get from Europe? Is my computer trying to snitch on me? Checking for updates? Is iTunes feeling neglected?

I don't know … and that is bothering me.

Tuesday, January 14, 2020

Notes on an Overheard Conversation About a Bank Account

“Hello, this is XXXXX­X of [a bank in California]. How may I help you?”

“Yes, I'm calling about the closing out of an account. I received the affidavit form and I've filled it out except for one line—I don't know how much is in the account.”

“I'm sorry, but I can neither confirm nor deny he has an account with us.”

“What?”

“I can neither confirm nor deny he has an account with us.”

You sent me the affidavit!”

“Yes, but I can neither confirm nor deny his account with us.”

“I have his account number in front of me!”

“I can neither—oh … um … please hold … <mumble mumble mumble>”

“I'm sorry, I didn't hear that.”

“Sorry, I can't speak any louder than this—what is the account number?”

XXXXX­XXXX

“Okay, the amount left in the account is $45.71”

“Seriously?”

“Seriously.”

“You're only telling me because it's a rounding error to you guys, right?”

“Shhhhhhhhh!”

“Okay! Anyway, thank you.”

“Anything else I can do for you?”

“Yes, your direct phone number in your email? When I called it, I got a health clinic in Encino.”

“Seriously?”

“Seriously.”

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2020 by Sean Conner. All Rights Reserved.