Live data from Hacker News

Rivian software update bricks infotainment system, fix not obvious

electrek.co

281–290 of 386 posts

Re: Rivian software update bricks infotainment system, fix not obvious

#281

I built a whole remote software update mechanism for a control binary that ran on 25k+ servers across multiple data centers. Rest assured that after the first time I messed it up (which required ssh into each box individually), I wrote a lot of unit and integration tests to make sure that it never failed to deploy again. One of the integration tests ensured that the app started up and could always go through the inte…

Having worked on 25K machines, I can assure you that it never deployed to every single machine and failed to do so in interesting ways all the time.

As a frontend web developer I'm constantly deploying software to many thousands of machines. And you know what? It's pretty damn simple.

Re: Rivian software update bricks infotainment system, fix not obvious

#282

I used to work for a company that built satellite receivers that would be installed in all sorts of weird remote environments in order to pull radio or tv from satellite and rebroadcast locally. If we pushed a broken update it might mean someone from the radio company would have to make a trip to go pull the device and send it to us physically. Our upgrader did not run as root, but one time we had to move a file as r…

The person who built and released this might not have ever worked for your company, which might be why no one remembers building or releasing it.

I admire your restraint in writing this comment. :)

Re: Rivian software update bricks infotainment system, fix not obvious

#283

I built a whole remote software update mechanism for a control binary that ran on 25k+ servers across multiple data centers. Rest assured that after the first time I messed it up (which required ssh into each box individually), I wrote a lot of unit and integration tests to make sure that it never failed to deploy again. One of the integration tests ensured that the app started up and could always go through the inte…

> This ran in CI and would fail the build if it didn't pass. I don't mean to be pedantic, but since we're talking about what should happen instead, this is insufficient. It works until the day you realize you made some kind of manual change to your CI infra, or that CI has some non-standard configuration that makes it work for you but not some significant fraction of the fleet. People should do what you described in…

> It works until the day you realize you made some kind of manual change to your CI infra, or that CI has some non-standard configuration that makes it work for you but not some significant fraction of the fleet.

Nah, my CI process was solid. This was proven in the field over the course of years.

> I don't mean to be pedantic... you need phased rollout

You don't need to be pedantic, but better to ask the question rather than assume that was all that I did. =) You have to realize that what I built, worked flawlessly. It wasn't easy either, took a lot of trial and error.

I did have a CIDR based rollout. I could specify down to the individual box that it would run a specific version. Or I could write "latest" to always keep certain boxes running on the latest build. This was another part of my testing, but ended up not being fully necessary because I had enough automated testing in CI that "latest" always worked.

> but it contains an update to the updater which bricks the updater?

This happened, so I wrote a lot of test code to make sure that would never happen again. My CI would catch that since I was E2E testing that it could actually run the upgrade process.

Once I implemented all of this, I never had a single failure and would routinely, several times a day, deploy to the entire cluster, over the course of a couple years.

It was all eventually consistent as I could also control the "check for update" frequency as well.

Re: Rivian software update bricks infotainment system, fix not obvious

#284

I built a whole remote software update mechanism for a control binary that ran on 25k+ servers across multiple data centers. Rest assured that after the first time I messed it up (which required ssh into each box individually), I wrote a lot of unit and integration tests to make sure that it never failed to deploy again. One of the integration tests ensured that the app started up and could always go through the inte…

Having worked on 25K machines, I can assure you that it never deployed to every single machine and failed to do so in interesting ways all the time.

It always deployed. It was eventually consistent. Any failure would automatically be resolved after a period of time.

Re: Rivian software update bricks infotainment system, fix not obvious

#285

I used to work for a company that built satellite receivers that would be installed in all sorts of weird remote environments in order to pull radio or tv from satellite and rebroadcast locally. If we pushed a broken update it might mean someone from the radio company would have to make a trip to go pull the device and send it to us physically. Our upgrader did not run as root, but one time we had to move a file as r…

The person who built and released this might not have ever worked for your company, which might be why no one remembers building or releasing it.

No no, I figured that out afterwards, in a past development iteration someone added it on purpose and then forgot all about it - "oh yeah we needed that to ".

So... worse than subterfuge? That being said it only listened on the local socket, so it's slightly less bad, and I don't want to get into the myriad of correct ways that original problem could have been solved, but lets just say that company doesn't exist anymore.

Re: Rivian software update bricks infotainment system, fix not obvious

#286
post #78

My 2019 car is not connected to the internet. Instead, I use Apple CarPlay for everything. Is there any reason not to do it this way?

My cars are from 2019 and 2001. I don't use CarPlay or any internet features in any of them. Instead, I just use my Android's screen itself for navigation and bluetooth for phone calls and music. Perhaps there are advantages to tighter integration with my car (at least the newer one) but IMO they are outweighed by the risks of things like this, or even just getting a software update that borks a small feature that I…

CarPlay is not an internet feature. It’s basically a screen mirror, and I plug my phone in via USB.

Re: Rivian software update bricks infotainment system, fix not obvious

#287

My 2019 car is not connected to the internet. Instead, I use Apple CarPlay for everything. Is there any reason not to do it this way?

Well for one Rivian (and Tesla) don't support CarPlay or Android Auto.

Sounds more like a reason not to buy Rivian and Tesla to me

Re: Rivian software update bricks infotainment system, fix not obvious

#289
post #276

Earlier quoted context omitted.

Yah, I know from friends at ford and vw that there's still vxworks and qnx, but even there, good grief, a-b with confirmed boot is about as basic as you can get. I confess I've seen incredible sloppiness about when a confirmation is done (too early, including in the initial init stages which is way too soon) and watchdogs (spawn off a process that has a while loop stroking the wd - just absolutely pointless).

I've seen kicking and petting the watchdog, but this is my first time seeing stroking

Sometimes the watchdog needs to have fun too, you know.

Re: Rivian software update bricks infotainment system, fix not obvious

#290

Earlier quoted context omitted.

Having worked on 25K machines, I can assure you that it never deployed to every single machine and failed to do so in interesting ways all the time.

As a frontend web developer I'm constantly deploying software to many thousands of machines. And you know what? It's pretty damn simple.

[flagged]
Post reply on HN