Slashdot Mirror


Fedora Introduces Offline Updates

itwbennett writes "Thanks to a new feature approved this week by the Fedora Engineering Steering Committee, you won't hear Fedora 18 users bragging about systems that have been running continuously for months on end. 'Fedora's new Offline System Update feature will change the current system to something that is more Windows- and OS X-like: while many updates can still be made on the fly, certain package updates will require the system to be restarted so the patches can be applied in a special mode, according to the Fedora wiki page on the feature,' writes blogger Brian Proffitt."

31 of 287 comments (clear)

  1. um... by lister+king+of+smeg · · Score: 4, Insightful

    why is this a good thing exactly?

    --
    ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
    1. Re:um... by moderatorrater · · Score: 3, Insightful

      You need to read the summary. When they say offline, they aren't referring to the internet, they're referring to your OS, ie you have to restart to apply the update. Just like Windows.

    2. Re:um... by smash · · Score: 4, Interesting

      I *suspect* it is perhaps due to securing system files in a manner so they can't be modified when running multi-user (thus immune to exploit by user code) - kinda like freebsd securelevels perhaps. At least, thats the only reason I can see for it.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    3. Re:um... by ILongForDarkness · · Score: 3, Interesting

      Yeah every other day is patch Tuesday.

  2. Wrong area of focus. by elysiuan · · Score: 5, Insightful

    "Installing updates while the session is running causes havoc with some apps like Firefox that have file resources that have not been locked (just try updating xulrunner when Firefox or Thunderbird is open)," blogged Fedora developer Richard Hughes.

    Seems to me adding features to the package system that can determine and possibly correct such things (ie, closing Firefox or Thunderbird) would be the better way to go rather than force me to have to reboot. Hopefully it will retain the capability to install new software while updates are pending. I'd hate to have to reboot to install some tiny dependency. (A restart is required before you can install libfoo. Ugh!)

    1. Re:Wrong area of focus. by tuffy · · Score: 4, Insightful

      Seems to me adding features to the package system that can determine and possibly correct such things (ie, closing Firefox or Thunderbird) would be the better way to go rather than force me to have to reboot.

      This is exactly right. Look at the Flash updater on other systems. If a browser is running, Flash closes it down during an update. Fedora could easily detect Firefox is running and close that down during an update. If X11 needs an update, bounce the user to the console until it completes. And so forth. A whole boot mode just for installing "extra important" updates feels like the wrong approach to a more general problem.

      --

      Ita erat quando hic adveni.

    2. Re:Wrong area of focus. by Anonymous Coward · · Score: 3, Interesting

      The correct solution seems to be how Gentoo does it: Install BOTH versions of the library. Until nothing is accessing the old version anymore, it won't get uninstalled. So in this case, until FireFox is restarted it will keep having the old version of XULRunner around all the live-long day.

      Or is using library versioning really such a foreign concept to newer Linux developers? Hell, my Gentoo box right now has four different versions of Python installed: 2.4, 2.6, 2.7, and 3.2, so I can do cross-version development against latest-2, latest-3, and CentOS 5.x and CentOS 6.x equivalent versions.

    3. Re:Wrong area of focus. by bill_mcgonigle · · Score: 3, Insightful

      "Installing updates while the session is running causes havoc with some apps like Firefox that have file resources that have not been locked (just try updating xulrunner when Firefox or Thunderbird is open)," blogged Fedora developer Richard Hughes.

      When Ubuntu noticed this same problem, they included a Firefox extension to tell the user to restart. Fedora tries to re-plumb the OS and re-invent the behavior Windows is moving away from instead?

      Fortuantely, it looks like this is constrained to the GNOME environment at the moment, so most of us may be safe - for now. I'll have to surf over to the KDE list to see if there's some righteous indignation going on there.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    4. Re:Wrong area of focus. by serviscope_minor · · Score: 4, Interesting

      If X11 needs an update, bounce the user to the console until it completes.

      Or, update X, and the user gets the new version when X is next restarted. This is what Arch does: the old files (binaries) are deleted, but remain on disk until the program exits. I've had uptimes of many months and not had trouble with X being updated.

      --
      SJW n. One who posts facts.
    5. Re:Wrong area of focus. by arth1 · · Score: 4, Interesting

      It's not 1998 anymore, every OS is stable and can boot quickly. Nobody cares about your "uptime".

      Business users sure care about uptime.
      And a modern system can easily take 10 minutes or more sorting out and testing the hardware and RAIDs before it even begins to boot.

      Continue living in your iPad world, but know that you can access diddley squat on your iPad unless the servers at the other end work reliably.

    6. Re:Wrong area of focus. by arth1 · · Score: 3, Interesting

      And we just had a bunch of development LAMP services go haywire because Python updates changed the on-disk libraries in a way that confused our mod_wsgi Python web apps. And the packages apparently don't track dependencies like that, so we had to restart HTTPD manually.

      Strange.
      My server, when it upgrades apache or one of its dependencies, calls "httpd -k graceful", so unused processes restart, and used processes restart as soon as they become unused.

  3. The stupid! It hurts! by jmorris42 · · Score: 4, Insightful

    Good grief, the Stupid coming from Fedora and the GNOMEs is making my head hurt. We managed to update running systems with package management for how long? Leave it to the GNOMEs to fudge things up.... or just have Mac/Windows envy and convince themselves that this isn't a bug, it is a feature!

    --
    Democrat delenda est
  4. Re:Fedora, whatever... wait, kill Debian and Gento by jmorris42 · · Score: 4, Interesting

    > Are Gentoo/Debian really that intertwined with whatever Fedora maintainers decide?

    Not yet. But if GNOME and/or Firefox start requiring the feature other distros have a choice between two bad options. This new Linux only notion that started with systemd is increasingly Fedora only. You can have your distro if you want, if it behaves just like Fedora. One big monolitic blob of alien tech. Want the new udev? It is part of systemd. Want the new GNOME, wait for it to be unusable without udev which requires systemd. And so on.

    --
    Democrat delenda est
  5. per-package filesystems by bill_mcgonigle · · Score: 3, Interesting

    It's too bad btrfs still has such performance problems with common applications (BTDTBTEXT4).

    We really ought to have each package on its own filesystem. When there's an update, snapshot the filesystem, let currently running processes reference the old stuff so they don't crash, but new processes can have the new stuff. When the old version on longer has any references left, it can go away. This might not always make sense, but for a desktop it's a lot better than what we have now.

    Yeah, there's some plumbing work that needs solving (rpm, containers interaction perhaps, VersionKit or whatever) but this idea of rebooting a linux system to get consistent updates is just picking at a scab, and indicative that a real solution is still necessary.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    1. Re:per-package filesystems by bill_mcgonigle · · Score: 3, Interesting

      Btrfs performance is bad due to a lot of seeks. With a SSD and Facebook's Flashcache to cache your rotating clunkers it performs very nicely.

      Don't apologize for bad performance. ZFS has a very similar feature set to BTRFS but it doesn't have all these problems. Maybe BTRFS just isn't ready yet - I wonder if the developers ever feel like they'd wish people stopped rushing it into production.

      Anyway, I use SSD+Flashcache on some servers - it works great. But that shouldn't be the minimum system requirement for a Fedora machine.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  6. Re:The stupid! It hurts! by Swave+An+deBwoner · · Score: 3, Informative

    It's possible to convert to the new unified filesystem without using anaconda, as described here and in the original reference here.

    I can say from personal experience that the method described worked, without evidence of any problem, when I upgraded via yum from F16 to F17 on a hard drive dedicated to Fedora.

  7. I am still trying to understand by Taco+Cowboy · · Score: 5, Insightful

    I actually took time to read the TFA and as many background freaking thing that are related that I can find on this thing, and tell you the truth, I am still trying to understand

    I just do not understand why they want to take the thing offline, in order to run an update

    I mean, what is wrong in keeping the system running while the patches run in the background?

    I can understand it if the thing got a big hit - either from a worm attack or trojan or attacks from the outside - ... in real big emergency where the system can't just take it anymore, maybe, just maybe, take the whole thing offline (or power down the entire system), that makes sense

    But ... just updating the damn thing you gotta take it offline, just like Windoze?

    What's the freaking point?

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:I am still trying to understand by sdnoob · · Score: 4, Insightful

      updates have been working just fine for years.. i don't understand either... sounds more like being too lazy to write proper post-install/update scripts that could trigger or recommend a reboot *when necessary*

      ___

      to those who keep saying..

      "i wish linux were more like windows"

      there ya go. hope you're happy.

      now sod off.

    2. Re:I am still trying to understand by TheRealGrogan · · Score: 3, Interesting

      Well, yes they can get away with patching on the fly for a lot of things, but really the system needs a reboot or it might be unstable. Some things may segfault if libraries get yanked out from underfoot unless they are 100% drop-in, binary compatible. Ever see what happens when a glibc upgrade goes awry? You can't even so much as run "ls". Many times have I had to boot with other media and finish a glibc install by hand. (I soon learned to "make install install_root=/someplace/else" first before running "make install" so I could easily manually install the finished product if the make install failed)

      It's a lot easier when a distributor with packaging utilities is just installing same version with patches back ported, because the entry points and symbols and stuff are all the same. But these "offline updates" that happen in a "special mode" (While few daemons are running) will actually give them more freedom to upgrade things.

    3. Re:I am still trying to understand by Anonymous Coward · · Score: 5, Funny

      I'll wait until I can actually do anything remotely useful in Linux, then I'll be happy.

      Ignorance isn't bliss then?

    4. Re:I am still trying to understand by mysidia · · Score: 5, Insightful

      Well, yes they can get away with patching on the fly for a lot of things, but really the system needs a reboot or it might be unstable. Some things may segfault if libraries get yanked out from underfoot

      Library changes don't effect running programs that have already loaded the libraries. The file on disk is updated; the program won't be linked against new libraries until it is restarted.

      Ever see what happens when a glibc upgrade goes awry? You can't even so much as run "ls". Many times have I had to boot with other media and finish a glibc install by hand.

      This is why you need a package manager. GLIBC is a critical system library.

      Requiring a reboot for a GLIBC update makes it scarier, not safer.

      Hardware doesn't always come back up when you issue 'reboot'; you know, especially when you are doing the update remotely, to systems several hundred miles away, and don't have the luxury of a computer monitor and power switch.

      Sometimes the reboot takes a long time; sometimes you have a component such as a RAID card that hates warm boots, and will fail to come up properly after a reset until you cold boot.

    5. Re:I am still trying to understand by Entrope · · Score: 3, Informative

      I am not sure what distro you're using, but when Firefox gets updated on my Ubuntu machines, it does pop up a dialog box saying that Firefox was updated and needs to restart -- and then it waits for my permission to do so. When a low-level package (kernel, libc, etc.) gets updated, one of the menu bar icons changes to indicate that a restart is needed to complete the updates -- so also I have control over when that happens.

      My system doesn't initialize USB properly on reboot; about every other boot, Grub can't see keyboard input, so I can't select which partition to boot from. I only reboot a few times a year, though, so it would be a gross waste of money to replace components (starting with the motherboard) until the problem got fixed.

  8. Re:linux just gets shittier and shitter by UnknownSoldier · · Score: 3, Funny

    That's one thing OSX does right. It *shows* you if you need to reboot for EACH package. Microsoft _still_ can't get this right after how many years?? "This update may require to reboot." WTF you don't know?? Either it modifies kernel files or it doesn't? Either the resources provided by a .dll are in use or they are not. It's not fucking rocket science.

  9. users will just deprioritize updates by ffflala · · Score: 5, Insightful

    A lot of Windows users have been burned enough to have learned the lesson that updates will not only interrupt your work flow, but risk dumping your unsaved files and/or the tabs that they were in the middle of reading when the update dialog popped up. These users are taught that the responsible thing to do is to keep their systems up to date, but what seems worse: an action that risks dumping all of your unsaved progress, or a "security update" that fixes something that hasn't been a visible problem on their end?

    The workaround to the focus-stealing forced-reboot update is, of course, is simply *not to apply the updates in a timely fashion.* As long as their applications are up and running, and they'd prefer to leave them up and running, why would they?

    With this move FC is just setting itself up for the deprioritization of updates, and this could ultimately lead to worse security and stability.

  10. Re:Again? by fnj · · Score: 3, Informative

    Assuming you don't want to RTFA, how about the the feature page itself.

  11. Re:Would it *kill* you to read the article? by arth1 · · Score: 4, Interesting

    try resizing your /var or / LVM partitions while the system is running, let me know how that goes

    An OS upgrade has no business resizing your /var or root partitions. Period. Heck, you have to be pretty ignorant if you presume they're always local.

    Seriously, what has happened to Fedora lately? First they added gvfs so backup programs broke when root was denied access. Then the went Gnome 3 to cater to the iGeneration. Then they went to systemd, where you can't quickly and easily decide what to run on startup in each runlevel, but have to edit dozens or hundreds of different files. And don't even get me started on mtab. Now this?
    Thank goodness RHEL is supposed to be feature fixed for many years to come. And there, updates don't require a reboot. They actually TEST.

  12. Re:The stupid! It hurts! by jmorris42 · · Score: 3, Interesting

    > redhat (aka fedora) has always had a pathetic package mgmt system.

    No, rpm is a better system than deb. It had signed packages years before Debian and nice all in one file .srpm/.src.rpm files that build from pristine sources plus patches and a .spec. And rpm specifically forbids (although clueless commerical vendors sometimes ignore it) interactive install/update, absolutely required for mass installs or unattended update. I think you are getting confused over the update systems built atop them. There I would agree that Debian's apt family was better than what Red Hat was shipping until fairly recent versions of Yum and even then I would note that Yum is still a P.I.G. And delta rpms absolutely rock if you aren't sitting on the wire with a local mirror.

    > Debian has handled updates and major upgrades flawlessly for decades

    Not exactly. It took far longer to update my Mythtv system from Debian 5.0 to 6.0 following the directions at debian.org than I have ever spent doing a single version upgrade on a RH/Fedora system. Admitted that was my first time doing a version update on Debian on a machine I cared about and was taking pains to avoid pooching the system so that probably accounts for some of the extra time. Along with the fact that it was connected to a TV and the console was not easily visible so I was also taking care to keep it available over the network at all times during the process, something I haven't tried yet on RH. Point is neither one does version upgrades 100% hands off.

    > (years before RH existed)

    Obviously you weren't actually using Linux way backthen or you wouldn't have said something so ignorant. Debian saw first light Aug 1993 and got it's first primitive package system with 0.01 in Jan 1994. It didn't hit 1.x until years later. RH released 1.0 Oct 1994 and got rpm in 1995.

    > Debian just restarts the bits that are likely to break if they were not restarted.

    Like RH up until this idiotic new notion.

    --
    Democrat delenda est
  13. Re:The stupid! It hurts! by arth1 · · Score: 3

    If anything, people should be working towards not having to restart for all updates, even kernel patches. Instead, in the fevor to be more like iOS/OSX and Windows, Linux is regressing.

    It's not Linux that's regressing, it's Fedora.

    RHEL, the non-community release based on Fedora, doesn't ever require restarts. You can, if you like, but they actually test that the updates don't require the new kernel they provide. If the Fedora guys present a community release that's completely unusable for RHEL, I expect that Red Hat will pull support of Fedora, and spend that money on in-house development instead. When Red Hat said they wanted to support visionaries, I'm quite sure they didn't mean the kind of visions you only get through illegal substances, and where you end up wearing underwear on your head.

  14. Everyone calm down by Fnord · · Score: 5, Informative

    Ok, you guys (and TFA) seriously missunderstand this feature, and yes it is a feature. This won't affect any update that doesn't already require a reboot. The difference is that currently if you update a critical system library, everything that depends on that library has the potential to act in an unstable manner until the next reboot occurs. This change says that if you're updating one of those libraries, the update doesn't actually happen at package install time, it gets scheduled to occur on the next reboot. That's it. No more extra reboots, just more stability and updates scheduled for boot time.

    The fact that windows has this feature isn't a problem, its the fact that it requires it on nearly every dll update. The reason for this is that windows locks files when they're in use, so its actually impossible to update the file until the services that use it (which are often core system services) are stopped, ie at boot time. Linux has avoided this by making its filesystem be refcounted. If a file is in use and you delete it, it stays there until the thing using it exits. So library updates just delete the old library and install a new one, while programs using the old library continue to until they're restarted. This works until you have something dynamically loading stuff, or when you have ipc between programs using the different versions of the library, or a million other modern techniques that unix designers didn't think of.

    Anyway, this really is not the travesty everyone here thinks it is.

  15. Re:Would it *kill* you to read the article? by Kjellander · · Score: 3, Insightful

    try resizing your /var or / LVM partitions while the system is running, let me know how that goes. This is because real enterprises have issues your linux server in mom's basement don't.

    I have been doing exactly that for years, and it is only been getting easier. These are the commands you need to use if you have them stacked LVM->DMCRYPT->EXT4

    fdisk
    partprobe
    pvresize
    lvresize
    cryptsetup resize
    resize2fs

    Use the tools in the stacking order that you have used to set up your system.

    So I'm letting you know right now, if you actually know Linux system administration, it has worked fine for years and years. First online resize of a filesystem that was mounted over the network for a lot of users I did back in 2001.

  16. Busting the myth by benjymouse · · Score: 4, Informative

    ToasterMonkey is correct: The reason that you usually do not need to restart the system or applications on Linux is the fact that the potential problems of *not* restarting are simply *ignored* on Linux. It's a head-in-the-sand solution.

    Most of the time this does not present a problem. It is only when some application uses dynamic or delayed loading (and the suddenly loads an updated and binary incompatible library), uses on-demand loaded resources (what Firefox does) or have other types of dependencies between what sits in memory and what sits on disk.

    But there is no secret or magic sauce in Linux which makes this not a pronlem. It is simply assumed that it's not a big problem. But in the case of Firefox this is a regular occurrence. And we all what updating glibc can lead to.

    Java will also delay/demand load classes/libraries. Updating to the next version of a Java application while it is running may very well set the running application up for a crash. If a library/class has not yet been loaded (or has been evicted), the risk is that updating the disk files will lead to an incompatible class being loaded when it is required. While designing with backwards-compatibility in mind is good style, it is not reasonable to expect that the developer foresees all of the problems and complexities this can lead to.

    The same situation exists for binary modules and other types of runtime environments. As software is getting more complicated techniques such as dynamically or delay loaded libraries/resources, object serialization which depend on a specific binary format, pre-compiled scripts etc. all risk running afoul of the head-in-the-sand mentality.

    What is needed is a way for applications or services to register that they depend on certain files. The application may very well be able to survive (or even encourage) updating some of the files during normal operating (think plug-ins). But other files are expected to *not change* beneath the application. This is a reasonable expectation, but only the application (developer) can tell the update process which files it is ok to change on the fly and which files really only should be changed while the application or system is offline.

    At this time there is no way for applications or background processes to tell the Linux system or an installer what it should do prior to and after updating certain files. Individual updates may be written to look for certain processes it considers in-risk - but that is really getting it backwards.

    Windows has had the Restart Manager (http://msdn.microsoft.com/en-us/library/windows/desktop/cc948910(v=vs.85).aspx) since Vista. Applications, device drivers, system services etc can now register with the RM (for instance all of the files in its directory and certain system wide libraries) and tell it that certain files should not be clobbered during an update/installation if the application is running. When an installer wants to replace a file which has been registered with RM, it can ask (default if using MSI installers) the RM to ask applications with a registered interest if it would be ok to save their state and close. If all applications/services agrees, the RM will then send the actual save+close message to the applications/services. The RM will then relinquish control to the installer which will replace the files. After the installation, the installer invokes the RM again to let it restart all of the applications.

    When saving their state the applications/services can register how they want to be restarted to re-establish the state they left, i.e. Word and Excel opens the same documents, Chrome opens the same tabs re-establishing scroll positions etc.

    When the RM determines that a file is being held locked by an application which is *not* registered with the RM it backs off and does not ask any apps to stop (it wouldn't know how to ask them to restart). Instead the installer schedules *all* of the files to be replaced "off-line", i.e. you will not have a situation where some of the files have be

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*