diff options
author | https://me.yahoo.com/a/g3Ccalpj0NhN566pHbUl6i9QF0QEkrhlfPM-#b1c14 <diana@web> | 2015-02-16 20:08:03 +0100 |
---|---|---|
committer | GNU Hurd web pages engine <web-hurd@gnu.org> | 2015-02-16 20:08:03 +0100 |
commit | 95878586ec7611791f4001a4ee17abf943fae3c1 (patch) | |
tree | 847cf658ab3c3208a296202194b16a6550b243cf /open_issues/robustness.mdwn | |
parent | 8063426bf7848411b0ef3626d57be8cb4826715e (diff) | |
download | web-95878586ec7611791f4001a4ee17abf943fae3c1.tar.gz web-95878586ec7611791f4001a4ee17abf943fae3c1.tar.bz2 web-95878586ec7611791f4001a4ee17abf943fae3c1.zip |
rename open_issues.mdwn to service_solahart_jakarta_selatan__082122541663.mdwn
Diffstat (limited to 'open_issues/robustness.mdwn')
-rw-r--r-- | open_issues/robustness.mdwn | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/open_issues/robustness.mdwn b/open_issues/robustness.mdwn deleted file mode 100644 index 4b0cdc9b..00000000 --- a/open_issues/robustness.mdwn +++ /dev/null @@ -1,217 +0,0 @@ -[[!meta copyright="Copyright © 2011, 2013, 2014 Free Software Foundation, -Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!tag open_issue_documentation open_issue_hurd]] - -[[!toc]] - - -# IRC, freenode, #hurd, 2011-11-18 - - <nocturnal> I'm learning about GNU Hurd and was speculating with a friend - who is also a computer enthusiast. I would like to know if Hurds - microkernel can recover services should they crash? and if it can, does - that recovery code exist in multiple services or just one core kernel - service? - <braunr> nocturnal: you should read about passive translators - <braunr> basically, there is no dedicated service to restore crashed - servers - <etenil> Hi everyone! - <braunr> services can crash and be restarted, but persistence support is - limited, and rather per serivce - <braunr> actually persistence is more a side effect than a designed thing - <braunr> etenil: hello - <etenil> braunr: translators can also be spawned on an ad-hoc basis, for - instance when accessing a particular file, no? - <braunr> that's what being passive, for a translator, means - <etenil> ah yeah I thought so :) - - -# Reincarnation Server - -## IRC, freenode, #hurd, 2011-11-19 - - <chromaticwt> will hurd ever have the equivalent of a rs server?, is that - even possible with hurd? - <youpi> chromaticwt: what is an rs server ? - <chromaticwt> a reincarnation server - <youpi> ah, like minix. Well, the main ground issue is restoring existing - information, such as pids of processes, etc. - <youpi> I don't know how minix manages it - <antrik> chromaticwt: I have a vision of a session manager that could also - take care of reincarnation... but then, knowing myself, I'll probably - never imlement it - <youpi> we do get proc crashes from times to times - <youpi> it'd be cool to see the system heal itself :) - <braunr> i need a better description of reincarnation - <braunr> i didn't think it would make core servers like proc able to get - resurrected in a safe way - <antrik> depends on how it is implemented - <antrik> I don't know much about Minix, but I suspect they can recover most - core servers - <antrik> essentially, the condition is to make all precious state be - constantly serialised, and held by some third party, so the reincarnated - server could restore it - <braunr> should it work across reboots ? - <antrik> I haven't thought about the details of implementing it for each - core server; but proc should be doable I guess... it's not necessary for - the system to operate, just for various UNIX mechanisms - <antrik> well, I'm not aware of the Minix implementation working across - reboots. the one I have in mind based on a generic session management - infrastructure should though :-) - - -## IRC, freenode, #hurd, 2012-12-06 - - <Tekk_> out of curiosity, would it be possible to strap on a resurrection - server to hurd? - <Tekk_> in the future, that is - <braunr> sure - <Tekk_> cool :) - <braunr> but this requires things like persistence - <spiderweb> like a reincarnation server? - <braunr> it's a lot of works, with non negligible overhead - <Tekk_> spiderweb: yes, exactly. I didn't remember tanenbaum's wording on - that - <braunr> i'm pretty sure most people would be against that - <spiderweb> braunr: why so? - <Tekk_> it was actually the feature that convinced me that ukernels were a - good idea - <Tekk_> spiderweb: because then you need a process that keeps track of all - the other servers - <Tekk_> and they have to be replying to "useless" pings to see if they're - still alive - <braunr> spiderweb: the hurd community isn't looking for a system reliable - in critical environments - <braunr> just a general purpose system - <braunr> and persistence requires regular data saves - <braunr> it's expensive - <Tekk_> as well as that - <braunr> we already have performance problems because of the nature of the - system, adding more without really looking for the benefits is useless - <spiderweb> so you can't theoretically have both? - <braunr> persistence and performance ? - <braunr> it's hard - <Tekk_> spiderweb: you need to modify the other translators to be - persistent - <braunr> only the ones you care about actually - <braunr> but it's just better to make the critical servers very stable - <Tekk_> so it's not just turning on and off the reincarnation - <braunr> (there isn't that much code there) - <braunr> and the other servers restartable - <mcsim> braunr: I think that if there will be aim to make something like - resurrection server than it will be needed rewrite most servers to make - them stateless, isn't it? - <braunr> that's a lot easier and already works with non essential passive - translators - <Tekk_> mcsim: pretty much - <braunr> mcsim: only those you care about - <braunr> mcsim: the proc auth exec servers for example, perhaps the file - system servers that can act as root fs, but the others would simply be - restarted by the passive translator mechanism - <spiderweb> what about restarting device drivers, that would be simple - right? - <braunr> that's perfectly doable, yes - <spiderweb> (being an OS newbie) - it does seem to me that the whole - reincarnation server concept could quite possibly be a band aid. - <braunr> spiderweb: no it really works - <braunr> many systems do that actually - <braunr> let me give you a link - <braunr> - http://ftp.sceen.net/curios_improving_reliability_through_operating_system_structure.pdf - <braunr> it's a bit old, but there is a review of systems aiming at - resilience and how they achieve part of it - <spiderweb> neat, thanks - <braunr> actually it's not that old at all - <braunr> around 2007 - - -## IRC, freenode, #hurd, 2013-08-26 - - < teythoon> I came across some paper about process reincarnation and - created a little prototype a while back: - < teythoon> http://darnassus.sceen.net/gitweb/teythoon/reincarnation.git/ - < teythoon> and I looked into restarting the exec server in case it - dies. the exec server is an easy target since it has no state of its own - < teythoon> the only problem is that there is no exec server around to - start a new one - < youpi> teythoon: there could be another exec server only used to - (re)start the exec server - < youpi> that other exec server could even be restarted by the normal exec - server - < pinotree> what about a watchdog server? - < teythoon> youpi: yes, I had the same idea, i actually patched /hurd/init - to do that, it's just not yet working - < pinotree> make it watch other servers (exec included), and make exec - watch the watchdog only - < teythoon> pinotree: look at my prototype, there is a watchdog server - < braunr> teythoon: what's the point of reincarnation without persistence ? - < teythoon> braunr: there is no point in reincarnation w/o persistence of - course - < teythoon> my prototype does a limited form of persistence - < teythoon> the point was to see whether I can mitm a translator and - restart it on demand and to gain more insight into the whole translator - mechanism - < braunr> teythoon: ok - < teythoon> braunr: see the readme, it retains state across reincarnations - < braunr> teythoon: how ? - < teythoon> braunr: the server can store a checkpoint using the - reincarnation_checkpoint procedure - < teythoon> - http://darnassus.sceen.net/gitweb/teythoon/reincarnation.git/blame/HEAD:/reincarnation.defshttp://darnassus.sceen.net/gitweb/teythoon/reincarnation.git/blame/HEAD:/reincarnation.defs - < teythoon> uh >,< sorry, pasted twice - < braunr> oh ok - - -## IRC, freenode, #hurd, 2014-02-01 - - <pere> btw, can hurd upgrade the kernel without reboot? - <teythoon> no - <teythoon> but since most functionality is not within the kernel, the more - interesting question is, what parts of the hurd can be replaced at - runtime - <pere> ok. what is the answer to that question? - <teythoon> no hurd server can be restarted transparently, i.e. w/o its - clients noticing that - <teythoon> however, if a server is not in use, it can be easily restarted - <teythoon> transparently restarting servers would be nice - <teythoon> and i believe it is even possible on mach - <braunr> teythoon: how ? - <teythoon> one has to retain two things, client-related state and the port - right - <braunr> doesn't that require persistence ? - <teythoon> it does - <teythoon> but i see no reason why it should not be possible to implement - this on top of mach - <braunr> maybe - <teythoon> the most crucial thing is to preserve the receive port, and to - replace the server without race-conditions - <teythoon> receive rights can be transfered using the notification - mechanism - - <antrik> braunr: restarting servers doesn't exactly require - persistance. you only need to pass the state from the old server to the - new one, rather than serialising it for on-disk storage. it's a slightly - easier requirement... - <antrik> (most notably, you don't need any magic to keep the capabilities - around -- just pass them over using normal IPC) - <teythoon> antrik: i agree, but then again, once this is in place, adding - persistence is only a little step - <antrik> teythoon: depends. if it's implemented with persistence in mind - from the beginning, it might be a fairly small step indeed; but - otherwise, it could be two entirely different things - <antrik> this also depends on the kind of persistence you want - <antrik> I must say that for the kind of persistence *I* would like, it is - indeed quite related - <teythoon> well, please elaborate a little :) - <teythoon> what do you have in mind ? - <antrik> busy right now... remind me some other time if I forget :-) - <teythoon> sure |