Skip navigation

Category Archives: Well, there’s your problem

These are sad stories about problems that took me a great deal of time to solve (but really shouldn’t have).

I recently moved a RavenDB database from a VM with Windows Server 2012 to a new VM with Windows Server 2016 by way of a dump file because I wanted everything to be fresh. Once the import was complete and the new RavenDB installation tried to index my documents using the old indexes I had constructed, I saw this error pop up in the log dozens of times: Common Language Runtime detected an invalid program.

Luckily, I managed to find that one obscure post in the RavenDB Google Group that pointed me in the direction of the solution, which is to force RavenDB to use the old JIT compiler instead of the new RyuJIT that runs by default with .NET Framework 4.6 installations.

In your RavenDB directory, edit  Raven.Server.exe.config and ensure that <useLegacyJit enabled="1" /> is in the <runtime> section, like so:

I recently began leasing a 2017 Subaru Forester with EyeSight, a snazzy system that adds a number of safety and convenience features by utilizing cameras mounted near the rear view mirror. For these to work properly, Subaru highly recommends keeping the area around and below the rear view mirror free of doodads and gadgets — so no phone holders, radar detectors, toll tags, and so forth. But the instructions provided by the North Texas Transit Association (NTTA) regarding placement of their toll tag say to put the thing right below the rear view mirror for it to be scanned properly. What’s a driver to do?

I couldn’t find a definitive answer online, so I called the NTTA. They said they’ve been getting asked this a lot lately, and that it’s fine to put the toll tag over on the bottom-left of the windshield over by your registration sticker. I put mine just above it. There you go.

Crapital OneTo save you a couple minutes of reading time, here’s the synopsis: if you’re a small business owner on the market for a credit card, don’t get anything from Capital One. If you do, it will become a revolving account on your personal credit report — and you do not want that to happen.

As for the details… one of the cool things about having a business is that you can get it its own credit cards and stuff. These will not show up as revolving accounts on your personal credit report unless you go delinquent or something. I got one of my companies an American Express and it behaved properly (never showing up on my personal credit report), so I expected that when I got us a Capital One Spark Visa, it’d be business as usual.

It was not. Capital One reported the Spark Visa to the credit bureaus on my personal credit report, and my score promptly took a beating. I disputed the report with one of the bureaus, but they said it was accurate according to Capital One. I called Capital One and they confirmed that it is their company policy to put all cards — even those specifically for businesses — on personal credit reports. This is completely unacceptable, and I’ve already begun the process of moving to a new business Visa with another bank.

I never cared much for Capital One, but I held my tongue after getting that Spark because I thought it’d be weird to disparage a company that handled so much of my company’s money. But now that I’m leaving them, I’ll say what I damn well please: Crapital One sucks! And you can take that to the bank (I’m sorry, I totally had to put that in there)!

AMD CPUs run really, really hot.

AMD CPUs run really, really hot.

I recently upgraded the CPU on the media center PC in our living room so we could do a little gaming when we’re tired of watching shows and stuff. The upgrade went well except for the stock cooler that came with the CPU. For the amount of sound it made, we may as well have surrounded the case with box fans and taken a leaf blower to it as well for good measure. That thing was LOUD.

I’ve never really done the aftermarket cooler thing because it’s a pain in the ass. Ripping the machine open and performing brain surgery is enough without also having to screw around with thermal paste and most likely take the whole motherboard out just for a fancy cooler. Stock’s fine, thanks. Except now it wasn’t, and I had to do something.

I ordered a Cooler Master Hyper 212 EVO because it has lots of really good reviews and seems like a safe bet. When it got here… man, I knew it was going to be tall, but it was really tall. As in I wasn’t sure I’d be able to close the case with it in there. I soldiered on though, hoping that once it was secured onto the chip, everything would be tight but alright. So out came the motherboard, off came the old thermal paste, and so forth… and yeah, no, I couldn’t close the case.

Hacksaw

Hooo!

What now? Well, if you look at the heatsink, you can see 8 little copper nubs sticking out the top of it. These nubs were the only thing preventing me from closing the case — if they weren’t there, everything would be great. And so, convinced I was awesome enough to do this kind of thing after four years of generally successful home improvement projects, I took a hacksaw to the little bastards and extracted them.

A half hour or so later, I gave myself a pat myself on the back as I slid the side cover back onto the case. Score! I’m so good. After a few minutes of uptime, however, the machine shut itself off without warning. It had overheated. Hmm, that’s odd. Wonder what I did wrong?

I spent until 5:00 AM that night (morning?) trying to fix the problem. I probably cleaned and reapplied the thermal paste like six times, thinking each time I must have done a bad job that last time and that this time would be it. Nope. How about the BIOS? Maybe the fan speed is too low? Nope. I eventually concluded that I was doing everything quite correctly and that it had to be something else.

Could it be those copper tubes? Naw! They’re just pieces of copper bent in such a way that they help conduct the heat! Right? …right?

GeniusIt was, of course, the copper tubes. Butchering them eliminated a key component of the cooler according to this article I finally found. So that kind of sucked.

In the end, that cooler went in the trash and I ended up using a Logisys MC2002GX instead. It was just short enough to fit, it works, and it’s nice and quiet. But yeah, don’t mess with those damn copper tubes.

Down the Rabbit HoleSome of my time is spent supporting an aging home-grown CRM. It’s not particularly user-friendly and sometimes the error messages it produces are rather cryptic, but it gets the job done.

Today, one of its users told me he couldn’t pull up a certain ticket, so I tried to pull up the same ticket and successfully reproduced the error. Looked like a pretty run-of-the-mill bug so far, though I had to wonder how something that’s been working fine for months (and has had no recent code or database changes) suddenly stopped working.

About an hour later, I was pretty far down the rabbit hole trying to get as much of the ticket page to load as I could. I eventually narrowed the problem down to the query that selects the tickets, but noticed something strange: when I selected all tickets, it worked. When I tried to select only the ticket ID the user wanted… no rows. Upon closer inspection, I realized the user had given me a bogus ticket ID, one much larger than the largest ticket ID in the system so far.

I know that was 30 seconds you can’t get back, but hey — now there’s no way you’ll ever spend an hour of your own life on such a thing.